vSphere with Tanzu は、スーパーバイザーTanzu Kubernetes Grid クラスタ、およびこれらのクラスタをサポートするインフラストラクチャのローリング アップデートに対応しています。

注: vSphere Update Manager を使用する スーパーバイザー を vSphere Lifecycle Manager に移行することはできません。vSphere Update Manager から vSphere Lifecycle Manager への移行は、 vSphere with Tanzu が有効になっていないクラスタでのみサポートされます。

スーパーバイザー および Tanzu Kubernetes Grid クラスタの更新方法

vSphere with Tanzu は、スーパーバイザー および Tanzu Kubernetes Grid クラスタのローリング アップデート モデルを使用します。ローリング アップデート モデルを使用すると、更新プロセスでのクラスタのワークロードのダウンタイムが最小限に抑えられます。ローリング アップデートには、Kubernetes ソフトウェア バージョンのアップグレードに加えて、仮想マシンの構成とリソース、vSphere 名前空間、カスタム リソースなどの、Kubernetes クラスタをサポートするインフラストラクチャおよびサービスの更新が含まれます。

更新を正常に行うには、使用環境がいくつかの互換性要件を満たしている必要があります。システムは再チェック条件を適用してクラスタを更新する準備ができているかを確認し、クラスタのアップグレードが成功しなかった場合はロールバックをサポートします。
注: vSphere with Tanzu のアップデートに含まれるのは、Kubernetes ソフトウェア バージョンのアップグレードだけではありません。このプロセスの説明には、ソフトウェア バージョンの更新に限定される「アップグレード」という言葉ではなく、「更新」という言葉を使用しています。

スーパーバイザー の更新と Tanzu Kubernetes Grid クラスタの更新の依存関係

スーパーバイザー クラスタと Tanzu Kubernetes Grid クラスタを個別に更新します。ただし、両者の間には依存関係があることに注意してください。

スーパーバイザー を更新すると、そこにデプロイされている Tanzu Kubernetes Grid クラスタのローリング アップデートがトリガされることがあります。vSphere 名前空間 更新の実行による スーパーバイザー の更新を参照してください。

Tanzu Kubernetes Grid クラスタがターゲット スーパーバイザー のバージョンに準拠していない場合は、スーパーバイザー を更新する前に、1 つ以上の Tanzu Kubernetes Grid クラスタを更新する必要が生じることがあります。スーパーバイザー をアップグレードするための Tanzu Kubernetes Grid クラスタの互換性の確認を参照してください。

スーパーバイザー の更新について

スーパーバイザー の更新を開始すると、システムは新しい制御プレーン仮想マシンを作成し、既存の スーパーバイザー 制御プレーンに追加します。更新のこの段階で新しい更新済みの仮想マシンが追加され、古い期限切れの仮想マシンが削除されるため、vSphere インベントリには 4 台の制御プレーン仮想マシンが表示されます。オブジェクトは、古い制御プレーン仮想マシンのいずれかから新しい仮想マシンに移行され、古い制御プレーン仮想マシンは削除されます。すべての制御プレーン仮想マシンが更新されるまで、このプロセスが 1 回ずつ繰り返されます。すべての制御プレーン仮想マシンが更新されると、同様のローリング アップデート方式でワーカー ノードが更新されます。ワーカー ノードは ESXi ホストであり、各 ESXi ホストの各 spherelet プロセスが 1 つずつ更新されます。

次の更新の中から選択できます。
  • vSphere 名前空間 を更新します。
  • VMware バージョンや Kubernetes バージョンなどを含め、すべてを更新します。

vSphere 名前空間 の更新

スーパーバイザー が実行されている Kubernetes バージョンの更新(Kubernetes 1.23 から Kubernetes 1.24 など)、および スーパーバイザーTanzu Kubernetes Grid クラスタをサポートするインフラストラクチャの更新には、 vSphere 名前空間 の更新ワークフローを使用します。このタイプの更新は頻繁に行われ、Kubernetes のリリース頻度に対応するために使用されます。 vSphere 名前空間 の更新手順は次のとおりです。
  1. vCenter Server をアップグレードします。
  2. vSphere 名前空間 の更新(Kubernetes のアップグレードを含む)を実行します。

vSphere 名前空間 を更新するには、vSphere 名前空間 更新の実行による スーパーバイザー の更新を参照してください。

すべての vSphere with Tanzu コンポーネントの更新

すべての vSphere with Tanzu コンポーネントを更新するには、すべてを更新するワークフローを使用します。このタイプの更新は、NSX-T 3.X から 4、vSphere 7.x から 8 など、メジャー リリースをアップデートする場合に必要です。

注: vCenter Server 8.0 にアップグレードする前に、すべての スーパーバイザー の Kubernetes バージョンが 1.22 以上(できればサポートされている最新バージョン)であること、および Tanzu Kubernetes Grid クラスタの Tanzu Kubernetes リリース バージョンが 1.22(できればサポートされている最新バージョン)であることを確認します。
この更新ワークフローは、新しい VMware 製品リリースの公開時期に応じて低い頻度で行われます。すべてを更新する手順は次のとおりです。
  1. 互換性を判断するには、VMware 製品の相互運用性マトリックス (https://interopmatrix.vmware.com/Interoperability) で vCenter ServerNSX を確認してください。vSphere with Tanzu の機能は、vCenter Server に付属するワークロード制御プレーン (WCP) ソフトウェアによって提供されます。
  2. NSX に互換性がある場合は、アップグレードします。
  3. vCenter Server をアップグレードします。
  4. vSphere Distributed Switch をアップグレードします。
  5. ESXi ホストをアップグレードします。
  6. プロビジョニングされた Tanzu Kubernetes Grid クラスタとターゲット スーパーバイザー のバージョンの互換性を確認します。
  7. vSphere 名前空間 を更新します(スーパーバイザー Kubernetes バージョンを含む)。
  8. Tanzu Kubernetes Grid クラスタを更新します。
次の図に、 vSphere with Tanzu を更新する一般的なワークフローを示します。 この図は、vSphere with Tanzu を更新する手順を示しています。

Tanzu Kubernetes Grid クラスタの更新について

スーパーバイザー を更新すると、Tanzu Kubernetes Grid 2.0 など、この スーパーバイザー にデプロイされた Tanzu Kubernetes Grid クラスタをサポートするインフラストラクチャ コンポーネントも同様に更新されます。各インフラストラクチャの更新には、Tanzu Kubernetes Grid 2.0(CNI、CSI、CPI)をサポートするサービスの更新、および既存の Tanzu Kubernetes Grid クラスタに適用可能な、制御プレーン仮想マシンおよびワーカー ノード用の更新された設定を含めることができます。構成が互換性の要件を満たすようにするために、vSphere with Tanzu はローリング アップデート中に事前チェックを実行し、コンプライアンスを適用します。

Tanzu Kubernetes Grid クラスタのローリング アップデートを実行するには、クラスタのマニフェストを更新します。スーパーバイザーでの TKG 2 クラスタのアップデートを参照してください。ただし、vSphere 名前空間 の更新を実行すると、システムは更新された構成を直ちにすべての Tanzu Kubernetes Grid クラスタに伝達することに注意してください。これらの更新により、Tanzu Kubernetes Grid 制御プレーンおよびワーカー ノードのローリング アップデートが自動的にトリガされます。

クラスタ ノードを置き換えるためのローリング アップデート プロセスは、Kubernetes 環境でのポッドのローリング アップデートと同様です。Tanzu Kubernetes Grid クラスタのローリング アップデートを実行するコントローラは 2 つあります。アドオン コントローラと TanzuKubernetesCluster コントローラです。これらの 2 つのコントローラでは、ローリング アップデートに、アドオンの更新、制御プレーンの更新、およびワーカー ノードの更新の 3 つの主要なステージがあります。これらのステージは順番に実行されますが、前の手順が十分に進行するまで次のステップの開始を防ぐ事前チェックが実行されます。不要と判断された場合、ステップはスキップされることがあります。たとえば、更新がワーカー ノードのみに影響する場合、アドオンや制御プレーンの更新は必要なくなります。

更新プロセスでは、システムは新しいクラスタ ノードを追加し、ノードがターゲットの Kubernetes バージョンでオンラインになるまで待機します。その後、古いノードを削除対象としてマークし、次のノードに移動して、プロセスを繰り返します。すべてのポッドが削除されるまで、古いノードは削除されません。たとえば、ノードの完全なドレーンを妨げる PodDisruptionBudgets でポッドが定義されている場合、ノードは遮断されますが、それらのポッドが消去できるようになるまで削除されません。システムは、最初にすべての制御プレーン ノード、次にワーカー ノードをアップグレードします。更新中に、Tanzu Kubernetes Grid クラスタのステータスが「更新中」に変わります。ローリング アップデート プロセスが完了すると、Tanzu Kubernetes Grid クラスタのステータスが「実行中」に変わります。

レプリケーション コントローラによって管理されていない Tanzu Kubernetes Grid クラスタで実行されているポッドは、Tanzu Kubernetes Grid クラスタの更新中にワーカー ノードのドレインの一環として、Kubernetes バージョンのアップグレードで削除されます。クラスタの更新が手動でトリガされた場合や、vSphere 名前空間 の更新によって自動実行された場合がこれに該当します。レプリケーション コントローラによって管理されていないポッドには、Deployment または ReplicaSet 仕様の一部として作成されていないポッドなどがあります。詳細については、Kubernetes ドキュメントのPod Lifecycle: Pod lifetimeのトピックを参照してください。