Hacker News new | ask | show | jobs
by dustym 2211 days ago
I like to say (lovingly) that Kubernetes takes complex things and simplifies them in complex ways.
2 comments

Kubernetes makes impossible things merely hard, but at the expense of also making normal and easy things hard.

The system becomes so complex that most people screw up simple things like redundancy, perimeter security and zero downtime updates.

I've seen all of the above from very bright and capable people.

It just hides the complexity in some yml files instead of in a deploy script or a sysadmin's head.
You say that like it's a bad thing. A declarative model is infinitely better for representing complex systems than scripts and mind space. The challenge is actually being able to get to that point.
Until it breaks.
No, even then it's still better. A broken declarative model is better than a broken script.
An sh script is a series of things that almost any developer who uses Linux can understand: command line statements. We use them all the time. Suppose the complicated declarative model you've made doesn't work one day and the person who originally wrote it is gone? Even if you have someone to debug it who knows the k8s languages: usually you can't just use the yml files alone, you need terraform or something, plus maybe some other services and "sidecar" containers that do other things for you. With a sh script, you just have the script with a bunch of commands that you can understand and look up easily, in a linear order, to figure out the problem. You might not understand every command, but you can run each one until you get to the error, then focus in on that area. With k8s, you need to figure out a huge series of intermixed deps and networks and services just to start, then find the one that is failing (if that is the one failing and it's not just being masked by another failed service that you didn't know about).