概要
VMware VIC の 1.2.1 GA がリリースされていたので試してみました
そのうち正式版がリリースされると思うのでそれを待っても良かったのですが触ってみました
環境
- vic-machine v.1.2.1-13858-c3db65f
- docker 17.03.0-ce
- Ubuntu 16.04
- vCenter Server 5.5.0
vic-machine コマンドのインストール
wget https://storage.googleapis.com/vic-engine-releases/vic_1.2.1.tar.gz
各種コマンド検証
create
./vic-machine-linux create \
--target 192.168.100.101/dc \
--user "vc-user" \
--password "vc-pass" \
--compute-resource cluster \
--image-store datastore2 \
--bridge-network "dvs-for-vch" \
--public-network "VM Network" \
--no-tlsverify --force
特に追加になってそうなオプションはなさそう
--name
を指定しないと「virtual-container-host」という名前で vApp が作成され、その配下に VM が作成されます
delete
./vic-machine-linux delete \
--target 192.168.100.101/dc \
--user "vc-user" \
--password "vc-pass" \
--compute-resource cluster \
--name virtual-container-host \
--thumbprint "37:1D:..."
こちらも特になし
--name
オプションを指定しないと「virtual-container-host」を削除しにいきます
ls
./vic-machine-linux ls \
--target "192.168.100.101/dc" \
--user "vc-user" \
--password "vc-pass" \
--compute-resource "cluster" \
--thumbprint "37:1D:..."
こちらも特になし
inspect
./vic-machine-linux inspect -\
-target "192.168.100.101/dc" \
--user "vc-user" \
--password "vc-pass" \
--compute-resource "cluster" \
--thumbprint "37:1D:..."
--name
の指定が必須ではなくなったようです
指定しない場合は「virtual-container-host」に対して実行します
また今回からか不明なのですが ./vic-machine-linux inspect config
というコマンドが追加されており、これを使うと create 時のオプションを確認することができます
debug
./vic-machine-linux debug \
--target "192.168.100.101/dc" \
--user "vc-user" \
--password "vc-pass" \
--compute-resource "cluster" \
--enable-ssh --rootpw password \
--thumbprint "37:1D:..."
こちらも特になし
--name
がない場合は「virtual-container-host」に対して実行します
update
./vic-machine-linux update firewall \
--target "192.168.100.101/dc" \
--user "vc-user" \
--password "vc-pass" \
--compute-resource "cluster" \
--deny \
--thumbprint "37:1D:..."
こちらも特になし
firewall しか操作できないのとこのコマンドは ESXi に対して実行するコマンドなのでいろいろと変更したほうが良いと思っているんですが変わらないですね、、、、
--deny
は --allow
にすることもできます
upgrade
./vic-machine-linux upgrade \
--target "192.168.100.101/dc" \
--user "vc-user" \
--password "vc-pass" \
--compute-resource "cluster" \
--name virtual-container-host \
--appliance-iso ./appliance.iso \
--bootstrap-iso ./bootstrap.iso \
--thumbprint "37:1D:..."
今回は 1.1.1 -> 1.2.1 でやってみましたが問題なく行えました
ping を投げ続けてみましたが切断っぽい挙動が 2 回ほどありました
64 bytes from 192.168.200.100: icmp_seq=37 ttl=64 time=0.833 ms
64 bytes from 192.168.200.100: icmp_seq=38 ttl=64 time=17.0 ms
64 bytes from 192.168.200.100: icmp_seq=39 ttl=64 time=0.223 ms
64 bytes from 192.168.200.100: icmp_seq=40 ttl=64 time=0.301 ms
64 bytes from 192.168.200.100: icmp_seq=41 ttl=64 time=0.296 ms
64 bytes from 192.168.200.100: icmp_seq=42 ttl=64 time=0.318 ms
64 bytes from 192.168.200.100: icmp_seq=43 ttl=64 time=0.331 ms
64 bytes from 192.168.200.100: icmp_seq=44 ttl=64 time=8.29 ms
64 bytes from 192.168.200.100: icmp_seq=45 ttl=64 time=0.251 ms
今回は検証していませんが 0.8 や 0.9 から 1.2.1 に upgrade できるのかも気になりました
おそらく新規で追加になったコマンドです
これで作成後の VCH に対していろいろと変更を入れられるようになりました
./vic-machine-linux configure \
--target "192.168.100.101/dc" \
--user "vc-user" \
--password "vc-pass" \
--compute-resource "cluster" \
--ops-user administrator@vsphere.local \
--ops-password adminpass \
--thumbprint "37:1D:..."
ops-user と ops-password を変更します
このユーザとパスワードを使って VCH から vCenter に対して API を発行してコンテナ VM を作成します
./vic-machine-linux configure \
--target "192.168.100.101/dc" \
--user "vc-user" \
--password "vc-pass" \
--compute-resource "cluster" \
--volume-store datastore2/directory:label \
--thumbprint "37:1D:..."
volume-store を追加します
ここで指定したvolume-store 上に docker volume で作成したデータが作成されます
./vic-machine-linux configure \
--target "192.168.100.101/dc" \
--user "vc-user" \
--password "vc-pass" \
--compute-resource "cluster" \
--dns-server 8.8.8.8 \
--thumbprint "37:1D:..."
VCH 上に DNS サーバを変更します
デフォルトだと public-network 上にある DHCP から教えてもらえる DNS が設定されています
それ以外にしたい場合は dns-server オプションで変更できます
他にも
- 証明書の更新
- レジストリの設定を変更
- コンテナ専用ネットワークの変更
- VCH から外に出るときのプロキシの設定
- ログレベルの変更
- メモリとCPU のアロケートサイズの変更
などができたりします
詳しくは configure --help
してみると良いと思います
その他
docker コマンド検証
一番の特徴は exec が使えるようになっている点です
docker -H 192.168.200.100:2375 exec -it 7f4398f4c2d9 /bin/bash
それ以外のコマンドに関してはこれまで通り使えます
docker-compose も対応しています
docker-compose -H 192.168.200.100:2375 up -d
当然ですが、イメージは Docker hub で公開していなければありません (registry の設定を VCH にしていれば別)
ただ、swarm コマンドに現在もサポートされていません
おそらく今後のバージョンでも swarm はサポートされないと思います
最後に
VIC の 1.2.1 を試してみました
基本的なことしか試していないのですべてのエンハンス内容を網羅しているわけではありませんのでご注意を
それでも exec が使えるようになっていたり作成後の VCH に対して変更を加えられている点は嬉しいエンハンスかなと思います
個人的には vic-machine-linux コマンドの方法で VCH の操作ができるようになると嬉しいなと思いました (API)
参考サイト