Nutanix Community Meetup #16 で、Nutanix で Docker を利用する Acropolis Container Services (ACS) についての紹介をしました。
内容は、下記のような感じです。
- Docker と Nutanix の関係
- Acropolis Container Services (ACS)とは
- ACS の様子
1. Docker と Nutanix の関係
VM としてコンテナホストを構築
まず、サーバ仮想化の VM とコンテナは、それぞれ下記のようなイメージだと思います。Docker は、OS にコンテナ エンジン (Docker Engine) をインストールして、コンテナ環境を構成します。
Nutanix で Docker を使用する場合は、Docker Host を VM として構築します。
Docker Host VM は、一般的な Docker Engine がインストールされた、一般的な VM として Nutanix Cluster に作成されます。
Nutanix の CVM に特別な何かをインストールしたり、Prism が管理するハイパーバイザ (AHV) がコンテナ エンジンに置き換えられたりするわけではありません。
ACS は、Docker Machine (docker-machine コマンド) を利用して、Docker Host VM のプロビジョニングをシンプルにします。
コンテナのデータ永続化
Docker コンテナ内のデータは、基本的にはコンテナとともに消えます。
ただし Docker Volume などの機能を使用することでデータの永続化も可能です。
Docker Volume は、Docker の Volume Plug-in を使用することで、ファイルシステムとのバインドや NFS、iSCSI LUN によるボリュームをコンテナに接続できる機能です。この Volume はコンテナとは独立していて、コンテナを削除しても Volume のデータを保持することができます。
ACS では、Nutanix Acropolis Block Services (ABS) による iSCSI デバイスを、Docker Volume として使用することができます。Docker Volume は、ABS の Volume Group (実体は Nutanix DSF に配置される vDisk)として永続化されます。
2. Acropolis Container Services (ACS)とは
紹介した内容は、この投稿にあるものです。
ちなみに Docker 的な内容とは関係ないところで、この投稿だと Ravello を利用していますが、Meetup で説明した環境は ESXi 6.0 の Nested Nutanix でした。
3. ACS の様子
下記のあたりから一連の投稿を、短縮版で紹介しました・・・
ACS の感想
ACS で構築される Docker Host は一般的な CentOS 7 の Docker の環境なので、良くも悪くも、構築された Docker 環境は、特徴はあまりない感じがしました。
ただし、Docker Engine のバージョンはデフォルトでは yum.dockerproject.org からダウンロードされるので新しめのものになります。ちゃんと使用する場合は、特定バージョンの Docker Engine がインストールされるように、ダウンロードする Yum サーバを指定したりするとよいかもしれません。
ACS による Docker Volume は、データ永続化むけのものであって、コンテナ間でのデータ共有には向かなそうです。Volume は DSF に作成されるので Nutanix Cluster 内のどの AHV からでもアクセスは可能ですが、Docker Volume としては Docker Host VM をまたいで接続できないようです。Docker Host VM がどの AHV に移動しても追随できるデータ永続化用の ストレージ、というのが Nutanix Driver による Docker Volume のようです。
当日の会場にてスクリーンに向かって何かを送っている様子。
@gowatana さんによるAcropolis Container Service解説! #Nutanix pic.twitter.com/2mjK1Mm91E
— Satoshi SHIMAZAKI (@smzksts) 2017年2月9日
引き続き、いろいろ試してみたいと思います。
以上。