2017年4月21日金曜日

VMware Admiral を使ってみた

概要

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 を追加していきます

admiral1.png

admiral2.png

  • Address・・・作成した VCH のエンドポイント
  • Placement zone・・・ゾーン、とりあえず「default-placement-zone」を選択
  • Login credential・・・ログイン情報 (New Credential から追加します、先程 debug コマンドで設定した rootpw を設定します、ユーザは root になります)
  • Tags・・・タグ (追加するホストにタグを付けられます、とりあえず「ah」とします)

入力できたら Verify し問題なければ Add を選択しホストを追加します

追加できると以下のように Hosts の一覧に表示されます
admiral3.png

同様に 2 台目も追加しましょう
この 2 台は同一クラスタ上に属するコンテナホストとして admiral では管理されます

コンテナを作成する

では Admiral 上にコンテナを作成してみましょう
左メニューの Resources から「Create Container」を選択します

Basic タグの Image で Dockerhub にあるイメージを選択することができます
Name では好きなコンテナ名を入力します
admiral4.png

Network タグの PortBindinds の Host Port にホストでバインドするポートを入力します
Container Port にはコンテナが EXPOSE するポートを入力します
admiral5.png

今回は nginx のイメージを使ってコンテナを立ち上げるのでそれにあった情報を入力しています

設定できたら「Provision」を選択しコンテナを立ち上げます

左メニューの Resources -> Containers にコンテナが表示されると思います
同様にもう一つコンテナを作成してみましょう
先ほどと同様に nginx のイメージを選択し、Host Port も同じもの (8080) を設定してみてください

1 台構成であれば同じホストポートが使われるとエラーとなりますが、クラスタには 2 台の VCH があるのでエラーとならずコンテナが 2 台起動します
admiral6.png

当然ですが、3 台目のコンテナを 8080 で起動しようとすると 8080 が開いている VCH がないのでエラーとなります

その他

基本的な機能は以上です
コンテナを作成しすぎてリソースが足りなくなったら新たに VCH を作成して追加すれば OK です
その他ちょろっと触ってみた感想です

  • コンテナの詳細画面で docker logs が見れる
  • Placement (クラスタ) はコンテナを作成する優先度は設定することができるが Placement を指定してコンテナ作成をすることはできなさそう
  • LB 的なやつはない
  • レジストリ連携できる (Templates -> Manage Registry から追加できる)
  • Network 機能を使えばホスト間で横断的に通信できるオーバレイネットワークを組めそう

最後に

Admiral + VCH で docker swarm 的なことを試してみました
UI からの操作ですがかなり直感的に使えました

VMware 環境で VCH でコンテナ管理をしている場合には Admiral を使えば少し幸せになれるかもしれません

参考サイト

0 件のコメント:

コメントを投稿