Acropolis Container Services (ACS) を、Nutanix CE で試してみました。
ACS は Nutanix 環境で Docker を使いやすくするための機能群です。今のところ、対応しているハイパーバイザは Acropolis Hypervisor (AHV) だけのようです。
Nutanix Web サイトでの ACS の説明は、下記にあります。
Nutanix Bible での ACS の説明は、このあたりです。
- Container Services
http://nutanixbible.com/#anchor-container-services-83
ACS 関連のドキュメントやファイルは、Nutanix コミュニティ サイトからでもダウンロードできます。
Download Acropolis Container Services (Docker)
※NEXT アカウントでのログインが必要です。
Acropolis Container Services (ACS) の機能
ACS には、下記の3つの要素が含まれています。
- Nutanix Docker Host Image
- Nutanix Docker Machine Driver
- Nutanix Docker Volume Driver (Docker Volume Plug-In)
1. Nutanix Docker Host Image
CentOS 7 をベースとした、Docker Host VM の QCOW2 ディスク イメージが提供されます。
これは、Prism の Image Service でインポートしておきます。
2. Nutanix Docker Machine Driver
Docker Machine (Docker Engine のインストールされた「Docker Host」の作成を自動化する機能) で、Image Service から Nutanix Docker Host Image をデプロイするためのドライバです。つまり、Nutanix への Docker Host VM の作成を、docker-machine コマンドによってシンプルにできます。
- docker-machine コマンドから使用されるドライバのバイナリファイルが提供される。
- Windows、Linux、Mac 用がある。
- docker-machine コマンド自体は含まれないので、別途インストールする。
- Nutanix Volume Plug-In のセットアップスクリプトもこの中に含まれる。
3. Nutanix Docker Volume Driver (Docker Volume Plug-In)
Docker コンテナで扱うデータは、デフォルトだとコンテナを削除すると一緒に消えてしまいますが、Docker の Data Volume に配置すると永続化されます。(コンテナと一緒に削除されなくなります。)
Nutanix Volume Plug-In で、Docker Volume として、Nutanix の Acropolis Block Services (ABS) による Volume Group (iSCSI LUN) を使用することができるようになります。
- docker コマンドと ABS が連携 (Nutanix Prism 経由で) できるようになる。
ABS を使用するので、Nutanix Cluster には Data Service IP を設定しておく。 - Nutanix Volume Plug-In は、Docker コンテナとして提供されている。(Docker Hub で公開されている orionapps/vol-plugin を、Sidekick コンテナとして起動する。)
- Plug-In のコンテナ イメージのダウンロード ~ セットアップは、Nutanix Docker Host Image に同梱されているスクリプト (start-volume-plugin.sh) で実行できる。
- Docker コンテナの作成時に指定した ボリュームがない場合は、自動的に ABS で VGが作成されて、Docker Host VM の iSCSI IQN からアクセスできるように設定される。
ACS は、だいたいこんなイメージだと思われます。
ACS が利用する既存の仕組み
ここまでの説明にあるように、ACS では、Nutanix と Docker がもともと持っている仕組みを活用しています。主なものは下記です。
Nutanix
- Acropolis Distributed Storage Fabric (DFS)
- Acropolis Image Service
- Acropolis Block Services (ABS)
Docker Ecosystem
- Docker Engine
- Docker Machine (docker-machine)
今回のサーバ構成
今回は、Ravello を使用します。
Ravello 上の VM は2つです。
- Nutanix CE
- Client 用の Linux
Nutanix CE
- 今回は 1-Node Nutanix Cluster。
- Nutanix CE のバージョンは、2016.09.23。
- この上に、Docker Host になる VM (ホスト名: docker-vm-01) が作成される。
Client (ホスト名: vm01)
- OS は Oracle Linux 7。
- ここから docker-machine コマンドを実行する。
ほかに、外部のサービスも利用します。
- CentOS の Yum リポジトリ。Docker Host VM が RPM をダウンロードする。
- Docker Hub。Docker Host VM がコンテナイメージをダウンロードする。
ACS 関連ファイルのダウンロード
Nutanix フォーラムのディスカッションから、をダウンロードしておきます。
イメージ ファイル
Docker Host VM の QCOW2 イメージ ファイルです。Docker Mashine は、このイメージから Docker Host をクローン作成します。
- container-host-image-20160628.qcow2
Docker Machine Driver
docker-machine を実行する OS に合わせてダウンロードします。curl などでもダウンロードできます。
Linux / Mac の場合は、docker-machine-driver-nutanix というファイル名で保存します。
- Windows: docker-machine-driver-nutanix.exe
- Linux: docker-machine-driver-nutanix.linux
- Mac: docker-machine-driver-nutanix.osx
つづく。