|
|
|
|
|
by ralph87
2044 days ago
|
|
Ever tried to host multiple apps on a single machine? Oh look, a custom Nginx config only one person understands. Oh look, some hacked up letsencrypt config only one person understands, etc etc. > K8S on a single node does nothing for you network-wise - Container IP auto-assignment - Container security policy - Container DNS management - Ingress management ("custom Nginx config") - "Environment that feels like a large network and doesn't change if moved to a large network" What part of this is difficult to understand? |
|
> Oh look, a custom Nginx config only one person understands.
Just because you put it in a container doesn't mean it's no longer custom or that everyone suddenly understands it.
> Oh look, some hacked up letsencrypt config only one person understands, etc etc.
Plenty of people put their nasty hacks in containers and pod definitions and still nobody (or just 1 person) understands it. Packaging changes none of this; a dirty pod, container, VM image it's all still dirty.
> K8S on a single node does nothing for you network-wise > - Container IP auto-assignment
So does docker, or even an uncontainerized bridge interface
> - Container security policy
So does Docker, or a plain cgroup
> - Container DNS management Yep, that it does. But when you only have 1 node, what is the point?
> - Ingress management ("custom Nginx config")
Great, but besides moving complexity from your app to the infra it doesn't help at all on a single node. It actually gets worse: node goes down, everything goes down (app, fallback, load balancing, routing, security)
> - "Environment that feels like a large network and doesn't change if moved to a large network"
So unless you are doing some local development that you later on push to dev/prod, we're talking about feelings. Not much objective to say about that except that it exists.
> What part of this is difficult to understand?
All of it. Shoving complexity and responsibility around doesn't reduce it, and having people make bad software isn't less bad because of the runtime it runs on.
Kubernetes in prod is great, and the envs that go with it (like development and staging), sure. But when you run something in prod, and you need availability, scalability and a host of standardised facilities, then a single node or some magic 'it works by default' config is very far removed from real-world production.