docker-machineを使って、DockerSwarmのクラスタを作っていた所、swarm-agent
がクラスタに参加して来なくて小一時間詰まった。
Discoverのバックエンドにはetcdを使っていたので、etcdの中身を見えると、追加したいノードからちゃんとキーがセットされている。
swarm-agent-master
のログを見ていると、以下のログを発見!
time="2015-11-19T16:37:35Z" level=error msg="ID duplicated. E4S7:YAHU:MXDC:VT6C:4H5D:CMV7:PHEG:FU7D:SZNW:HSKY:IRL3:K7JJ shared by 192.168.0.1:2376 and 192.168.0.2:2376"
ぐぐったら、以下のIssueがでてきた。
https://github.com/docker/swarm/issues/380
Dockerは初回起動時にユニークなIDを/etc/docker/key.json
に作るらしい。
今回、docker-engineと使用予定のimageをpullした状態のVMをゴールデンイメージにしてクラスタを組もうとしていたので、IDが重複して、追加ノードがクラスタに参加できなかったみたいだ。
/etc/docker/key.json
を消して、docker-engineを再起動後、クラスタに追加したら問題解決!