▲ | ants_everywhere 15 hours ago | |||||||||||||||||||||||||
People talk about Kubernetes as container orchestration, but I think that's kind of backwards. Kubernetes is a tool for creating computer clusters. Hence the name "Borg" (Kubernetes's grandpa) referring to assimilating heterogeneous hardware into a collective entity. Containers are an implementation detail. Do you need a computer cluster? If so k8s is pretty great. If you don't care about redundancy and can get all the compute you need out of a single machine, then you may not need a cluster. Once you're using containers on a bunch of VMs in different geographical regions, then you effectively have hacked together a virtual cluster. You can get by without k8s. You just have to write a lot of glue code to manage VMs, networking, load balancing, etc on the cloud provider you use. The overhead of that is probably larger than just learning Kubernetes in the long run, but it's reasonable to take on that technical debt if you're just trying to move fast and aren't concerned about the long run. | ||||||||||||||||||||||||||
▲ | stickfigure 14 hours ago | parent | next [-] | |||||||||||||||||||||||||
K8s doesn't help you solve your geographical region problem, because the geographical region problem is not running appserver instances in multiple regions. Almost any PaaS will do that for you out of the box, with way less fuss than k8s. The hard part is distributing your data. Less overhead than writing your own glue code, less overhead than learning Kubernetes, is just use a PaaS like Google App Engine, Amazon Elastic Beanstalk, Digital Ocean App Platform, or Heroku. You have access to the same distributed databases you would with k8s. Cloud Run is PaaS for people that like Docker. If you don't even want to climb that learning curve, try one of the others. | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
▲ | davidgl 9 hours ago | parent | prev | next [-] | |||||||||||||||||||||||||
Yep, it's a cluster OS. If you need to run a cluster, you need to explore and understand the trade offs of k8s versus other approaches. Personally I run a small cluster on k3s, for internal tools, and love it. Yes it's a load of new abstractions to learn, but once learnt if really helps in designing large scalable systems. I manage lots of pet machines and VMs for clients, and it would be soooo much easier on k8. | ||||||||||||||||||||||||||
▲ | politelemon 14 hours ago | parent | prev | next [-] | |||||||||||||||||||||||||
I like to describe it similarly, but as a way of building platforms. | ||||||||||||||||||||||||||
▲ | ashishmax31 12 hours ago | parent | prev | next [-] | |||||||||||||||||||||||||
Exactly. I've come to describe k8s as a distributed operating system for servers. K8s tries to abstract away individual "servers" and gives you an API to interact with all the compute/storage in the cluster. | ||||||||||||||||||||||||||
▲ | otabdeveloper4 8 hours ago | parent | prev | next [-] | |||||||||||||||||||||||||
> Containers are an implementation detail. They really aren't. Personally I have a big Nix derivation to deploy my (heterogeneous) cluster to bare metal. None of the k8s concepts or ideas apply here. | ||||||||||||||||||||||||||
▲ | _flux 13 hours ago | parent | prev | next [-] | |||||||||||||||||||||||||
What is the container orchestration tool of choice beyond docker swarm, then? | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
▲ | Spivak 14 hours ago | parent | prev [-] | |||||||||||||||||||||||||
This has got to be the most out there k8s take I've read in a while. k8s doesn't save you from learning your cloud providers infrastructure, you have to learn k8s in addition to your cloud provider's infrastructure. It's all ALBs, ASGs, Security Groups, EBS Volumbes and IAM policy underneath and k8s, while very clever, isn't so clever as to abstract much of any of it away from you. On EKS you get to enjoy more odd limitations with your nodes than EC2 would give you on its own. You're already building on a cluster, your cloud provider's hypervisor. They'll literally build virtual compute of any size and shape for you on demand out of heterogeneous hardware and the security guarantees are much stronger than colocated containers on k8s nodes. There are quite a few steps between single server and k8s. | ||||||||||||||||||||||||||
|