Pros and Cons of running all Docker Swarm nodes as Managers? #10
I'm thinking of running a 3-node swarm for a small app, and depending on what I read, various docs suggest splitting out managers to dedicated nodes, or others that suggest it's OK to make them all managers. What are the pro's and con's of each option?
The text was updated successfully, but these errors were encountered:
TL;DR pros and cons of all managers as workers in Swarm:
Full Answers to Your Questions
There are no hard requirements for using worker-only nodes. If you're deploying a solution where you know what resources you need, and the number of services/tasks are usually the same, there's nothing wrong with a Swarm of just three managers doing all the work, as long as you have considered these three areas that are affected:
More managers = longer for managers to elect a new leader when one goes down. While there is no leader, the Swarm is in a read-only state and new replica tasks cannot be launched and service updates won't happen. Any container that fails won't auto-recover because the Swarm managers can't do work. You're running apps, ingress routing mesh, etc. all still function. A large part of the performance of manager health and leader election is tied to network latency between all manager nodes, as much as it is the number of managers. This is why Docker generally advises that a single Swarms managers all be in the same region so they get a low-latency round trip between each other. There is no hardset rule here. If you test 200ms latency between managers and test failures and are fine with the results and speed of leader election, cool.