Tanzu Kubernetes Grid (TKG) をアップグレードするには、ブートストラップ マシンとして使用するマシンに新しいバージョンの Tanzu CLI をダウンロードしてインストールします。また、以前に vSphere、Amazon Web Services (AWS)、または Azure に展開したクラスタをアップグレードしているかによって、基本イメージ テンプレートと仮想マシンをダウンロードしてインストールする必要もあります。
TKG アップグレード パスでは、v2.4 は v2.3 の直後です。
コンポーネントの新しいバージョンをインストールしたら、tanzu mc upgrade
および tanzu cluster upgrade
CLI コマンドを使用して、管理クラスタとワークロード クラスタをアップグレードします。
以下のセクションでは、Tanzu Kubernetes Grid のアップグレードで必要となる全体的な手順について説明します。この手順では、Tanzu Kubernetes Grid v2.4.0 にアップグレードすることを前提としています。
一部の手順は、Tanzu Kubernetes Grid v2.3.x から v2.4.x へのマイナー アップグレードを実行する場合にのみ必要であり、Tanzu Kubernetes Grid v2.4.x から v2.4.y へのパッチ アップグレードを実行する場合は必要ありません。
重要Tanzu Kubernetes Grid v2.4.x は、AWS および Azure 上の既存のスタンドアローン TKG 管理クラスタと TKG ワークロード クラスタのアップグレードをサポートする TKG の最後のバージョンです。AWS および Azure 上のスタンドアローン TKG 管理クラスタと TKG ワークロード クラスタをアップグレードする機能は、Tanzu Kubernetes Grid v2.5 リリースで削除される予定です。
以降、VMware では、Tanzu Mission Control を使用してネイティブの AWS EKS クラスタと Azure AKS クラスタを作成することをお勧めします。ただし、AWS および Azure 上の既存のスタンドアローン TKG 管理クラスタと TKG ワークロード クラスタのアップグレードは、TKG v2.4.x までのすべての TKG リリースで引き続き完全にサポートされます。
詳細については、『VMware Tanzu Kubernetes Grid v2.4 Release Notes』の「AWS および Azure での TKG 管理クラスタとワークロード クラスタの廃止」を参照してください。
TKG v2.4.x にアップグレードする前に、現在の展開が TKG v2.3.x または v2.4 の以前のバージョンであることを確認します。v2.3 より前のバージョンから TKG v2.4.x にアップグレードするには、最初に Tanzu CLI の v2.3.x を使用して v2.3.x にアップグレードする必要があります。
管理クラスタで実行されている TKG のバージョンが不明な場合は、管理クラスタ オブジェクトからバージョンを抽出できます。
tanzu context use
コマンドを実行して、アップグレード可能な管理クラスタのインタラクティブ リストを表示します。
tanzu context use
確認する管理クラスタを選択します。
クラスタの管理者認証情報を取得します。tanzu CLI エイリアス mc
は、management-cluster
の省略形です。
tanzu mc kubeconfig get --admin
kubectl
を管理クラスタに接続します。
kubectl config use-context MGMT-CLUSTER-NAME-admin@MGMT-CLUSTER-NAME.
前の手順で実行した tanzu mc kubeconfig get --admin
コマンドの出力から、管理クラスタ コンテキストの名前を含む正確なコマンドをコピーできます。
kubectl get cluster
コマンドを実行して、TKG バージョンを抽出します。
kubectl get cluster MGMT-CLUSTER-NAME -n tkg-system -o yaml | grep TKGVERSION
出力には、次のように、管理クラスタで実行されている TKG のバージョンが表示されます。
TKGVERSION: v2.3.0
この手順は、v2.3.x から v2.4.x へのメジャー アップグレードと、v2.4.x から v2.4.y へのパッチ アップグレードの両方に必要です。
Tanzu CLI の新しいバージョンをダウンロードしてインストールするには、次の手順を実行します。
~/.config/tanzu/tkg/compatibility/tkg-compatibility.yaml
ファイルを削除します。
このファイルを削除しない場合、Tanzu CLI の新しいバージョンで、以前のリリースのコンポーネント情報 (BOM) が引き続き使用されます。このファイルを削除すると、Tanzu CLI は更新された BOM をプルします。この手順は、2.3.x から 2.4.x にアップグレードする場合と 2.4.x から 2.4.y にアップグレードする場合の両方で実行する必要があります。
「スタンドアローン管理クラスタで使用する Tanzu CLI と Kubernetes CLI のインストール」の手順に従って、現在 tanzu
コマンドを実行しているマシンに Tanzu CLI と kubectl
をダウンロードしてインストールします。スタンドアローン管理クラスタのいずれかが LDAP ID プロバイダを使用するように構成されている場合は、Tanzu CLI をインストールした後、CLI プラグインを Tanzu Kubernetes Grid v2.4 に更新する前に、「(LDAP のみ)LDAP 設定の更新」の手順を実行します。
tanzu version
を実行して、Tanzu CLI の正しいバージョンが正しくインストールされていることを確認します。Tanzu Kubernetes Grid v2.4 と互換性のある CLI バージョンのリストについては、「 製品の相互運用性マトリックス」を参照してください。kubectl
をインストールしたら、kubectl version
を実行して、kubectl
の正しいバージョンが正しくインストールされていることを確認します。使用可能な Tanzu CLI コマンドとオプションの詳細については、「Tanzu CLI コマンド リファレンス」を参照してください。
管理クラスタとワークロード クラスタをアップグレードする前に、vSphere、AWS、Azure のどれにクラスタを展開したかに応じて、準備手順を実行する必要があります。この手順は、v2.3.x から v2.4.x へのメジャー アップグレードと、v2.4.x から v2.4.y へのパッチ アップグレードの両方に必要です。
この手順では、Tanzu Kubernetes Grid v2.4.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 製品の相互運用性マトリックス」を参照してください。
tanzu mc permissions aws set
コマンドを実行して AWS アカウントの権限をリセットする必要があります。
tanzu mc permissions aws set
この手順は、v2.3.x から v2.4.x へのメジャー アップグレード、または v2.4.x から v2.4.y へのパッチ アップグレードに必要です。コマンドが設定する AWS 権限の詳細については、「必要な AWS 権限」を参照してください。
サポート対象の 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.4.0 でのデフォルト仮想マシン イメージ k8s-1dot27dot5-ubuntu-2004
の条件に同意するには、次のコマンドを実行します。
az vm image terms accept --urn vmware-inc:tkg-capi:k8s-1dot27dot5-ubuntu-2004:2021.05.17
ワークロード クラスタのいずれかをデフォルト以外の Kubernetes バージョン(v1.26.8 や v1.25.13 など)にアップグレードする予定がある場合は、クラスタ仮想マシンに使用するデフォルト以外の各バージョンの条件に同意します。
この手順は、スタンドアローン管理クラスタを使用する TKG でのみ必要です。vSphere with Tanzu スーパーバイザーを使用して TKG を実行している場合は、vSphere の一部としてスーパーバイザーをアップグレードし、TKr をアップグレードしてスーパーバイザーの Kubernetes バージョンを更新します。
この手順は、v2.3.x から v2.4.x へのメジャー アップグレードと、v2.4.x から v2.4.y へのパッチ アップグレードの両方に必要です。
Tanzu Kubernetes Grid をアップグレードするには、環境内のすべての管理クラスタをアップグレードする必要があります。ワークロード クラスタは、それを管理する管理クラスタをアップグレードするまでアップグレードできません。
「スタンドアローン管理クラスタのアップグレード」の手順に従って、管理クラスタをアップグレードします。
この手順は、v2.3.x から v2.4.x へのメジャー アップグレードと、v2.4.x から v2.4.y へのパッチ アップグレードの両方に必要です。
「ワークロード クラスタのアップグレード」の手順に従って、ワークロードを実行しているワークロード クラスタをアップグレードします。
クラスタをアップグレードした後、アップグレード プロセスを完了するために実行する追加の手順があります。
cert-manager
など、管理クラスタにデフォルトでインストールされる一部のパッケージは、ワークロード クラスタおよび共有サービス クラスタに CLI で管理されるパッケージとしてインストールできます。管理クラスタを最新の Tanzu Kubernetes Grid リリースにアップグレードすると、デフォルトのパッケージが自動的に更新されます。
異なるワークロード クラスタで、異なるバージョンの CLI で管理されるパッケージを実行できます。ワークロード クラスタでは、CLI で管理されるパッケージのサポートされている最新バージョン、または以前にインストールされた Tanzu Kubernetes Grid の最近 2 つのバージョンにおけるパッケージのバージョンのいずれかを実行できます。たとえば、cert-manager
のパッケージ化された最新バージョンが v1.11.1 で、以前の 2 つの Tanzu Kubernetes Grid インストールで cert-manager
v1.10.1 および v1.7.2 が実行されている場合は、cert-manager
のバージョン v1.11.1、v1.10.1、および v1.7.2 をワークロード クラスタで実行できます。
管理クラスタ内のパッケージ バージョンよりも古い、インストール済みの 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.3 インストールで有効になっていない場合、NSX ALB のインストール方法の詳細については、『NSX Advanced Load Balancer のインストールと構成』を参照してください。
TKG v2.3 インストールで NSX ALB が有効になっている場合、このリリースでサポートされている Avi Controller のバージョンについては、『Tanzu Kubernetes Grid v2.4 リリース ノート』を参照し、必要に応じて Avi Controller を互換性のあるバージョンにアップグレードしてください。Avi Controller をアップグレードするには、「Avi Vantage の柔軟なアップグレード」を参照してください。
TKG v2.2 以降では、新しく作成されたワークロード クラスタに AWS EBS CSI ドライバが自動的にインストールされますが、v2.1 からアップグレードされたクラスタで AWS EBS CSI を実行するには、ドライバを手動でインストールする必要があります。この手順に従って、TKG v2.1 以前で作成され、AWS EBS CSI ドライバがインストールされたことがないクラスタに AWS EBS CSI ドライバを手動でインストールします。
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
TKG v2.1 以降では、新しく作成されたワークロード クラスタに Azure Disk CSI ドライバが自動的にインストールされますが、v1.6 からアップグレードされたクラスタで Azure Disk CSI を実行するには、ドライバを手動でインストールする必要があります。この手順に従って、TKG v1.6 以前で作成され、Azure Disk CSI ドライバがインストールされたことがないクラスタに Azure Disk 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 ストレージを使用するワークロード クラスタごとに、次の手順を実行します。
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 ドライバのインストール
クラスタで以前にインストールされていない場合は、次の手順に従って、Tanzu Kubernetes Grid インストールを v2.4 以降にアップグレードした後に Azure File 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 ストレージを使用するワークロード クラスタごとに、次の手順を実行します。
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.3.x から v2.4.x へのメジャー アップグレードと、v2.4.x から v2.4.y へのパッチ アップグレードの両方に必要です。
クラッシュ リカバリと診断のアップグレード方法については、「クラッシュ リカバリと診断のバイナリのインストールまたはアップグレード」を参照してください。
アップグレードした管理クラスタを調べるか、それらを Tanzu Mission Control に登録します。「新しく展開されたスタンドアローン管理クラスタの確認と登録」を参照してください。