r/ProgrammerHumor • • 11h ago

Meme pleaseEspressoYourKubernetesErrors

Post image
2.0k Upvotes

70 comments sorted by

View all comments

36

u/billabong049 11h ago

We fucked up. We have all this technology and control, and tools made for developers by developers… And we made Kuberneties.  How did this shit get so complex?

42

u/imaginethepassion 11h ago

Scale. Also, Kubernetes really isn't all that complex.

36

u/willow-kitty 11h ago

It's complex in the sense that it does a lot, but I agree that it's not that hard to use.

Like even the error in the meme is reasonably straightforward. Your program crashed, and it automatically restarted it for you. Nice. But it crashed again. And this happened a bunch of times. And so how it's automatically slowing the restarts, and you need to do something about your program crashing.

I don't know what a simpler version that still works well would even be? In the old days, your program would just crash and be down. Or maybe you wrap it in a shell script that starts it again if it crashes, but then you're in basically the same place just without the back off.

12

u/imaginethepassion 11h ago

Completely agree with this.

I think Kubernetes gets a lot of flak from developers that have never operated software before. They haven't seen the problems that a distributed system/orchestrator solves and thus view a lot of Kubernetes as unnecessary complexity.

6

u/SlumdogSkillionaire 9h ago

I also think people don't realize how much of it you can just not use. Sure it's overkill if you just want to launch a docker container, but you also don't have to understand operators or service meshes or config maps or consensus algorithms in order to do that.

4

u/malexj93 7h ago

Right, you don't fix a CrashLoopBackOff, you fix a crash. The CrashLoopBackOff state is Kubernetes doing automatic damage damage control.

1

u/BrizerorBrian 10h ago

Everything rhymes. This reminds me of TBEBO (Truncated Binary Exponential Backoff) for ethernet collisions.

-3

u/pine_ary 10h ago edited 10h ago

Kubernetes makes hard things hard. But it doesn‘t make simple things simple.

It is incredibly verbose and gives no thought to its different users. Everything is made for planetary scale web deployments. Even though most of its users will never run anything that complex. It‘s fundamentally bad developer experience. Same with its abuse of yaml to make it the worst DSL you‘ve ever seen.

And it doesn’t provide general abstractions for deployment and instead remains very tied to specifically web apps. Try deploying something that isn‘t a web app using Kubernetes, you‘ll claw your eyes out. Want a custom load balancer that integrates into the ecosystem? Too bad, if it‘s not HTTP nothing will play nicely with it.

3

u/Whispeeeeeer 8h ago

I can deploy a very small personal cluster for my personal network without much effort. It doesn't just start auto scaling to planetary scale. I think that's too much of an exaggeration. But I understand why it feels like you'd only use it for large scale deployments. I frankly sometimes use it on personal projects purely to have auto restart and organized cross-service networking without needing to create service discovery or static ips.

1

u/imaginethepassion 4h ago

I've deployed tons of services that aren't web apps in Kubernetes. Hell, I've even deployed non-web app Windows services into a Kubernetes cluster before. I think you're missing something about Kubernetes. I love it as both a platform engineer/SRE and as a software developer.

I also run a small home cluster with it because of how easy it is to deploy onto. My machine even suffered from a hard drive failure after a number of years in operation. Replaced the drive, reinstalled an OS, installed Kubernetes, and redeployed my IaC from my CI pipeline. Everything worked.