読者です 読者をやめる 読者になる 読者になる

NTNX>日記

個人的な趣味による Nutanix Community Edition 日記。Japanese のみですみません。

Nutanix CE で Acropolis Container Services (ACS) 。Part.1

Acropolis Container Services (ACS) を、Nutanix CE で試してみました。
ACS は Nutanix 環境で Docker を使いやすくするための機能群です。今のところ、対応しているハイパーバイザは Acropolis Hypervisor (AHV) だけのようです。

Nutanix Web サイトでの ACS の説明は、下記にあります。

Nutanix Bible での ACS の説明は、このあたりです。

ACS 関連のドキュメントやファイルは、Nutanix コミュニティ サイトからでもダウンロードできます。

Download Acropolis Container Services (Docker)
※NEXT アカウントでのログインが必要です。

Acropolis Container Services (ACS) の機能

ACS には、下記の3つの要素が含まれています。

  1. Nutanix Docker Host Image
  2. Nutanix Docker Machine Driver
  3. 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 は、だいたいこんなイメージだと思われます。

f:id:gowatana:20170219142919p:plain

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 を使用します。

f:id:gowatana:20161016142722p:plain

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 がコンテナイメージをダウンロードする。

f:id:gowatana:20161016150725p:plain

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

つづく。