Earlier quoted context omitted.
I've only played with k8s for like an hour in total, but it's pretty obvious to me that k8s fell very much victim to the second system effect. It's an insanely complex solution to a very niche problem - scaling stateless web app backend nodes written in scripting languages. Stray even a little bit off the garden path and you start feeling pain.
You only played with it an hour and you reached all these conclusions?
Google admits Kubernetes container tech is too complex
81–90 of 449 posts
Re: Google admits Kubernetes container tech is too complex
#82Earlier quoted context omitted.
So we circle back to app servers like Java EE WAR/EAR stuff.
With the exception that Wasm apps are based on a open standard, almost any language can target it, are more lightweight, and they can also run on the browser :)
Re: Google admits Kubernetes container tech is too complex
#8399.9 percent uptime for pods? That's 10 minutes downtime per week. We use simple VMs (on Google Cloud) at work and deploy services to them using Nix, and they have much less downtime than this. Does Kubernetes make it so difficult to do better than 99.9?
It's for the same people that make web apps that only works on 95% of browsers. They just don't care.
Re: Google admits Kubernetes container tech is too complex
#84I can't fight the feeling that this is all circling back to the application server stuff that was popular for a time. And, really, I can't tell when those went so wrong. :(
The circle of tech: 1. Someone has an idea. It's alright. Really good for their use case. Someone else hears about it, likes it, and adapts it to a similar use case. So and so forth until the idea has a large user base 2. Employees of large companies hear about the idea and implement it 3. Marketing gets a hold of the idea, gives it a flashy name, and uses it in promotions 4. A majority of the loudest voices in the i…
Re: Google admits Kubernetes container tech is too complex
#85I can understand the use of kubernetes in very large orgs to manage clusters of hundreds of nodes, but it seems to me the complexity isn’t justified if you only have 1-100 say. There are lots of possibilities between 1 server and 100, and lots of ways to have simple replicable deploys if your needs are simple (probably 95% of businesses). Simple load balancers without auto-scaling work fine! For smaller non-critical…
We have chosen k8s and I would again, because its nice to use. Its not necessarily easier, as you point out, the complexity of managing the cluster is considerable. But if you use a managed cluster like EKS or DO's k8s offering, you don't have to worry too much about the nodes and the unit of worry is the k8s config and then for deployment you can use Docker.
I like Docker, because its nice. Its nice to have the same setup locally as you have remotely.
In my experience the tooling around k8s is nice to manage declaratively, I never liked working with machines directly because even tools like Chef or Ansible feel very flimsy.
The other thing you can do is run on ECS or similar, but there the flexibility is a lot lower. So k8s for me offers the sweet spot of being able to do a lot quickly with a nice declarative interface.
I'd be interested to hear your take on how to best run a small cluster though.
Re: Google admits Kubernetes container tech is too complex
#86I think the single biggest mistake people make with Kubernetes is implementing it too soon. Last company I worked for spent piles of time fighting K8s when a simple well implemented cluster would have done the job. It makes a lot of sense to build portable infrastructure, but you can scale a long ways with much simpler technologies.
- App Engine has a bunch of weird limitations and slow deploy times. Qualitatively, it feels like the spotlight has moved on.
- Running my own compute instances felt like reinventing Kubernetes, especially once you roll your own deploy mechanism and throw load balancing in the mix. I also don't buy that it's easier.
- Cloud run is promising but for database heavy apps it's a non-starter.
- GKE was pretty smooth. It feels like it gets a lot more love than App Engine. The UI was functional with lots of depth. Once I push a docker image, GKE updates the nodes to serve the latest version. Load balancing was a matter of ~3 yaml files at 10 lines a pop.
Re: Google admits Kubernetes container tech is too complex
#87The implementation details and management tools aside, the mental model for what is basically interconnected hardware should never be this complex.
Re: Google admits Kubernetes container tech is too complex
#88I understand their rationale. We manage thousand Kubernetes clusters and end-users can find lots and lots of creative way to shoot themselves in the foot: - I can store anything in a secret? Let's have thousands of cat images. Etcd then stops working because we have over 2GB of funny cats in the key store. - I can run a root Pod? Lets mount the docker socket and start building images with it. Oh and by the way, I nev…
Re: Google admits Kubernetes container tech is too complex
#89I think the single biggest mistake people make with Kubernetes is implementing it too soon. Last company I worked for spent piles of time fighting K8s when a simple well implemented cluster would have done the job. It makes a lot of sense to build portable infrastructure, but you can scale a long ways with much simpler technologies.
I've only played with k8s for like an hour in total, but it's pretty obvious to me that k8s fell very much victim to the second system effect. It's an insanely complex solution to a very niche problem - scaling stateless web app backend nodes written in scripting languages. Stray even a little bit off the garden path and you start feeling pain.
K8s solves a far wider problem space. Need to run a data store? Use a StatefulSet and PersistentVolumes. Need an occasional task? Jobs and CronJobs. Need to know what's happening? Metrics and logs have APIs. Load balancing? Ingress? Firewalls? Security?
If someone knew nothing of operating systems other than a class on MINIX, I suspect running a massive datacenter would be easier with k8s than running a medium system of debian boxes.
Re: Google admits Kubernetes container tech is too complex
#90Kubernetes has to be most complex software I've ever tried to learn. I eventually gave up and decided to stick with simple single machine docker-compose deployments. I figure by the time any of my personal projects actually need to scale beyond 1 machine, I'd probably have enough revenue that I can afford to hire someone else to worry about it.