Search code examples
dockerdocker-swarmdocker-swarm-modeswarm

Adding nodes to docker swarm


We have a swarm running docker 1.13 to which I need to add 3 more nodes running docker 17.04.

  1. Is this possible or will it cause problems?
  2. Will it be possible to update the old nodes without bringing the entire swarm down?

Thanks


Solution

  • I ran into this one myself yesterday and the advice from the Docker developers is that you can mix versions of docker on the swarm managers temporarily, but you cannot promote or demote nodes that don't match the version on all the other swarm managers. They also recommended upgrading all managers before upgrading workers.

    According to that advice, you should upgrade the old nodes first, one at a time to avoid avoid bringing down the cluster. If containers are deployed to those managers, you'll want to configure the node to drain with docker node update --availability drain $node_name first. After the upgrade, you can bring is back into service with docker node update --availability active $node_name.

    When trying to promote a newer node into an older swarm, what I saw was some very disruptive behavior that wasn't obvious until looking at the debugging logs. The comments on this issue go into more details on Docker's advice and problems I saw.