docker
swarm

Docker Swarm V17.10でnodeのJOINがエラー(ジョイン後にSTATUS=DOWN)になるときの対策

はじめに

CentOS7でmaster managerをdocker swarm initで作成した後、nodeをdocker swarm joinすると、STATUS=DOWNになりました。V12で作成したswarm環境をyum updateして上げてきたので、そのどこかで入った問題だと思います。

症状

  • workerは問題なくjoinできるのにmanagerだと、joinコマンドがフリーズする。
  • master側で docker node ls するとSTATUS=DOWN

環境

  • オンプレでプロキシー下
  • CentOS7 on VMWare (masterも追加nodeも)
  • Docker V17.10 (V17.09でも同じ現象が発生しました。)

解決策

下リンクのイシューで助けられました。
moby/moby のissue #35046

http-proxy.conf に NO_PROXY で全ノードのIPアドレスを列挙する

ことで復旧。
続けて systemctl daemon-reload && systemctl restart docker.serviceしたらmanagerを docker swarm join できました。
なお、http-proxy.conf の場所は systemctl status docker で表示された/etc/systemd/system/docker.service.d の直下。
反映されたか確認するときは systemctl show docker で。