VMwareで Kubernetesを稼働するには?基本を解説
かつてVMwareは、あらゆるデータセンターに仮想マシンを導入した企業として有名になりました。今日では、コンテナとKubernetesにおいても主要な企業となっています。
実際、VMwareの主要な仮想化プラットフォームのひとつvSphereは、Kubernetesを含む状態で提供されています。さらに企業としてのVMwareはパブリック、プライベート、ハイブリッドのクラウド環境でKubernetesを管理するためのTanzu Mission Controlといったツールにも投資しています。
この記事では、VMwareでKubernetesを稼働するための基本を解説します。
関 連 記 事
Kubernetesとは? | Kubernetesセキュリティ の基礎 | Kubernetesアーキテクチャの 設計方法 |
AWSのEKS (Elastic Kubernetes Service) | Kubernetesの クラスターとは? | Kubernetes のノードとは? |
KubernetesのPodとは? | KubernetesのHelmとは? | クラウドセキュリティと ランタイムインサイト |
VMwareとKubernetesの関係性
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を稼働するメリット
特定のケースにおいて、VMwareでKubernetesを稼働するのはメリットがあります。
もちろんKubernetesをホストする方法はVMwareだけではありません。パブリッククラウドサービスとして動作するもの(AWS EKSやAzure AKSなど)もあれば、インフラに依存しないものもあります。ここでは詳しく見ていきましょう。
VMと並行してコンテナをオーケストレーションできる
VMware Kubernetesの最大のメリットは、VMwareがコンテナと従来のVMの両方に同等の比重を置くプラットフォームであることでしょう。Cloud FoundationとvSphereを使用すれば、Kubernetesクラスタと一緒に従来のVMをセットアップして管理できます。
KubeVirtのような他のツールを使って、KubernetesでVMをオーケストレーションすることも可能です。しかしその場合、VMはKubernetesクラスタと並行して実行されるのではなく、Kubernetesクラスタの一部になってしまいます。VMware では、VM とコンテナを個別に実行しながら、中央のプラットフォームで管理することができます。
インフラストラクチャを統合できる
VMware Kubernetesでは、Kubernetes クラスタの運用に必要なすべてのインフラストラクチャ(コンピュート、ストレージ、およびネットワーク)を単一のプラットフォームで利用できます。
さらに、クラスタをホストできるワークロード ドメインにインフラストラクチャをプロビジョニングするためのシンプルで自動化されたプロセスを実現可能です。
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全般にあまり詳しくない場合、どのツールが何をするのかを理解するのは難しいかもしれません。
Kubernetes稼働にVMware が適切な場合
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でも一般的に使われています。環境としては最もシンプルで軽量というわけではありませんが、ケースによっては最善の選択肢となるでしょう。
特にコンテナと仮想マシンの両方を中央のプラットフォームで管理したい場合、あるいはインフラにとらわれないKubernetesのデプロイを行いたい場合には、Cloud Foundation、vSphere、Tanzuが最適となることが多いです。