Tanzu Kubernetes Grid (TKG) をアップグレードするには、ブートストラップ マシンとして使用するマシンに新しいバージョンの Tanzu CLI をダウンロードしてインストールします。また、以前に vSphere、Amazon Web Services (AWS)、または Azure に展開したクラスタをアップグレードしているかによって、基本イメージ テンプレートと仮想マシンをダウンロードしてインストールする必要もあります。
注TKG アップグレード パスでは、v2.2 が v2.1.1 のすぐ後に続きます。
コンポーネントの新しいバージョンをインストールしたら、tanzu mc upgrade
および tanzu cluster upgrade
CLI コマンドを使用して、管理クラスタとワークロード クラスタをアップグレードします。
以下のセクションでは、Tanzu Kubernetes Grid のアップグレードで必要となる全体的な手順について説明します。この手順では、Tanzu Kubernetes Grid v2.2.0 にアップグレードすることを前提としています。
一部の手順は、Tanzu Kubernetes Grid v2.1.x から v2.2.x へのマイナー アップグレードを実行する場合にのみ行う必要があり、Tanzu Kubernetes Grid v2.2.x から v2.2.y へのパッチ アップグレードを実行する場合は行う必要はありません。
TKG v2.2.x にアップグレードする前に、現在の環境が TKG v2.1.x または v2.2 より以前のバージョンであることを確認します。v2.1 より前のバージョンから TKG v2.2.x にアップグレードするには、まず v2.1.x バージョンの Tanzu CLI を使用して v2.1.x にアップグレードする必要があります。
重要TKG 2.x および vSphere 8 の vSphere with Tanzu スーパーバイザーと互換性のある Tanzu CLI のバージョンは、vSphere 7 のスーパーバイザー クラスタと互換性がありません。vSphere 7 の vSphere with Tanzu スーパーバイザー クラスタで Tanzu CLI を使用するには、TKG v1.6 の Tanzu CLI バージョンを使用します。スーパーバイザーで TKG 2.x と互換性のある Tanzu CLI のバージョンを使用するには、vSphere 8 にアップグレードします。vSphere with Tanzu スーパーバイザー クラスタが存在しない場合は、スタンドアローン TKG 2.x 管理クラスタを vSphere 7 に展開できます。Tanzu CLI と VMware 製品の互換性の詳細については、Tanzu CLI のドキュメントを参照してください。
この手順は、v2.1.x から v2.2.x へのメジャー アップグレードと、v2.2.x から v2.2.y へのパッチ アップグレードの両方で必要となります。
Tanzu CLI の新しいバージョンをダウンロードしてインストールするには、次の手順を実行します。
~/.config/tanzu/tkg/compatibility/tkg-compatibility.yaml
ファイルを削除します。
このファイルを削除しない場合、Tanzu CLI の新しいバージョンで、以前のリリースのコンポーネント情報 (BOM) が引き続き使用されます。このファイルを削除すると、Tanzu CLI は更新された BOM をプルします。この手順は、2.1.x から 2.2.x へのアップグレードおよび 2.2.x から 2.2.y へのアップグレードの両方の場合に実行する必要があります。
「スタンドアローン管理クラスタで使用する Tanzu CLI およびその他のツールのインストール」の手順に従って、現在 tanzu
コマンドを実行しているマシンに Tanzu CLI と kubectl
をダウンロードしてインストールします。
tanzu version
を実行して、Tanzu CLI の正しいバージョンが正しくインストールされていることを確認します。Tanzu Kubernetes Grid v2.2 は、Tanzu Framework v0.29.0 に基づいて Tanzu CLI v0.29.0 を使用します。kubectl
をインストールしたら、kubectl version
を実行して、kubectl
の正しいバージョンが正しくインストールされていることを確認します。使用可能な Tanzu CLI コマンドとオプションの詳細については、「Tanzu CLI コマンド リファレンス」を参照してください。
管理クラスタとワークロード クラスタをアップグレードする前に、vSphere、AWS、Azure のどれにクラスタを展開したかに応じて、準備手順を実行する必要があります。この手順は、v2.1.x から v2.2.x へのメジャー アップグレードと、v2.2.x から v2.2.y へのパッチ アップグレードの両方で必要となります。
この手順では、Tanzu Kubernetes Grid v2.2.x にアップグレードすることを前提としています。
管理クラスタとワークロード クラスタが実行されている OS および Kubernetes バージョン ラインの最新の Tanzu Kubernetes Grid OVA をダウンロードします。
たとえば、Photon v3 イメージの場合:
Ubuntu 20.04 イメージの場合:
重要セキュリティ パッチがリリースされた場合は、最新の OVA 基本イメージ テンプレートをダウンロードしてください。更新された基本イメージ テンプレート(セキュリティ パッチを含む)は、Tanzu Kubernetes Grid 製品のダウンロード ページで確認できます。
インストーラのプロンプトに従って、OVA から仮想マシンを展開します。
tkg-user
など)を Tanzu Kubernetes Grid ロール(TKG
など)とともにテンプレートに割り当てます。このユーザーとロールは、「vSphere への管理クラスタの展開の準備」で作成したものです。OVA ファイルをダウンロードした Kubernetes バージョンごとに、この手順を繰り返します。
VMware Cloud on AWS SDDC の互換性
VMware Cloud on AWS に展開されているワークロード クラスタをアップグレードする場合は、既存の環境で使用されている基盤となる Software-Defined Datacenter (SDDC) のバージョンが、アップグレード先の Tanzu Kubernetes Grid のバージョンと互換性があることを確認します。
SDDC のバージョンを表示するには、VMware Cloud コンソールの SDDC タイルで [詳細の表示 (View Details)] を選択し、[サポート (Support)] ペインをクリックします。
Tanzu Kubernetes Grid との互換性を検証するには、「VMware 製品の相互運用性マトリックス」を参照してください。
サポート対象の Kubernetes バージョンを含む Amazon Linux 2 Amazon Machine Images (AMI) は、サポートされているすべての AWS リージョンのすべての AWS ユーザーに対して、公開されており使用可能です。Tanzu Kubernetes Grid は、アップグレード中に指定した Kubernetes バージョンに対して適切な AMI を自動的に使用します。
条件に同意するには、次の手順を実行します。
Azure Marketplace で、Tanzu Kubernetes Grid で使用可能なすべての仮想マシン イメージを一覧表示します。
az vm image list --publisher vmware-inc --offer tkg-capi --all
新しいデフォルト仮想マシン イメージの条件に同意します。
az vm image terms accept --urn publisher:offer:sku:version
たとえば、Tanzu Kubernetes Grid v2.2.x でのデフォルト仮想マシン イメージ k8s-1dot25dot7-ubuntu-2004
の条件に同意するには、次のコマンドを実行します。
az vm image terms accept --urn vmware-inc:tkg-capi:k8s-1dot25dot7-ubuntu-2004:2021.05.17
ワークロード クラスタのいずれかをデフォルト以外の Kubernetes バージョン(v1.24.11 や v1.23.17 など)にアップグレードする予定がある場合は、クラスタ仮想マシンに使用するデフォルト以外の各バージョンの条件に同意します。
この手順は、スタンドアローン管理クラスタを使用する TKG でのみ必要です。vSphere with Tanzu スーパーバイザーを使用して TKG を実行している場合は、vSphere の一部としてスーパーバイザーをアップグレードし、TKr をアップグレードしてスーパーバイザーの Kubernetes バージョンを更新します。
この手順は、v2.1.x から v2.2.x へのメジャー アップグレードと、v2.2.x から v2.2.y へのパッチ アップグレードの両方で必要となります。
Tanzu Kubernetes Grid をアップグレードするには、環境内のすべての管理クラスタをアップグレードする必要があります。ワークロード クラスタは、それを管理する管理クラスタをアップグレードするまでアップグレードできません。
「スタンドアローン管理クラスタのアップグレード」の手順に従って、管理クラスタをアップグレードします。
この手順は、v2.1.x から v2.2.x へのメジャー アップグレードと、v2.2.x から v2.2.y へのパッチ アップグレードの両方で必要となります。
「ワークロード クラスタのアップグレード」の手順に従って、ワークロードを実行しているワークロード クラスタをアップグレードします。
クラスタをアップグレードした後、アップグレード プロセスを完了するために実行する追加の手順があります。
cert-manager
など、管理クラスタにデフォルトでインストールされる一部のパッケージは、ワークロード クラスタおよび共有サービス クラスタに CLI で管理されるパッケージとしてインストールできます。管理クラスタを最新の Tanzu Kubernetes Grid リリースにアップグレードすると、デフォルトのパッケージが自動的に更新されます。
異なるワークロード クラスタで、異なるバージョンの CLI で管理されるパッケージを実行できます。ワークロード クラスタでは、CLI で管理されるパッケージのサポートされている最新バージョン、または以前にインストールされた Tanzu Kubernetes Grid の最近 2 つのバージョンにおけるパッケージのバージョンのいずれかを実行できます。たとえば、cert-manager
のパッケージ化された最新バージョンが v1.10.1 で、以前の 2 つの Tanzu Kubernetes Grid インストールで cert-manager
v1.7.2 および v1.5.3 が実行されている場合は、cert-manager
のバージョン v1.10.1、v1.7.2、および v1.5.3 をワークロード クラスタで実行できます。
管理クラスタ内のパッケージ バージョンよりも古い、インストール済みの Tanzu Kubernetes Grid の n-2 以上のバージョンであるパッケージ バージョンを実行しているワークロード クラスタの場合は、パッケージ リポジトリを更新(「パッケージ リポジトリの更新」を参照)し、ワークロード クラスタ内のパッケージをアップグレード(「パッケージの更新」を参照)する必要があります。パッケージ バージョンをアップグレードしない場合、パッケージ リポジトリに n-2 を超える古いバージョンのパッケージが含まれていない可能性があるため、パッケージ構成を更新できません。
重要ワークロード クラスタに Prometheus がインストールされていて、ワークロード クラスタを Kubernetes v1.25 にアップグレードする場合は、Prometheus をバージョン
2.37.0+vmware.3-tkg.1
にアップグレードする必要があります。Prometheus パッケージの以前のバージョン(バージョン2.37.0+vmware.1-tkg.1
など)は、Kubernetes 1.25 と互換性がありません。
クラスタが vSphere、AWS、Azure のどの環境で実行されているかに応じて、クラスタのアップグレード後に特定の操作を実行する必要があります。
NSX ALB が TKG v2.1 インストールで有効になっていない場合、NSX ALB のインストール方法の詳細については、「NSX Advanced Load Balancer のインストールと構成」を参照してください。
TKG v2.1 インストールで NSX ALB が有効になっている場合、このリリースでサポートされている Avi Controller のバージョンについては、『Tanzu Kubernetes Grid v2.2 リリース ノート』を参照し、必要に応じて Avi Controller を互換性のあるバージョンにアップグレードしてください。Avi Controller をアップグレードするには、「Avi Vantage の柔軟なアップグレード」を参照してください。
クラスタでこれまでに AWS EBS CSI ドライバがインストールされていない場合は、次の手順に従って、Tanzu Kubernetes Grid インストールを v2.2 以降にアップグレードした後にこのドライバをインストールします。
AWS EBS CSI ドライバの権限を付与します。
export AWS_REGION={YOUR_AWS_REGION}
tanzu mc permissions aws set
CSI ストレージを使用するワークロード クラスタごとに、次の手順を実行します。
次の環境変数をエクスポートし、機能フラグを設定します。
export _TKG_CLUSTER_FORCE_ROLE="management"
export FILTER_BY_ADDON_TYPE="csi/aws-ebs-csi-driver"
export NAMESPACE="tkg-system"
export DRY_RUN_MODE="legacy"
tanzu config set features.cluster.allow-legacy-cluster true
NAMESPACE
を上記の例のクラスタの名前空間 tkg-system
に設定します。
CSI ドライバ マニフェストを生成します。
tanzu cl create ${TARGET_CLUSTER_NAME} --dry-run -f ~/MANAGEMENT_CLUSTER_CREATE_CONFIG.yaml > csi-driver-addon-manifest.yaml
ここで、TARGET_CLUSTER_NAME
は CSI ドライバをインストールするクラスタの名前です。
csi-driver-addon-manifest.yaml
のメタデータ内のシークレットの名前空間を、ワークロード クラスタの名前空間で更新します。kubectl get cluster -A
コマンドを使用して、クラスタの名前空間を表示します。
管理クラスタのコンテキストで変更を適用します。
kubectl apply -f csi-driver-addon-manifest.yaml
次の環境変数と機能フラグの設定を解除します。
unset _TKG_CLUSTER_FORCE_ROLE
unset FILTER_BY_ADDON_TYPE
unset NAMESPACE
unset DRY_RUN_MODE
tanzu config set features.cluster.allow-legacy-cluster false
CSI ストレージを使用する管理クラスタに対して、次の手順を実行します。
次の環境変数をエクスポートします。
export _TKG_CLUSTER_FORCE_ROLE="management"
export FILTER_BY_ADDON_TYPE="csi/aws-ebs-csi-driver"
export NAMESPACE="tkg-system"
export DRY_RUN_MODE="legacy"
tanzu config set features.cluster.allow-legacy-cluster true
NAMESPACE
を上記の例のクラスタの名前空間 tkg-system
に設定します。
CSI ドライバ マニフェストを生成します。
tanzu mc create ${MANAGEMENT_CLUSTER_NAME} --dry-run -f ~/MANAGEMENT_CLUSTER_CREATE_CONFIG.yaml > csi-driver-addon-manifest.yaml
ここで、MANAGEMENT_CLUSTER_NAME
は管理クラスタの名前です。
csi-driver-addon-manifest.yaml
のメタデータ内のシークレットの名前空間を、管理クラスタの名前空間で更新します。kubectl get cluster -A
コマンドを使用して、クラスタの名前空間を表示します。
管理クラスタのコンテキストで変更を適用します。
kubectl apply -f csi-driver-addon-manifest.yaml
次の環境変数と機能フラグの設定を解除します。
unset _TKG_CLUSTER_FORCE_ROLE
unset FILTER_BY_ADDON_TYPE
unset NAMESPACE
unset DRY_RUN_MODE
tanzu config set features.cluster.allow-legacy-cluster false
クラスタでこれまでに Azure Disk CSI ドライバがインストールされていない場合は、次の手順に従って、Tanzu Kubernetes Grid インストールを v2.2 以降にアップグレードした後にこのドライバをインストールします。
次の環境変数をエクスポートし、機能フラグを設定します。
export _TKG_CLUSTER_FORCE_ROLE="management"
export FILTER_BY_ADDON_TYPE="csi/azuredisk-csi-driver"
export NAMESPACE="tkg-system"
export DRY_RUN_MODE="legacy"
tanzu config set features.cluster.allow-legacy-cluster true
NAMESPACE
を上記の例のクラスタの名前空間 tkg-system
に設定します。
CSI ストレージを使用するワークロード クラスタごとに、次の手順を実行します。
CSI ドライバ マニフェストを生成します。
tanzu cl create ${TARGET_CLUSTER_NAME} --dry-run -f ~/MANAGEMENT_CLUSTER_CREATE_CONFIG.yaml > csi-driver-addon-manifest.yaml
ここで、TARGET_CLUSTER_NAME
は CSI ドライバをインストールするクラスタの名前です。
csi-driver-addon-manifest.yaml
のメタデータ内のシークレットの名前空間を、ワークロード クラスタの名前空間で更新します。kubectl get cluster -A
コマンドを使用して、クラスタの名前空間を表示します。
管理クラスタのコンテキストで変更を適用します。
kubectl apply -f csi-driver-addon-manifest.yaml
次の環境変数と機能フラグの設定を解除します。
unset _TKG_CLUSTER_FORCE_ROLE
unset FILTER_BY_ADDON_TYPE
unset NAMESPACE
unset DRY_RUN_MODE
tanzu config set features.cluster.allow-legacy-cluster false
CSI ストレージを使用する管理クラスタに対して、次の手順を実行します。
次の環境変数をエクスポートします。
export _TKG_CLUSTER_FORCE_ROLE="management"
export FILTER_BY_ADDON_TYPE="csi/azuredisk-csi-driver"
export NAMESPACE="tkg-system"
export DRY_RUN_MODE="legacy"
tanzu config set features.cluster.allow-legacy-cluster true
NAMESPACE
を上記の例のクラスタの名前空間 tkg-system
に設定します。
CSI ドライバ マニフェストを生成します。
tanzu mc create ${MANAGEMENT_CLUSTER_NAME} --dry-run -f ~/MANAGEMENT_CLUSTER_CREATE_CONFIG.yaml > csi-driver-addon-manifest.yaml
ここで、MANAGEMENT_CLUSTER_NAME
は管理クラスタの名前です。
csi-driver-addon-manifest.yaml
のメタデータ内のシークレットの名前空間を、管理クラスタの名前空間で更新します。kubectl get cluster -A
コマンドを使用して、クラスタの名前空間を表示します。
管理クラスタのコンテキストで変更を適用します。
kubectl apply -f csi-driver-addon-manifest.yaml
次の環境変数と機能フラグの設定を解除します。
unset _TKG_CLUSTER_FORCE_ROLE
unset FILTER_BY_ADDON_TYPE
unset NAMESPACE
unset DRY_RUN_MODE
tanzu config set features.cluster.allow-legacy-cluster false
Tanzu Kubernetes Grid アップグレード後の Azure File CSI ドライバのインストール
クラスタでこれまでに Azure File CSI ドライバがインストールされていない場合は、次の手順に従って、Tanzu Kubernetes Grid インストールを v2.2 以降にアップグレードした後にこのドライバをインストールします。
次の環境変数をエクスポートし、機能フラグを設定します。
export _TKG_CLUSTER_FORCE_ROLE="management"
export FILTER_BY_ADDON_TYPE="csi/azurefile-csi-driver"
export NAMESPACE="tkg-system"
export DRY_RUN_MODE="legacy"
tanzu config set features.cluster.allow-legacy-cluster true
NAMESPACE
を上記の例のクラスタの名前空間 tkg-system
に設定します。
CSI ストレージを使用するワークロード クラスタごとに、次の手順を実行します。
CSI ドライバ マニフェストを生成します。
tanzu cl create ${TARGET_CLUSTER_NAME} --dry-run -f ~/MANAGEMENT_CLUSTER_CREATE_CONFIG.yaml > csi-driver-addon-manifest.yaml
ここで、TARGET_CLUSTER_NAME
は CSI ドライバをインストールするクラスタの名前です。
csi-driver-addon-manifest.yaml
のメタデータ内のシークレットの名前空間を、ワークロード クラスタの名前空間で更新します。kubectl get cluster -A
コマンドを使用して、クラスタの名前空間を表示します。
管理クラスタのコンテキストで変更を適用します。
kubectl apply -f csi-driver-addon-manifest.yaml
次の環境変数と機能フラグの設定を解除します。
unset _TKG_CLUSTER_FORCE_ROLE
unset FILTER_BY_ADDON_TYPE
unset NAMESPACE
unset DRY_RUN_MODE
tanzu config set features.cluster.allow-legacy-cluster false
CSI ストレージを使用する管理クラスタに対して、次の手順を実行します。
次の環境変数をエクスポートします。
export _TKG_CLUSTER_FORCE_ROLE="management"
export FILTER_BY_ADDON_TYPE="csi/azurefile-csi-driver"
export NAMESPACE="tkg-system"
export DRY_RUN_MODE="legacy"
tanzu config set features.cluster.allow-legacy-cluster true
NAMESPACE
を上記の例のクラスタの名前空間 tkg-system
に設定します。
CSI ドライバ マニフェストを生成します。
tanzu mc create ${MANAGEMENT_CLUSTER_NAME} --dry-run -f ~/MANAGEMENT_CLUSTER_CREATE_CONFIG.yaml > csi-driver-addon-manifest.yaml
ここで、MANAGEMENT_CLUSTER_NAME
は管理クラスタの名前です。
csi-driver-addon-manifest.yaml
のメタデータ内のシークレットの名前空間を、管理クラスタの名前空間で更新します。kubectl get cluster -A
コマンドを使用して、クラスタの名前空間を表示します。
管理クラスタのコンテキストで変更を適用します。
kubectl apply -f csi-driver-addon-manifest.yaml
次の環境変数と機能フラグの設定を解除します。
unset _TKG_CLUSTER_FORCE_ROLE
unset FILTER_BY_ADDON_TYPE
unset NAMESPACE
unset DRY_RUN_MODE
tanzu config set features.cluster.allow-legacy-cluster false
この手順は、v2.1.x から v2.2.x へのメジャー アップグレードと、v2.2.x から v2.2.y へのパッチ アップグレードの両方で必要となります。
クラッシュ リカバリと診断のアップグレード方法については、「クラッシュ リカバリと診断のバイナリのインストールまたはアップグレード」を参照してください。
アップグレードした管理クラスタを調べるか、それらを Tanzu Mission Control に登録します。「新しく展開されたスタンドアローン管理クラスタの確認と登録」を参照してください。