Docker Advent Calendar 2015 18日目の予定だった記事です。
もう 21日ですね、当アドカレ関係者各位ごめんなさい
docker-machine 経由で consul を利用した swarm クラスタを
組みたかったのですが、失敗した話です。
overlay networkのパフォーマンスを測定したかった
お気軽に試すなら Get started に VirtualBox での例があったり
DigitalOcean なら パフォーマンス測定結果 もあったのですが
実運用で一番使っている AWS でも検証してみたかったのです。
が、失敗しました。
うまくいかなったスクリプトは こちら1 です・・
(↑クレデンシャル、Subnet、SecurityGroupは要設定)
必要なコンテナは立ち上がりますが、ノードは join してくれず。
ちなみに、これまでの選択肢だった --net=host
と --net=bridge
、
そして Docker なしそれぞれのネットワークパフォーマンスは
アムステルダム大の学生が検証 していたのでご参考までに。
ほとんど差はないよ、って結論ですね。
さて、ここで 記事が終わると悲しいのでもう少し書きます。
docker-machine で t2.nano on AWS を起動する
実はこれ、いまはまだ動きません。
HVM EBS-Backed な、多くの AMI はルートボリュームを
/dev/xvda
でインスタンスを起動しないといけない2 のですが、
docker-machine は現状 /dev/sda1
が ハードコード されており
EC2は起動せず、一見それとわからないエラーを吐いて死にます3。
docker-machineで CoreOS on AWSを起動する
試したことある方いますか?
これも運用で回避しないと動きません。たぶん。
こちらは深追いしていないのですが、CoreOS provisioner が
上書きしている systemd の docker.service が起動しないことが。
なので、以下のように暫定対応することで
docker-machine の管理下に入ります。
$ docker-machine create --driver amazonec2 ec2
$ docker-machine ssh ec2 sudo systemctl start docker
$ docker-machine regenerate-certs ec2
systemd 難しい。