Anthos clusters on AWS(GKE on AWS)環境をアップグレードするには、まず管理サービスをアップグレードしてから、ユーザー クラスタをアップグレードします。
管理サービス
以降のセクションでは、管理サービスをアップグレードします。
始める前に
Anthos clusters on AWS のリソースに接続するには、次の手順を行います。既存の AWS VPC(または VPC への直接接続)があるか、管理サービスの作成時に専用の VPC を作成したかに基づいて、以下の手順を行います。
既存の VPC
既存の VPC への直接接続または VPN 接続がある場合は、このトピックのコマンドから env HTTP_PROXY=http://localhost:8118
行を省略します。
専用の VPC
専用の VPC で管理サービスを作成すると、Anthos clusters on AWS にパブリック サブネットの踏み台インスタンスが含まれています。
管理サービスに接続するには、次の手順を行います。
Anthos clusters on AWS 構成のディレクトリに移動します。このディレクトリは、管理サービスをインストールしたときに作成したものです。
cd anthos-aws
トンネルを開くには、
bastion-tunnel.sh
スクリプトを実行します。トンネルはlocalhost:8118
に転送されます。踏み台インスタンスへのトンネルを開くには、次のコマンドを実行します。
./bastion-tunnel.sh -N
SSH トンネルからのメッセージがこのウィンドウに表示されます。接続を閉じる準備ができたら、Ctrl+C を使用するか、ウィンドウを閉じて処理を停止します。
新しいターミナルを開き、
anthos-aws
ディレクトリに移動します。cd anthos-aws
kubectl
を使用してクラスタに接続できることを確認します。env HTTPS_PROXY=http://localhost:8118 \ kubectl cluster-info
出力には、Management Service API サーバーの URL が含まれます。
管理サービスをアップグレードする
管理サービスをアップグレードするには、anthos-gke
の新しいバージョンをダウンロードし、anthos-gke.yaml
を編集して変更を適用します。
anthos-gke の新しいバージョンをダウンロードする
anthos-gke
ツールの最新バージョンは aws-1.13.1-gke.1
です。anthos-gke
の新しいバージョンをダウンロードする手順は次のとおりです。
anthos-gke
コマンドライン ツールは、Linux と macOS のみをサポートしています。
Cloud Storage からバイナリをダウンロードします。
Linux
gsutil cp gs://gke-multi-cloud-release/aws/aws-1.13.1-gke.1/bin/linux/amd64/anthos-gke .
macOS
gsutil cp gs://gke-multi-cloud-release/aws/aws-1.13.1-gke.1/bin/darwin/amd64/anthos-gke .
anthos-gke
の権限を更新し、/usr/local/bin
にコピーします。chmod 755 anthos-gke sudo mv anthos-gke /usr/local/bin
バージョンが
aws-1.13.1-gke.1
であることを確認します。anthos-gke version
管理サービスをアップグレードする
クラスタをアップグレードするには、次の手順を行います。
- Anthos clusters on AWS 構成のディレクトリに移動します。このディレクトリは、管理サービスをインストールしたときに作成したものです。
cd anthos-aws
テキスト エディタで
anthos-gke.yaml
を開きます。spec.version
の値を aws-1.13.1-gke.1 に変更します。apiVersion: multicloud.cluster.gke.io/v1 kind: AWSManagementService metadata: name: management spec: version: aws-1.13.1-gke.1 region: aws-region ...
anthos-gke aws management init
を実行してAWSManagementService
オブジェクトを検証し、anthos-gke.status.yaml
ファイルを更新します。anthos-gke aws management init
anthos-gke aws management apply
を実行して AWS の管理サービスを更新します。anthos-gke aws management apply
anthos-gke
コマンドを実行して、管理サービスのアップグレードを開始します。アップグレードが完了するまでに、最大で 10 分ほどかかる場合があります。
ユーザー クラスタ
以降のセクションでは、ユーザー クラスタをアップグレードします。
始める前に
これらの手順を完了するには、管理サービスと少なくとも 1 つのユーザー クラスタが必要です。
サポートされている Kubernetes のバージョン
Anthos clusters on AWS aws-1.13.1-gke.1 は、次の Kubernetes バージョンをサポートしています。
- 1.22.15-gke.1400
- 1.23.12-gke.1400
- 1.24.6-gke.1300
以前にサポートされていたバージョンについては、リリースノートをご覧ください。
コンポーネントのアップグレード
このセクションでは、AWSCluster と AWSNodePool のアップグレードについて説明します。
AWSCluster
AWSNodePool を更新せずに、AWSCluster を Anthos clusters on AWS の新しいバージョンに更新できます。
AWSNodePool
AWSNodePool を AWSCluster より新しいバージョンにアップデートすることはできません。AWSNodePool を更新するには、最初に AWSCluster を更新する必要があります。
AWSNodePool のバージョンは、AWSCluster のバージョンの 2 つ前のマイナー バージョン以降でなければなりません。
既存の AWSCluster と AWSNodePool をアップグレードする
クラスタをアップグレードするには、管理サービスの AWSCluster
オブジェクトと AWSNodePool
オブジェクトの version
フィールドを更新します。
AWSCluster
AWSCluster をアップグレードするには、次の手順を行います。
anthos-aws
ディレクトリからanthos-gke
を使用して、コンテキストを管理サービスに切り替えます。cd anthos-aws anthos-gke aws management get-credentials
AWSCluster を作成した YAML ファイルをテキスト エディタで開きます。最初の YAML ファイルがない場合は、
kubectl edit
を使用できます。YAML の編集
ユーザー クラスタの作成手順に従っている場合、YAML ファイルの名前は
cluster-0.yaml
です。このファイルをテキスト エディタで開きます。kubectl edit
kubectl edit
を使用して AWSCluster を編集するには、次のコマンドを実行します。env HTTPS_PROXY=http://localhost:8118 \ kubectl edit awscluster cluster-name
cluster-name を AWSCluster に置き換えます。たとえば、デフォルトのクラスタ
cluster-0
を編集するには、次のコマンドを実行します。env HTTPS_PROXY=http://localhost:8118 \ kubectl edit awscluster cluster-0
spec.controlPlane.version
フィールドを Anthos clusters on AWS の新しいバージョンに更新します。最新バージョンは 1.24.6-gke.1300 です。apiVersion: multicloud.cluster.gke.io/v1 kind: AWSCluster metadata: name: cluster-0 spec: region: us-east-1 controlPlane: version: gke_version instanceType: t3.medium ...
gke-version は、必要な Kubernetes バージョンに置き換えます。サポートされている最新の Kubernetes バージョンは 1.24.6-gke.1300 です。
ファイルを保存します。
kubectl edit
を使用している場合は、kubectl
が変更を自動的に適用します。YAML ファイルを編集する場合は、次のコマンドを使用して管理サービスに適用します。env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f cluster-0.yaml
これで、管理サービスにより AWSCluster が更新されます。
AWSNodePool
AWSNodePool をアップグレードするには、次の手順を行います。
anthos-aws
ディレクトリからanthos-gke
を使用して、コンテキストを管理サービスに切り替えます。cd anthos-aws anthos-gke aws management get-credentials
AWSNodePool を作成した YAML ファイルをテキスト エディタで開きます。ユーザー クラスタの作成の手順に従っている場合、このファイルの名前は
cluster-0.yaml
です。AWSNodePool リソースの
spec.version
の値を更新します。apiVersion: multicloud.cluster.gke.io/v1 kind: AWSNodePool metadata: name: cluster-0-pool-0 spec: clusterName: cluster-0 region: us-east-1 version: gke-version ...
gke-version は、必要な Kubernetes バージョンに置き換えます。サポートされている最新の Kubernetes バージョンは 1.24.6-gke.1300 です。
kubectl
を使用して、新しい構成を管理サービスに適用します。env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f cluster-0.yaml
これで、管理サービスにより AWSNodePool が 1 ノードずつ更新されます。ノードがシャットダウンされる前に、そのノードで実行されている Pod は SIGTERM を受け取ります。猶予期間がすぎても Pod がシャットダウンしない場合、その Pod は SIGKILL を受け取ります。
ステータスを表示
アップグレードのステータスを取得するには、管理サービスで kubectl get AWSClusters
を実行します。
env HTTPS_PROXY=http://localhost:8118 \
kubectl get AWSClusters
出力には、各クラスタの名前、状態、経過時間、バージョン、エンドポイントが含まれます。たとえば、次の出力には cluster-0
という名前の AWSCluster
が 1 つ含まれています。
NAME STATE AGE VERSION ENDPOINT
cluster-0 Upgrading 2m41s 1.24.6-gke.1300 gke-xyz.elb.us-east-1.amazonaws.com
クラスタの [状態] が [プロビジョニング済み] になったら、ユーザー クラスタのアップグレードは完了しています。