Hacker News new | ask | show | jobs
by rektide 1957 days ago
A whole lot of anti- Kubernetes "you most likely don't need them and the increase in complexity makes it a pain to maintain" and "Kubernetes is exceedingly complex" in this thread & somewhat in this article.

I agree that you probably don't need Kubernetes, and perhaps yeah it could be considered complex.

But I think it's the right fit for most developers/doers & over time most operators too. Kubernetes is not Kubernetes. Kubernetes is some base machinery, yes, but it's also a pattern, for writing controllers/operators that take Kubernetes Objects and turn them into things. Take a Postgres object and let postgres-operator turn it into a running, healing, backing-up replicated postgres cluster. Take a SQS object and let ACK turn it into a real SQS. Take a PersistentVolume and with Rook turn it into a Ceph store.

Kubernetes & cloud native in general proposes that you should have working models for the state of your world. In addition to the out-of-the-box machinery you get for running containers (deployment-sets), exposing them (services), &c, you get this pattern. You get other folks building operators/controllers that implement this pattern[1]. You get a consistent, powerful, extensible way of building.

Nothing else comes close. There's nothing remotely as interesting in the field right now. The Cult of Easy is loud & bitterly angry about Kubernetes, hates it's "complexity", but what is actually complex is having a dozen different operational environments for different tools & systems. What is actually complex is operating systems yourself, rather than having operators to maintain systems. Kubernetes has some initial costs, it can feel daunting, but it is radically simpler in the long run because _it has a paradigm,_ an all inclusive paradigm that all systems can fit into, and the autonomic behaviors this paradigm supports radically transfer operational complexity from human to computer, across that broad/all-inclusive range of systems.

There's a lot of easier this/harder that. No one tries to pitch Nomad or anything else as better, as deeper, as being more consistent, having a stronger core. Every article you hear on an alternative to Kubernetes is 98% "this was easier". I think those people, largely, miss the long game, the long view. A system that can adapt, that operationally can serve bigger & bigger scopes, ought to pay dividends to you as years go by. Kubernetes may take you longer to get going. But it is time enormously well spent, that will increase your capability & mastery of the world, & bring you together with others building radically great systems whether at home[2][3] or afar. It will be not just a way of running infrastructure, but help you re-think how you develop, and how to expose your own infrastructure & ideas more consistently, more clearly, in the new pattern language of autonomic machines that we have only just begun to build together.

I encourage the bold explorers out there, learn Kubernetes, run Kubernetes. And to those of you pitching other things, please, I want you to talk up your big game better, tell me late-game scenarios, tell me how your system & I are going to grow together, advance each other.

[1] https://kubernetes.io/docs/concepts/architecture/controller/...

[2] https://github.com/onedr0p/home-cluster

[3] https://github.com/k8s-at-home/awesome-home-kubernetes

3 comments

Yeah if there were a one-click install _complete_ local distribution of Kubernetes with a GUI, and that just read and migrated all your docker-compose.yaml files I think it would see much less complaints and teeth-gnashing from new folks. The existing tools like minikube, kind, microk8s, are still too clunky and don't include everything you'd want for a good local setup (login/authentication, ingress, registry, easy mounting local host volumes, a good operations workflow with gitops primitives, etc.). Docker Desktop comes close with a one click turn on a kubernetes cluster, but the handwriting is on the wall for the end of docker & kubernetes tight integration. All of the pieces are out there to make a buttery smooth and slick local Kubernetes stack but unfortunately you have to seek them out and kludge it all together yourself.

But if you do feel ambitious, k8s + flux gitops toolkit + tekton CI/CD + knative serving & eventing + skaffold is one heck of a productive and amazing stack for development (and for bonus points switch your code to a bazel monorepo and rules_k8s for another awesome experience).

I agree pretty roundly here.

Some what-color-do-we-paint-the-bikeshed comments on your particular tools:

* flux seems to be doing great. the ondr0p home-cloud repo i linked is built around it.

* tekton looked very promising when i was evaluating event-driven-architecture systems ~18 months ago, but since then, they've re-branded as a CI/CD tool. it's just branding, it's still generally useful, but i very much worry about drift, & using a product against-the-grain from how the community around it uses it. i think there is a really epically sad story here, that this is a huge mistake for Tekton, which is much more promising/useful than "CI/CD" alone allows. talked about this some two weeks ago[1].

* knative was on my todo list. it's resource requirements are fairly daunting. i'm trying to pack a lot of work on to my 3GB k3s VPS and knative seems right out. it's weird to me that requirements are so high. serving seems a bit on the complex side but useful abstractions, they make sense. eventing is very high in my interests, and i would prefer having an abstraction layer over my provider, give myself freedom, but again the cost seems very high.

* need to try some skaffold. i don't know where it would fit in my world yet, kind of forget it some.

* k8s, tekton, knative, skaffold are all somewhat from the googleverse. honestly i'm hoping we see some competing takes for some of these ideas, see different ideas & strategies & implementations. kubernetes is such great material for innovation, for better ways of composing systems. let's try some stuff out! please kindly think of those who don't have a lot of memory too.

[1] https://news.ycombinator.com/item?id=25993294

My problem is there is no way to get started with those things without knowing all of them.
Author here. I explicitly mentioned about the Operator Pattern in my post and why K8s probably makes more sense in this context :)
I agree with a lot of the points you make.

Have you looked into nomad, consul and vault; along with everything they provide?

I really like all their offerings! Hashicorp writes incredibly easy to run & operate software. They have a wonderful software-design sense, identifying core problems & driving a well-defined approach forward. Rarely are companies so technically savvy in their offerings. It's clear from having run into all manners of Hashicorp people at conferences (back when that was a thing) that they have really great engineers too, talented & knowledgeable & engaged!

My Nomad familiarity is definitely a bit on the low side, & that's something I wouldn't mind changing. Consul & Vault I used to be able to operate & understood ok, but my knowledge has faded some.