vSphere クラスタで vSphere IaaS control plane を有効にして、そのクラスタが スーパーバイザー になると、ハイパーバイザー レイヤー内に Kubernetes 制御プレーンが作成されます。このレイヤーには、ESXi 内で Kubernetes ワークロードを実行する機能を有効にする特定のオブジェクトが含まれています。

図 1. スーパーバイザー の一般的なアーキテクチャ

この図は、Tanzu Kubernetes Grid が上、スーパーバイザー が中間、ESXi、ネットワーク、およびストレージが下に配置され、vCenter Server によって管理されている、vSphere IaaS control plane アーキテクチャの概要を示しています。

Tanzu Kubernetes Grid を上、スーパーバイザーを中間、ESXi、ネットワーク、ストレージを下に配置したアーキテクチャ。vCenter Server はこれらを管理します。

スーパーバイザー は、コンピューティング用の ESXi、NSX または Distributed Switch ネットワーク、および vSAN または他の共有ストレージ ソリューションで構成される Software-Defined Data Center (SDDC) レイヤー上で実行されます。共有ストレージは、vSphere ポッド のパーシステント ボリューム、スーパーバイザー 内で実行される仮想マシン、および Tanzu Kubernetes Grid クラスタ内のポッドに使用されます。スーパーバイザー を作成したら、vSphere 管理者は、スーパーバイザー 内に vSphere 名前空間 と呼ばれる名前空間を作成できます。DevOps エンジニアは、vSphere ポッド 内で動作しているコンテナで構成されたワークロードを実行し、仮想マシン サービスを使用して仮想マシンをデプロイし、Tanzu Kubernetes Grid クラスタを作成することができます。

スーパーバイザー を 3 つの vSphere Zone にデプロイすると、クラスタレベルの障害に対して Kubernetes ワークロードを保護するクラスタレベルの高可用性を提供できます。vSphere Zone は、独立した障害ドメインとして設定できる 1 つの vSphere クラスタにマッピングされます。3 ゾーンのデプロイでは、3 つの vSphere クラスタがすべて 1 つの スーパーバイザー になります。スーパーバイザー を 1 つの vSphere クラスタにデプロイすることもできます。これにより、すでにゾーンにマッピングされている vSphere クラスタを使用しない限り、vSphere Zone が自動的に作成され、クラスタにマッピングされます。単一クラスタのデプロイの場合、スーパーバイザー では、vSphere HA によって提供される高可用性がホスト レベルでのみ確保されます。

図 2. 3 ゾーンのスーパーバイザーのアーキテクチャ

3 つのゾーンで構成されるアーキテクチャ。3 つの vSphere Zones の上にデプロイされた スーパーバイザー の上に vSphere 名前空間 が配置され、その上で TKG クラスタが実行されます。

3 ゾーンの スーパーバイザー では、仮想マシン サービスを使用して作成された Tanzu Kubernetes Grid クラスタと仮想マシンで Kubernetes ワークロードを実行できます。3 ゾーンの スーパーバイザー には、次のコンポーネントがあります。

  • スーパーバイザー 制御プレーン仮想マシン。スーパーバイザー には、合計 3 台の スーパーバイザー 制御プレーン仮想マシンが作成されます。3 ゾーンのデプロイでは、各ゾーンに 1 台の制御プレーン仮想マシンが配置されます。3 台の スーパーバイザー 制御プレーン仮想マシンにはそれぞれ独自の IP アドレスがあるため、ロード バランシングが行われます。また、フローティング IP アドレスが仮想マシンのうち 1 台に割り当てられ、5 番目の IP アドレスがパッチ適用の目的で予約されます。vSphere DRS は、スーパーバイザー の ESXi ホスト部分の制御プレーン仮想マシンの正確な配置を決定し、必要に応じて移行します。
  • Tanzu Kubernetes Grid とクラスタ API。スーパーバイザー で実行されるモジュールです。Tanzu Kubernetes Grid クラスタのプロビジョニングと管理を有効にします。
  • 仮想マシン サービス。スタンドアローン仮想マシンと Tanzu Kubernetes Grid クラスタを構成する仮想マシンをデプロイして、実行するモジュールです。

3 ゾーンの スーパーバイザー では、ゾーンにマッピングされた各 vSphere クラスタに名前空間リソース プールが作成されます。名前空間は、各ゾーン内の 3 つの vSphere クラスタすべてに分散されます。3 ゾーンの スーパーバイザー の名前空間に使用されるリソースは、基盤となる 3 つのすべての vSphere クラスタから均等に取得されます。たとえば、300 MHz の CPU を使用する場合は、各 vSphere クラスタから 100 MHz が取得されます。

図 3. 単一クラスタのスーパーバイザーのアーキテクチャ

仮想マシン オペレータ、クラスタ API、Tanzu Kubernetes Grid、制御プレーン仮想マシン、Spherelet モジュールを含む 1 ゾーンの スーパーバイザー。

単一の vSphere クラスタにデプロイされる スーパーバイザー にも、クラスタの ESXi ホスト部分に配置された 3 台の制御プレーン仮想マシンがあります。単一クラスタの スーパーバイザー では、Tanzu Kubernetes Grid クラスタと仮想マシンに加えて vSphere ポッド を実行できます。vSphere DRS は、スーパーバイザー 制御プレーン仮想マシンの Kubernetes スケジューラと統合されているため、DRS によって vSphere ポッド の配置が決まります。DevOps エンジニアとして vSphere ポッド をスケジュール設定すると、その要求は通常の Kubernetes ワークフローを経由して DRS に送信され、そこで最終的な配置が決定されます。

vSphere ポッド のサポートにより、単一クラスタの スーパーバイザー には次の追加コンポーネントが含まれます。

  • Spherelet。各ホストに Spherelet と呼ばれる追加のプロセスが作成されます。このプロセスは、ESXi に対してネイティブに移植された kubelet であり、このプロセスによって ESXi ホストは Kubernetes クラスタのメンバーになることができます。
  • Container Runtime Executive (CRX) コンポーネント。hostd と vCenter Server の観点から見ると、CRX は仮想マシンと似ています。CRX には、ハイパーバイザーと連携する準仮想化 Linux カーネルが含まれています。CRX は仮想マシンと同じハードウェア仮想化技術を使用しており、仮想マシンの境界で囲まれています。直接起動の技法が使用されるため、CRX の Linux ゲストは、カーネルの初期化を経由することなくメインの init プロセスを開始できます。これにより、vSphere ポッド がコンテナとほぼ同じ速度で起動できるようになります。