vSphere

vSphere Integrated Containers テクノロジー ウォークスルー

vSphere Integrated Containers (VIC) は、アプリケーションの可搬性と俊敏性という長所を持つ Linux コンテナを、ハードウェアレベルの隔離と高い管理性という長所を持つ仮想化プラットフォーム vSphere と組み合わせたものです。前のエントリで、その概要を紹介しています。
今回のエントリでは、技術的な観点から、VIC のキーとなるコンポーネントを紹介していきます。VIC は、いくつかのコンポーネントから構成されており、コンテナの管理、実行、そしてモニタリングを行うことができます。

Virtual Container Host

Virtual Container Host (VCH) は、コンテナサービスを利用および制御するためのコンポーネントです。VCH は、開発者がアクセスできるように Docker API のエンドポイントを公開し、接続に必要なポートを適宜コンテナにマップします。それぞれの VCH は、vSphere リソースプールをベースとして、仮想マシンに加えてコンテナのコンピューティング リソースを提供します。ユーザは、ビジネス要件に応じて、複数の VCH をデプロイすることができます。たとえば、開発・テスト・プロダクションのためにリソースを分けるケースが考えられます。
それぞれの VCH はコンテナイメージのキャッシュを維持します。これはパブリックの Docker Hub もしくはプライベートなレジストリからダウンロードされたものです。コンテナイメージのファイルシステムのレイヤーも、個別の VMDK ファイルにマップされることで維持されます。これらは、VSAN、NFS もしくはローカルディスク上の vSphere のデータストアに格納されます。
vch-endpoint

vSphere Web Client Plugin

VIC の管理機能は vSphere Web Client のプラグインとして提供され、管理者は VIC を vSphere Web Client を通じて管理できます。コンテナ特有の情報は Web Client のさまざまな場所に統合されています。下記に示すように、Virtual Container Host の作成のためには、ウィザードが用意されています。
vch-wiz-ready

Instant Clone と Just Enough VM

VIC のアーキテクチャでは、コンテナがそれぞれ別々の仮想マシン内で動作します。これにより VIC は、強力なリソースマネジメントと、セキュリティのためのハードウェアレベルの隔離を実現しています。
ひとつのマイクロサービスを稼働させるために仮想マシンを立ち上げることは、一見、強引な感じがするかもしれません。普通にやると、コンテナの軽量さというメリットが活かせなくなってしまうからです。
VMware は、vSphere 6 の新機能である Instant Clone テクノロジーを使って、コンテナの軽量さを仮想マシンでも実現しています。Instant Clone を使うと、一つの親 VM から、コンテナを載せた子 VM を、高速かつ効率的にフォークすることができます。この技術は、 親 VM と子 VM のメモリの共通部分における重複を回避することで、VM の軽量なコピーを提供します。もちろん、コンテナが他のワークロードと不用意にコミュニケーションすることはきちんと防いでくれます。
Linux コンテナは、実行のために Linux カーネルを必要とします。VIC では、Linux カーネルは VMware の Project Photon によって提供されます。Photon OS は、カーネルおよび少数のリソースしか含まず、とても軽量な OS になっています。そして、個々のコンテナには、アドミニストレーションやパッケージ管理のためのバイナリもありませんし、init システムもないですし、Docker コンポーネントでさえありません。VCH 上でのみ Docker テクノロジーを利用しています。
この非常に軽量な Linux カーネルとフォークされた仮想マシンのコンビネーションは、コンテナを走らせるための「Just enough VM」を生み出します。Just enough VM とは、コンテナを走らせるために十分なリソースと機能を備えた、非常に軽量な VM という意味です。Just enough VM は、それでいて、VM の優れたセキュリティ・管理機能を受け継いでいます。

一貫性のあるユーザ エクスペリエンス

ネイティブな Docker コマンドラインクライアント、もしくは、グラフィカルな Web Client プラグインを使うかどうかに関わらず、VIC 上でコンテナを稼働させるために必要な情報に同様にアクセス可能です。管理者は、コンテナのリソース消費や、ポートのマッピング状況、ベースイメージの情報などに関するインサイトを得ることができ、全体のインフラをより効果的に管理することができます。VIC は、トラブルシューティングやアプリケーションの監査などを行う際の、管理者、開発者、そしてアプリケーションオーナー間でのコミュニケーションを促進することができるでしょう。
vch-containers1
このようなグラフィカルな情報に加えて、コンテナに関する様々なアクションが、関連するvSphere コマンドにマップされています。たとえば、コンテナの停止や削除は、関連する VM の電源オフや削除、といったようにです。
—–
vSphere Integrated Containers は、vSphere 仮想インフラ上で標準化されたクラウドネイティブアプリケーションを動作させるための、高速道路の入り口となり得ます。VIC について、下記のビデオから、より詳細な情報を得ることもできます(英語)。

https://www.youtube.com/watch?t=208&v=NF38PWgosfw

vSphere Integrated Containers は現在テクノロジープレビューの段階です。もしこれ以上の情報が必要でしたら、VMware のアカウントチームにぜひコンタクトしてください。
関連エントリ: vSphere Integrated Containers – Technology Walkthrough https://blogs.vmware.com/vsphere/2015/10/vsphere-integrated-containers-technology-walkthrough.html