vSphere with Kubernetesを使用すると、vSphere を、Kubernetes ワークロードをハイパーバイザー レイヤーでネイティブに実行するためのプラットフォームに変換できます。vSphere クラスタで vSphere with Kubernetesを有効にすると、Kubernetes ワークロードを ESXi ホストで直接実行し、専用リソース プール内にアップストリーム Kubernetes クラスタを作成する機能が提供されます。

現在のアプリケーション スタックについての課題

現在の分散システムは、一般に多数の Kubernetes ポッドと仮想マシンを実行する複数のマイクロサービスから構成されています。vSphere with Kubernetesに基づかない典型的なスタックは、各仮想マシン内に Kubernetes インフラストラクチャがデプロイされた基盤となる仮想環境と、これらの仮想マシンでそれぞれ実行される Kubernetes ポッドで構成されます。スタックの各部分は、アプリケーション開発者、Kubernetes クラスタ管理者、および vSphere 管理者の 3 種類のロールによって操作されます。

図 1. 現在のアプリケーション スタック
各ロールは、互いの環境を可視化または制御できません。
  • アプリケーション開発者は、Kubernetes ポッドのみを実行できます。数百のアプリケーションを実行しているスタック全体は可視化できません。
  • Kubernetes クラスタ管理者は、Kubernetes インフラストラクチャのみを制御でき、仮想環境を管理または監視することや、リソース関連の問題やその他の問題を解決することはできません。
  • vSphere 管理者は、基盤となる仮想環境を完全に制御できますが、Kubernetes インフラストラクチャ、仮想環境内でのさまざまな Kubernetes オブジェクトの配置、およびそれらのオブジェクトによるリソースの使用を可視化することはできません。

3 つのすべてのロール間の通信が必要になるため、スタック全体の操作は困難になる可能性があります。また、スタックの異なるレイヤーが統合されていないことが問題となる場合もあります。たとえば、Kubernetes スケジューラには vCenter Serverインベントリに対する可視性がないため、ポッドをインテリジェントに配置することができません。

vSphere with Kubernetesを使用するメリット

vSphere with Kubernetesは、Kubernetes 制御プレーンをハイパーバイザー レイヤーに直接作成します。vSphere 管理者は、既存の vSphere クラスタで vSphere with Kubernetesを有効にして、クラスタに含まれている ESXi ホスト内に Kubernetes レイヤーを作成します。vSphere with Kubernetes が有効なクラスタを、スーパーバイザー クラスタ と言います。

図 2. vSphere with Kubernetes

vSphere with Kubernetes
ハイパーバイザー レイヤーに Kubernetes 制御プレーンがあると、vSphere で次の機能が実現します。
  • vSphere 管理者は、スーパーバイザー名前空間 という スーパーバイザー クラスタ 上の名前空間を作成し、専用のメモリ、CPU、ストレージを使用して名前空間を構成することができます。作成した スーパーバイザー名前空間 は DevOps エンジニアに提供します。
  • DevOps エンジニアは、同じプラットフォームの Kubernetes コンテナで構成されるワークロードを、スーパーバイザー名前空間 内の共有リソース プールを使用して実行できます。vSphere with Kubernetesでは、コンテナは vSphere ポッド と呼ばれる特別なタイプの仮想マシン内で実行されます。
  • DevOps エンジニアは、名前空間内の複数の Kubernetes クラスタを作成および管理し、Tanzu Kubernetes Grid サービスを使用してライフサイクルを管理できます。Tanzu Kubernetes Grid サービスを使用して作成された Kubernetes クラスタは、Tanzu Kubernetes クラスタと呼ばれます。
  • vSphere 管理者は、通常の仮想マシンと同じツールを使用して、vSphere ポッドTanzu Kubernetes クラスタを管理および監視できます。
  • vSphere 管理者は、異なる名前空間内で実行されている vSphere ポッドTanzu Kubernetes クラスタ、環境内でのそれらの配置、およびそれらのオブジェクトによるリソースの使用を完全に可視化できます。

ハイパーバイザー レイヤーで Kubernetes を実行していると、vSphere 管理者と DevOps チームの両方のロールが同じオブジェクトを操作するため、共同作業も容易になります。

ワークロードについて

vSphere with Kubernetesでは、ワークロードとは次のいずれかの方法でデプロイされたアプリケーションを指します。

  • vSphere ポッド、通常の仮想マシン、またはその両方で実行されているコンテナで構成されるアプリケーション。
  • VMware Tanzu™ Kubernetes Grid™ サービス を使用してデプロイされた Tanzu Kubernetes クラスタ。
  • VMware Tanzu™ Kubernetes Grid™ サービス を使用してデプロイされた Tanzu Kubernetes クラスタ内で実行されるアプリケーション。