Hi folks, I've been on quite the journey figuring out how to get all of this to work together. I've finally wrapped it up and made a blog post guiding you through the process.
I don't normally make self posts, but I felt this could help people who are running into the same things I did. Let me know if you have any questions!
14 thoughts on “The Belly of The Whale: A guide to creating a Docker Swarm with Traefik, GitLab, and more.”
Looks like a great guide! I’ve been interested in learning more about container orchestration and seeing if it could benefit my at-home use case. At the moment I’ve been spinning up a bunch of containers using docker-compose, but I’ll give this a shot once I have some time to dedicate to it.
I recently pushed a bunch of my compose files to GitHub, and it seems they could be pretty easily converted to use with docker swarm. Check them out in the ymlfiles folder [here](https://github.com/CVJoint/docker-compose) if you’re interested!
Now give Portainer.io a look and see how simple it makes things..
Nice job putting this together. One comment, though: having two manager nodes is not recommended (see [this Docker guide](https://docs.docker.com/engine/swarm/admin_guide/) for the reasons why). They recommend an odd number of managers, so if you’re going to have more than one, you should have at least three.
Should note UFW is pretty much useless with docker ports as docker opens them directly using IPTables thus UFW won’t work for the Docker ports. It can still be used for other ports Eg SSH etc.
A work around is to use a Network Firewall on DO and/or Cloudflare.
Awesome writeup ! Thank you man !
That’s a really amazing post! I’m particularly interested in all this ci/cd stuff, as it’s a very broad subject.
My only quibble is that you shouldn’t put traefik directly on a manager node. As more data comes in it can swamp that node and it may fall behind the others. There was a post on this subreddit at one point detailing how to use a small socat service along with traefik to allow that specific worker to have read-only access to docker’s information.
Thanks for this post. I’ll have to translate it to my own environment since I don’t use a cloud provider for my infrastructure.
Unfortunately the container orchestration battle is over.
Kubernetes won. Docker Swarm, Mesos, Nomad and the rest simply cannot catch up.
/u/ShortSynapse A few question…
Why choose consul? Was Redis considered and if so why did consul win out?
Why choose swarmpit. Was Portainer also considered? and if so why did swarm pit win out for you?
wow – It is very good. Thanks Short
Good stuff! Feel free to steal from my [https://github.com/BretFisher/dogvscat](https://github.com/BretFisher/dogvscat), for example you don’t need a .toml file if you put all the settings you need in-line 🙂
I will read now
Thi is awesome stuff! I wish it had been around when I was first setting up a swarm cluster!! I am definitely adding this to my list of resources to get people up and running with swarm. You did an especially awesome job with the initial swarm setup which I’ve found a lot of resources just gloss over.
Loved this article! I referenced it regularly when setting up my own cluster.
Sadly, the article doesn’t seem to want to load up for me anymore. It’s been about 2 weeks now. Getting an error message saying “Unable to connect – Firefox can’t establish a connection to the server at [blog.jakehamilton.dev](https://blog.jakehamilton.dev).”
Is your blog still running? Anyone else experiencing the same issue? Just trying to work out if it’s on my end or something.