概要
Admiral は VMware が提供する PhotonOS をクラスタリングするツールです
Docker Swarm のような機能を提供します
今回は VMware Integrated Container (VIC) と Admiral を組み合わせて使ってみました
環境
- Ubuntu 16.04
- docker 17.03
- VMware Admiral 0.9.2
- VMware Integrated Container 0.9.0
Admiral のインストール
Admiral は Dockerhub でイメージが公開されているのでそれを使います
Ubuntu 上の普通にインストールした docker 上で動作させています
- docker pull vmware/admiral
docker run -d -p 8282:8282 --name admiral vmware/admiral
で起動できます
起動できたらブラウザで 8282 ポートにアクセスしてみましょう
Admiral の管理画面が表示されると思います
Admiral ではこの管理画面を使ってクラスタを管理します
VCH の作成
Virtual Container Host (VCH) を作成します
VCH は VIC が提供するコンテナホストの名称です
VCH の作成方法は過去に詳しく紹介しています
とりあえず今回は 2 台作成します
また作成後 VCH に SSH でログインできる必要があるので debug コマンドで SSH でのログインを有効にしておきましょう
- 作成
./cli/vic-machine-linux create \
--target 192.168.100.101/dc \
--user vcenter-username \
--password vcenter-password \
--name ah001 \
--volume-store datastore01/data_volume:default \
--image-store datastore01 \
--compute-resource cluster01 \
--bridge-network vic-bridge-01 \
--public-network vm-net \
--thumbprint F9:... \
--no-tls --no-tlsverify --force
- ログイン有効化
./vic-machine-linux debug \
--target 192.168.100.101/dc \
--user vcenter-username \
--password vcenter-password \
--name ah001 \
--compute-resource cluster01 \
--thumbprint F9:... \
--enable-ssh --rootpw "rootpassword123"
ネットワークやストレージ、クラスタなどは環境に合わせて名称を変更してください
同様に ah002 も作成しましょう
Admiral へ VCH を追加する
トップ画面から「Add Host」で VCH を追加していきます
- Address・・・作成した VCH のエンドポイント
- Placement zone・・・ゾーン、とりあえず「default-placement-zone」を選択
- Login credential・・・ログイン情報 (New Credential から追加します、先程 debug コマンドで設定した rootpw を設定します、ユーザは root になります)
- Tags・・・タグ (追加するホストにタグを付けられます、とりあえず「ah」とします)
入力できたら Verify し問題なければ Add を選択しホストを追加します
追加できると以下のように Hosts の一覧に表示されます
同様に 2 台目も追加しましょう
この 2 台は同一クラスタ上に属するコンテナホストとして admiral では管理されます
コンテナを作成する
では Admiral 上にコンテナを作成してみましょう
左メニューの Resources から「Create Container」を選択します
Basic タグの Image で Dockerhub にあるイメージを選択することができます
Name では好きなコンテナ名を入力します
Network タグの PortBindinds の Host Port にホストでバインドするポートを入力します
Container Port にはコンテナが EXPOSE するポートを入力します
今回は nginx のイメージを使ってコンテナを立ち上げるのでそれにあった情報を入力しています
設定できたら「Provision」を選択しコンテナを立ち上げます
左メニューの Resources -> Containers にコンテナが表示されると思います
同様にもう一つコンテナを作成してみましょう
先ほどと同様に nginx のイメージを選択し、Host Port も同じもの (8080) を設定してみてください
1 台構成であれば同じホストポートが使われるとエラーとなりますが、クラスタには 2 台の VCH があるのでエラーとならずコンテナが 2 台起動します
当然ですが、3 台目のコンテナを 8080 で起動しようとすると 8080 が開いている VCH がないのでエラーとなります
その他
基本的な機能は以上です
コンテナを作成しすぎてリソースが足りなくなったら新たに VCH を作成して追加すれば OK です
その他ちょろっと触ってみた感想です
- コンテナの詳細画面で docker logs が見れる
- Placement (クラスタ) はコンテナを作成する優先度は設定することができるが Placement を指定してコンテナ作成をすることはできなさそう
- LB 的なやつはない
- レジストリ連携できる (Templates -> Manage Registry から追加できる)
- Network 機能を使えばホスト間で横断的に通信できるオーバレイネットワークを組めそう
最後に
Admiral + VCH で docker swarm 的なことを試してみました
UI からの操作ですがかなり直感的に使えました
VMware 環境で VCH でコンテナ管理をしている場合には Admiral を使えば少し幸せになれるかもしれません
0 件のコメント:
コメントを投稿