2019年11月12日、13日の両日、VMware社主催のイベント「vFORUM 2019」が東京で開催されました。このイベントにおいて富士ソフトの小池 貴詞が、「【徹底解説】次世代のアプリケーション構築『VMware Enterprise PKS』」と題して講演。コンテナ環境がエンタープライズレベルでも活用可能となる「VMware Enterprise PKS」について解説しました。

コンテナ環境を管理・運用するためのソリューション「VMware Enterprise PKS」

次世代のアプリケーション構築の基盤となるVMware Enterprise PKSは、コンテナ環境を管理・運用するためのソリューションです。VMware社、Pivotal社、Google Cloud社が共同開発しました。

コンテナとは、アプリケーションと、それを動作させるために必要なライブラリを1つにまとめた論理的な区画(コンテナ)をOS上に作成して、個別のサーバのように使うことができるようにする技術です。Docker(ドッカー)やKubernetes(クバネティス)などのコンテナ管理ソフトが提供されています。

コンテナを使ったアプリケーション開発には、従来の仮想マシンを使ったアプリケーション開発と比べて様々な利点があります。ですが、コンテナ環境をエンタープライズレベルで利用するには、コンテナ管理ソフトだけでなく、コンテナ環境全体を管理するためのソリューションが必要になります。Kubernetesの機能を補い、効率的にコンテナによるアプリケーションの開発/管理を可能とするのがVMware Enterprise PKSです。

分散環境でのコンテナ利用の課題解決

コンテナとKubernetesについて説明します。

コンテナを使ったアプリケーション開発では、Gitなどのリポジトリにアップロードしたアプリケーションと、それが動くために必要なミドルウェアをまとめてビルドし、コンテナのマスターイメージを作成します。そして、そのマスターイメージからコンテナを展開して開発環境を作成していく、というのがコンテナ環境を作成する際のベースのシナリオです。

コンテナはサーバ上で1つのプロセスとして動きますので、仮想マシンそのものを展開するよりも環境への負荷は少なくなります。数十台のコンテナの同時展開も短時間で行えますので、必要な時に必要な分だけを展開してすぐに使用することが可能です。それにより、即時対応、即時反映といった、昨今のアプリケーションの開発現場に求められている「即応性」に対応できるようになることが大きなメリットです。また、コンテナが稼働する上で、ホストの環境に影響を受けないこともメリットになります。

ただし、複数サーバでのクラスター環境(分散環境)でコンテナを使用する場合には様々な課題が発生します。POD(単体または複数コンテナのグループ)間のネットワークをどう管理するか、コンテナのデプロイや負荷分散、監視をどうするかなどといった課題です。また、分散環境では大量のコンテナが稼働することもありますので、手作業での管理は現実的ではありません。  

課題解決の方法の一つがKubernetesです。Kubernetesは分散環境でコンテナを管理運用するためのオープンソースのツールで、コンテナのデプロイ、ネットワーク管理、負荷分散、監視、アップデート、障害発生時の自動復旧などの機能をもっています。Cloud Native Computing Foundation(CNCF)によって開発が支援され、MicrosoftやGoogleも積極的に開発していることから、現段階ではコンテナオーケストレーションツールのデファクトスタンダードと言ってよいでしょう。

しかしKubernetesはコンテナ環境を構成する機能のひとつにすぎず、エンタープライズレベルの環境でコンテナを利用するには、それ以外の機能を補うツールも必要になってきます。

具体的には、コンテナ環境を構成する上で必須となるイメージレジストリ、スケジューリング、フレームワークのライフサイクルマネジメント、クラスターの健全性確認、セキュリティやネットワークの機能、および環境全体のモニタリング、各種ログの管理/分析機能が必要です。

それらの機能を実現するKubernetesなどの様々なツールと連携し、エンタープライズレベルでコンテナの分散環境を提供するソリューションがVMware Enterprise PKSです。

VMware Enterprise PKS導入前の構成(左)と導入後の構成(右)

VMware Enterprise PKSの役割

VMware Enterprise PKSは、Kubernetes、ネットワーク仮想化を提供する「NSX-T」、分散システムの構成管理ツールの「BOSH」、「PKS Control Plane」、コンテナレジストリの「Harbor」などで構成されます。

VMware Enterprise PKSの構成イメージ

NSX-Tと統合されているため、POD間のネットワークを作成/管理し、L2からL7までの通信制御やマイクロセグメンテーションなど高度なネットワークの導入が可能となっています。

BOSHを搭載しており、Kubernetesクラスターの導入を簡素化できるだけでなく、ヘルスチェック等で自己修復を行うなど、環境を管理しやすくします。 また、Google CloudやAWS、Microsoft Azureなどマルチクラウド環境にKubernetes環境をデプロイすることで、VMware Enterprise PKSでクラウドとの連携が可能となります。

コンテナ環境をエンタープライズレベルで提供するためには

一般的にコンテナ環境を構築する場合、ネットワークやレジストリなどの様々なツールを選択し、構成を検討し、実際に構築していくことになります。そのため、構成が複雑になりやすく、使いにくい環境になってしまうこともあるでしょう。VMware Enterprise PKSは、必要な機能をまとめてvSphereに統合して提供されるため、シンプルで使いやすい環境が構築できます。

また、コンテナを他の環境に移して稼働させる場合、構成の違いによってネットワークやストレージがうまく認識されず動かないといった問題が起こりがちです。VMware Enterprise PKSに含まれているツールは、全てVMware社によって事前に動作確認されているため、VMware環境同士であれば問題なくコンテナを移すことができます。

NSX-Tの機能によりネットワークの仮想化と自動化、PODレベルのマイクロセグメンテーションなどが利用可能となります。また、ネットワーク環境を管理するためのツールが提供されますので、管理・運用コストの削減が期待できます。

さらに、VMware Enterprise PKSと、ハイブリッド クラウド管理プラットフォーム「VMware vRealize Suite」やクラウド監視ツール「Wavefront by VMware」と連携させることで、環境全体のモニタリングや監視、ログ管理等も可能となりますので、エンタープライズレベルのコンテナ環境が提供できるのです。

アップストリーム版のKubernetesのみを提供する「VMware Essential PKS」

まだ日本では購入することができませんが、2019年の2月には「VMware Essential PKS」というソリューションの提供が発表されました。  

VMware Essential PKSは、NSX-T、BOSH、Harborといったツールを含まず、アップストリーム版のKubernetesだけを求めているユーザー向けの製品です。基本的にはKubernetes以外の機能はユーザーが自分で構築しますが、必要に応じてVMware社の支援を受けながら、環境を構築することも可能です。自社で各コンポーネントの設計/導入/統合が可能な企業や、VMware社の「Kubernetes Architects」のような専門チームの支援でKubernetesベースの独自のアーキテクチャを導入する企業に向いています。

VMware Enterprise PKSは、VMwareによって事前検証され、vSphere環境に統合されたエンタープライズ水準のセキュリティや、ネットワーク、監視、運用を利用したいユーザー向けの製品となっています。製品を導入すればすぐに使えるため、「ターンキー」式のアプローチがマッチするユーザーにも向いています。

このほか、Linux、Docker、Kubernetesなどに関する専門知識が少なく、すぐに利用したい場合はVMware Enterprise PKSを、専門知識を有しており安価に構築した場合はVMware Essential PKSを、といった基準で選定することも今後できるようになるでしょう。

VMware Enterprise PKSとVMware Essential PKSの選定基準

最後に、繰り返しになりますが、Kubernetesはコンテナ環境を構成するツールのひとつにすぎません。VMware Enterprise PKSを利用することで、コンテナ環境の構成がシンプルになり、コンテナ環境の導入を簡易化することができます。さらに、vRealizeやWavefrontと連携させて環境全体を管理できるようにすることが、エンタープライズレベルのコンテナ環境を活用する上で重要となります。

富士ソフトのVMware 仮想化ソリューションについて、詳しくはこちら
VMware 仮想化ソリューション

この記事を読んだ人はこちらの記事も読んでいます。