this post was submitted on 05 Sep 2023
635 points (97.7% liked)

Programmer Humor

19551 readers
997 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 24 points 1 year ago (2 children)

Ok so just learn Kubernetes. And then realize that for it to be useful in a production environment, it needs like 10 other third party things, which you’ll also have to learn, and you’re done!

[–] [email protected] 14 points 1 year ago (2 children)

Rule of thumb for kubernetes, if you are learning it "for fun" or on your own, you are not gonna need it :)

[–] [email protected] 4 points 1 year ago

Thanks for saying that.....I thought I was the only one who thought like that.

[–] [email protected] 2 points 1 year ago (2 children)

I just want to understand in detail what it is and how it works. Advice?

[–] [email protected] 5 points 1 year ago

I've found it best explained in some stackoverflow answer mentioning the pet vs cattle analogy. In short, if you know how many servers you have from the tip of your tongue, and what they do more or less, then they are akin to pets: you treat them well and keep an eye on each of them.
Kubernetes is meant for when you have so many of them, that come and go without you even noticing or caring, bearing a number for the sake of production/cost control, this is cattle. Needless to say that this is not your typical app/company running at such a scale, and that there is a 24/7 team of "ranchers" keeping an eye on the herd.

[–] [email protected] 3 points 1 year ago (1 children)
[–] [email protected] 1 points 1 year ago (1 children)

Thanks. So TL;DR it allows you to set up a little cloud computing service on your own physical machines, minus load balancing which you have to add on?

[–] [email protected] 1 points 1 year ago

It can be used to scale cloud computing services as much as you want. It's a scalable container runtime at its core. It provides a means for scaling an overlay network with service discovery and uniform ingress configuration.

[–] [email protected] 8 points 1 year ago (1 children)

10 is a bit exaggerating. What do you really need?

ExternalDNS is nice so you don't have to config your DNS manually. You might need to install your own Ingress controller. If you want to automatically add and renew certificates cert-manager is great. Security is important! Speaking of, you should add some kind of secret management (something like sealed-secrets, vault or Secrets Store CSI Driver).

A really important thing is monitoring so you know your pods and the cluster itself is healthy. Prometheus is still king in that regard in my opinion. PromQL isn't that hard. Of course some kind of alerting like AlertManager is a must for prod environments. Be aware that the front ends of those tools are not behind a login so something like oauth2-proxy and dex is vital! You might want to have some visualisation too so Grafana is a nice addition. If you add Loki too you got your OPs covered.

Keeping track of all of your stuff is the hard part so some GitOps is highly recommended. ArgoCD or FluxCD are popular for a reason!

I think that should cover the basic setup so you may scale your CRUD app without worries!

[–] [email protected] 11 points 1 year ago

I think you covered at least 10 things.