Then came orchestration. Swarm was a bit slow to get out the door and is still buggy. K8s on the other hand shot past like a lightning bolt. While it evolved quickly, k8s has to be the one piece of software that I dread to work with the most. Setting up a cluster seems nearly impossible without compromising important features. Configuration is overly complex and difficult to discover. None of the (many) tools seem to do what I want.
In the end, I begrudgingly chose Docker Swarm because I was actually able to create a cluster that worked. Mind you, there are still truckloads of bugs that have sat gathering dust for years that I continue to run into. At least with this solution I'm somewhat productive.
May the heavens have mercy on your soul should you attempt any amount of networking in a cluster.