I like Docker, I like microservices, but I feel like I'm just not excited about Kubernetes itself. There seems to be a "bullshit complexity" that people add to it that I really don't think is going to stick. But, I really do like the "GitOps" experience. A merge to a master branch is a deploy. Should I just get over this perception and learn Kubernetes, or could I find joy and professional usefulness out of another tool?
Kubernetes is the right tool for some type of issues. If you want to host low complexity infrastructure like a simple website but still want to use containers go with nomad / docker swarm.
Do NOT use Kubernetes unless you really, really need a lot of flexibility in rapidly scaling up, and occasionally scaling down your services.
If you do need that capability, Kubernetes is invaluable.
If you don't, plain old Docker and Ansible is a much better combination. Kubernetes adds a lot of complexity that doesn't pay for itself if you don't really need that much flexibility.
Do you really mean plain old Docker or do you mean Docker Swarm as well?
I think Docker Swarm is necessary in the absence of Kubernetes to ensure that the correct number of replicas are running on your cluster. It would help with automatically spinning up new replicas when a few nodes go down, changing the number of replicas on the fly, etc.
"It would help with automatically spinning up new replicas when a few nodes go down, changing the number of replicas on the fly, etc."
I'm saying for small deployments even this isn't really needed. If one container dies, have monitoring to alert you and then spin up a new one manually when you get around to it. Obviously, your system needs to have enough redundancy with each kind of container that you can still handle the load after losing one.
It's only if you are changing the number of containers a lot that something like Kubernetes is needed. And I think at that point go straight to Kubernetes, I don't know if there is a scenario where adopting Swarm but not full blown Kubernetes is the right answer, because then you likely have to migrate twice. Once to Swarm, and then to Kubernetes.
Kubernetes has some complexity but with some time investment it becomes clear.
You should learn this. Almost every company moving to the cloud with containers is leveraging it. I'd start with something simple like a GKE cluster on Google Cloud. Deploy a website using nginx and go from there!
Even after kubernetes is gone, the mindset and principles will still be valuable to you. Understanding its not-off-the-shelf architecture can also help you in your career.
None of this will be as valuable as porting an actual production application over and running into all the quirks though.