スタンドアローン管理クラスタで Tanzu Kubernetes Grid をアップグレードするには、まずスタンドアローン管理クラスタをアップグレードする必要があります。ワークロード クラスタは、それを管理する管理クラスタをアップグレードするまでアップグレードできません。
vSphere with Tanzu スーパーバイザーで TKG を実行している場合は、この手順を実行しないでください。代わりに、vSphere の一部としてスーパーバイザーをアップグレードし、TKr のアップグレードを通してスーパーバイザーの Kubernetes バージョンを更新します。
管理クラスタをアップグレードすると、それが実行する自動管理パッケージも自動的にアップグレードされます。
注v2.1 CLI をインストールした後、スタンドアローン管理クラスタをアップグレードするまでは、コンテキスト固有のすべての CLI コマンド グループ(
tanzu cluster
、tanzu kubernetes-release
)およびすべてのmanagement-cluster
プラグイン コマンド(ただしtanzu mc upgrade
とtanzu mc create
は除く)は使用できず、Tanzu CLI--help
の出力にも含まれません。
管理クラスタとワークロード クラスタは、クライアント証明書を使用してクライアントを認証します。これらの証明書は 1 年間有効です。更新するには、クラスタを少なくとも年 1 回アップグレードするか、手動でローテーションします。これは、「クラスタ証明書の更新(スタンドアローン MC)」または VMware ナレッジベースの記事「Tanzu Kubernetes Grid クラスタでの証明書のローテーション方法」で説明されています。
tanzu login
コマンドを実行して、アップグレード可能な管理クラスタのインタラクティブ リストを表示します。
tanzu login
アップグレードする管理クラスタを選択します。詳細については、「管理クラスタの一覧表示とコンテキストの変更」を参照してください。
クラスタの管理者認証情報を取得します。tanzu CLI エイリアス mc
は、management-cluster
の省略形です。
tanzu mc kubeconfig get --admin
kubectl
を管理クラスタに接続します。
kubectl config use-context CLUSTER-NAME-admin@CLUSTER-NAME.
管理クラスタが Azure で実行されている場合は、クラスタをアップグレードする前に AZURE_CLIENT_SECRET
環境変数を設定します。
export AZURE_CLIENT_SECRET=YOUR-AZURE-CLIENT-SECRET
管理クラスタが TKG v1.3 以前で最初に作成された場合、または不明な場合は、次の手順を実行します。これらの手順では、管理クラスタを TKG v2.1 のパッケージベースの構成にアップグレードするために必要なシークレットを追加しますが、これは TKG v1.4 より前に作成された管理クラスタには含まれていないものでした。
package-based-cc
機能フラグを無効にして、レガシー管理クラスタの作成ドライランを有効にします。
tanzu config set features.management-cluster.package-based-cc false
元の構成ファイルを使用して管理クラスタの作成をドライランすることにより、管理クラスタの最新のレガシー スタイル マニフェストを取得します。たとえば、vSphere では次のコマンドを実行します。
tanzu mc create -f mgmt-config.yaml --dry-run > legacy-mgmt.yaml
Do you want to configure vSphere with Tanzu? [y/N]: N
Would you like to deploy a non-integrated Tanzu Kubernetes Grid management cluster on vSphere 7.0? [y/N]: y
必要な -config-values
シークレットを抽出します。
cat legacy-mgmt.yaml | yq 'select(.metadata.name == "MANAGEMENT-CLUSTER-NAME-config-values")' > mgmt-config-secret.yaml
管理クラスタのコンテキストで、シークレットを管理クラスタに適用します。
kubectl apply -f mgmt-config-secret.yaml
package-based-cc
機能フラグを再度有効にして、レガシー管理クラスタの作成を禁止します。
tanzu config set features.management-cluster.package-based-cc true
tanzu mc upgrade
コマンドを実行し、y
と入力して確認します。
注このコマンドを実行すると、Pinniped ポッドの再起動が完了するまで、管理者以外のユーザーは、関連付けられたワークロード クラスタにログインできなくなります。
tanzu mc upgrade
IaaS アカウント内の複数のベース仮想マシン イメージに、アップグレード対象と同じバージョンの Kubernetes がある場合は、--os-name
オプションを使用して、必要な OS を指定します。詳細については、「クラスタをアップグレードする際の OS の選択」を参照してください。
たとえば、vSphere で Kubernetes v1.24.10 を使用して Photon テンプレートと Ubuntu OVA テンプレートの両方をアップロードした場合は、--os-name ubuntu
を指定して、Ubuntu 仮想マシンで実行するように管理クラスタをアップグレードします。
tanzu mc upgrade --os-name ubuntu
クラスタをアップグレードするときに確認手順をスキップするには、--yes
オプションを指定します。
tanzu mc upgrade --yes
アップグレード プロセスでは、まず、管理クラスタで実行されている vSphere、Amazon Web Services (AWS)、または Azure のクラスタ API プロバイダがアップグレードされます。次に、管理クラスタのすべての制御プレーン ノードとワーカー ノードの Kubernetes のバージョンがアップグレードされます。
重要管理クラスタのアップグレード中は、管理クラスタまたは管理クラスタが管理するワークロード クラスタに対して、
tanzu cluster
またはtanzu mc
コマンドを実行しないでください(たとえば、別のブートストラップ マシンやシェル ウィンドウから)。
アップグレードが完了する前にタイムアウトした場合は、デフォルトの 30 分よりも大きい値を指定した --timeout
オプションを指定して、tanzu mc upgrade
を再度実行します。
tanzu mc upgrade --timeout 45m0s
注v2.1 CLI をインストールした後、管理クラスタをアップグレードするまでは、コンテキスト固有のすべての CLI コマンド グループ(
tanzu cluster
、tanzu kubernetes-release
)およびすべてのmanagement-cluster
プラグイン コマンド(ただしtanzu mc upgrade
とtanzu mc create
は除く)は使用できず、Tanzu CLI--help
の出力にも含まれません。
アップグレードが完了したら、tanzu cluster list
コマンドを --include-management-cluster -A
オプションと一緒に再度実行して、管理クラスタがアップグレードされていることを確認します。
tanzu cluster list --include-management-cluster -A
管理クラスタで新しいバージョンの Kubernetes が実行されているが、ワークロード クラスタでは引き続き以前のバージョンの Kubernetes が実行されていることがわかります。
NAME NAMESPACE STATUS CONTROLPLANE WORKERS KUBERNETES ROLES PLA TKR
k8s-1-22-13-cluster default running 1/1 1/1 v1.22.13+vmware.1 <none> dev v1.22.13---vmware.1-tkg.1
k8s-1-23-10-cluster default running 1/1 1/1 v1.23.10+vmware.1 <none> dev v1.23.10---vmware.1-tkg.1
mgmt-cluster tkg-system running 1/1 1/1 v1.24.10+vmware.1 management dev v1.24.10---vmware.1-tkg.1
管理者の kubeconfig
を再生成します。
tanzu management-cluster kubeconfig get --admin
次に示すのは、コマンドのサンプル出力です。
Credentials of cluster 'mgmt' have been saved
You can now access the cluster by running 'kubectl config use-context mgmt-admin@mgmt'
重要アップグレード後に
kubeconfig
を更新しない場合、クラスタの有効期限が切れるとアクセスできなくなります。
次の作業を実行できます。
この管理クラスタが管理するワークロード クラスタをアップグレードします。
新しいワークロード クラスタを作成します。デフォルトでは、この管理クラスタを使用して展開する新しいクラスタでは、Kubernetes の新しいデフォルト バージョンが実行されます。ただし、必要に応じて、tanzu cluster create
コマンドと --tkr
オプションを使用して、異なるバージョンの Kubernetes を実行する新しいクラスタを展開できます。詳細については、「複数の Kubernetes バージョン」を参照してください。