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

スーパーバイザー クラスタ および 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 クラスタ互換性の確認を参照してください。

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

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

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

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

すべての vSphere with Tanzu コンポーネントを更新するには、すべてを更新するワークフローを使用します。このタイプの更新は、NSX-T 3.X から 4、vSphere 7.X から 8 など、メジャー リリースをアップデートする場合に必要です。この更新ワークフローは、新しい VMware 製品リリースの公開時期に応じて低い頻度で行われます。すべてを更新する手順は次のとおりです。
  1. 互換性を判断するには、VMware 製品の相互運用性マトリックス (https://interopmatrix.vmware.com/Interoperability) で vCenter ServerNSX-T Data Center を確認してください。vSphere with Tanzu の機能は、vCenter Server に付属するワークロード制御プレーン (WCP) ソフトウェアによって提供されます。
  2. NSX-T Data Center に互換性がある場合は、アップグレードします。
  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 サービス などの Tanzu Kubernetes Grid サービス クラスタをサポートするインフラストラクチャ コンポーネントも同様に更新されます。各インフラストラクチャの更新には、Tanzu Kubernetes Grid サービス (CNI、CSI、CPI) をサポートするサービスの更新、および既存の Tanzu Kubernetes Grid サービス クラスタに適用可能な、制御プレーンおよびワーカー ノード用の更新された設定を含めることができます。構成が互換性の要件を満たすようにするために、vSphere with Tanzu はローリング アップデート中に事前チェックを実行し、コンプライアンスを適用します。

Tanzu Kubernetes Grid サービス クラスタのローリング アップデートを実行するには、クラスタのマニフェストを更新します。Tanzu Kubernetes クラスタの更新を参照してください。ただし、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のトピックを参照してください。