Content
VMwareは、あらゆるデータセンターに仮想マシンを導入した企業として有名になりました。
しかし今日、VMwareはコンテナとKubernetesの世界でも主要なプレーヤーとなっています。実際、VMwareの主要な仮想化プラットフォームの1つであるvSphereは、Kubernetesを “ベイクドイン “した状態で提供されています。これに加え、VMwareはパブリック、プライベート、ハイブリッドのクラウド環境でKubernetesを管理するためのTanzu Mission Controlのようなツールにも投資しています。
VMwareでKubernetesを使用するために必要なすべての知識については、続きをお読みください。
KubernetesはVMware上で実行可能か?
ここ数年、VMwareはVMware仮想マシン上でKubernetesクラスタを実行することを可能にするだけでなく、容易にするためのツールに多大な投資を行ってきました。
この取り組みは、VMwareがPivotal(Kubernetesベンダー)を買収し、2019年にProject Pacificを発表したことから始まりました。2020年にリリースされるvSphere 7では、KubernetesのサポートがVMプラットフォームに深く統合されています。
これは何を意味するかというと、vSphere 7を使用している場合、vSphereを介して管理するVM上にKubernetesクラスタを作成して実行するために特別なことをする必要はないということです。Kubernetesは、VMwareが言うように「ESXiとvCenterの両方のコアに深く組み込まれています」。同社はまた、vSphereでKubernetesを「数時間以内に立ち上げて実行できる」とも述べています。
VMware上でKubernetesを実行する理由
Kubernetesをホストする方法はVMwareだけではありません。パブリッククラウドサービスとして動作するもの(AWS EKSやAzure AKSなど)もあれば、インフラに依存しないものもあります。
しかし、他のほとんどのアプローチと比較して、VMwareでKubernetesを実行することは、特定のユースケースにおいていくつかの魅力的な利点を提供します。
VMと並行してコンテナをオーケストレーション
VMware Kubernetesの最も注目すべき利点は、VMwareがコンテナと従来のVMの両方に同等の比重を置くプラットフォームであることでしょう。Cloud FoundationとvSphereを使用すれば、Kubernetesクラスタと一緒に従来のVMをセットアップして管理できます。
KubeVirtのような他のツールを使って、KubernetesでVMをオーケストレーションすることも可能です。しかしその場合、VMはKubernetesクラスタと並行して実行されるのではなく、Kubernetesクラスタの一部になってしまいます。VMware では、VM とコンテナを個別に実行しながら、中央のプラットフォームで管理することができます。
統合されたインフラストラクチャ
VMware Kubernetes では、Kubernetes クラスタの運用に必要なすべてのインフラストラクチャ(コンピュート、ストレージ、およびネットワーク)を単一のプラットフォームで利用できます。さらに、以下に示すように、VMware は、クラスタをホストできるワークロード ドメインにインフラストラクチャをプロビジョニングするためのシンプルで自動化されたプロセスを提供します。
自動化されたKubernetesの設定
以下に示すように、KubernetesのコンポーネントをVMwareにインストールするほとんどの部分は自動化されています。もちろん、それは他の多くのKubernetesプラットフォームでも同様ですが、それにもかかわらず、VMwareがKubernetesのセットアッププロセスをかなりシンプルにしていることは注目に値します。
GUIベースの管理
VMwareでは、Kubernetesのセットアップと管理のほとんどの側面をvSphere GUIで処理できます。これは、kubectlが嫌いでCLIですべてを管理したくない場合に有利です。(とはいえ、VMwareクラスタでkubectlを使用することは可能です)。
クラウド不可知論
VMware は、単一のパブリック クラウド、マルチクラウド、ハイブリッド クラウド、プライベート クラウド、オンプレミスなど、事実上あらゆる環境で実行できます。そのため、VMware Kubernetesもほぼすべての場所で実行できます。
すべてのKubernetesプラットフォームに当てはまるわけではありません。これまで述べてきたように、特定のパブリック・クラウドでのみ動作するものもあります。
エアギャップ
VMware Kubernetes は、クラスタをインターネットから完全に切り離すことができるエアギャップをサポートしています。これは、高度なセキュリティとプライバシーを必要とするユースケースに便利です。
他の多くのKubernetesプラットフォームでは、インターネットへの常時接続が必要なため、エアギャップがサポートされていません。
VMware Kubernetesの難点
もちろん、VMware Kubernetesがすべてのユースケースに最適なソリューションというわけではありません。考慮すべき潜在的な欠点は以下のとおりです:
- エコシステムへの依存: VMware KubernetesのツールのほとんどはVMwareによって開発されており、クラスタにプラグインできるオープンソースのコンポーネントの柔軟性は低いです。VMwareのエコシステムに縛られたくない場合は、VMware Kubernetesを好まないかもしれません。
- VSphereへの依存: すでに述べたように、VMware KubernetesはvSphereの上で動作します。VMware Kubernetesを単独で実行することはできません。これは、軽量なKubernetesスタックを求める場合には不利になるかもしれません。
- 複雑なツール: 他のKubernetesベンダーと比べて、VMwareはKubernetes関連ツールのセットが比較的複雑です。VMwareは、すべてを単一のプラットフォームにパッケージ化する代わりに、Cloud Foundation、vSphere、Tanzuにツールを分散させています。VMwareのエコシステムをすでによく知っているのであれば、それは問題ではありません。しかし、VMware全般にあまり詳しくない場合、どのツールが何をするのかを理解するのは難しいかもしれません。
VMware Kubernetesはどのような企業に最適か?
VMware Kubernetesは、さまざまなKubernetesのユースケースで有効な選択肢ですが、次のいずれかに当てはまる場合は、最も理にかなっています:
- すでにVMwareを広範囲に使用してVMを実行しており、チームはVMwareツールの操作について深い専門知識を持っています。
- オンプレミス、クラウドベースのあらゆる環境やアーキテクチャをサポートするKubernetesソリューションを求めています。
- VMとコンテナは組織内では対等な存在であり、一元的なプラットフォームですべてを管理できるようにしたいと考えています。
VMware上でKubernetesを実行する手順
KubernetesはVMwareの現在のプラットフォームに組み込まれていると前述しました。とはいえ、自動的にオンになるわけではありません。VMware上にKubernetesクラスタをデプロイするには、VMWare Cloud Foundationで実行できるいくつかのステップを踏む必要があります。
ワークロードドメインの作成
ワークロードドメインは、コンピュート、ストレージ、ネットワークリソースのソフトウェア定義セットです。Kubernetesワークロードのリソースニーズに応じてドメインをサイズ設定します。
NSX Edge クラスタのデプロイ
エッジクラスタはクラスタと外部リソース間のネットワーキングを管理します。このプロセスの一環としてロードバランシングとNATを処理します。
Kubernetesの有効化
ワークロードドメインが配置され、エッジクラスタが構成された状態で、Cloud Foundationでワークロード管理を有効にすることで、Kubernetesをデプロイできます。
このプロセスでは、VMware Tanzuをコントロールプレーンとして使用して、Kubernetesノードとして動作するようにVMをプロビジョニングします。また、Kubernetesランタイムをクラスタにプッシュし、コンテナを実行できるようにします。
Kubernetesのデプロイプロセスはほぼ自動化されています。VM にコンポーネントを手動でインストールする必要はありません。
VMware Kubernetesでのコンテナ管理
クラスタの設定が完了したら、vSphere Web クライアントで Kubernetes 上のコンテナのデプロイと管理を開始できます:

出典: https://blogs.vmware.com/vsphere/files/2020/03/4-Tanzu-Kubernetes-Cluster-View.png
スクリーンショットが示すように、vSphereでクラスタのステータスを監視できます。また、Web インタフェースからポッド、デーモンセット、レプリカセットなどの Kubernetes リソースを構成および監視することもできます。実際、VMware は Kubernetes 管理用に特に堅牢な GUI を提供しています。
しかし、コマンドラインがお好みであれば、VMwareはあなたをカバーしています。どのタイプのKubernetes環境でもそうであるように、kubectlを使用してコマンドラインでKubernetes環境を管理することができます。
結論
Kubernetesは今やVMwareの世界でも一流の市民権を得ています。VMwareのKubernetesツールは最もシンプルで軽量というわけではありませんが、コンテナと仮想マシンの両方を中央のプラットフォームで管理したい場合、あるいはインフラにとらわれないKubernetesのデプロイを行いたい場合には、Cloud Foundation、vSphere、Tanzuが最適です。