Live data from Hacker News

Will Kubernetes Collapse Under the Weight of Its Complexity?

influxdata.com

81–90 of 213 posts

Re: Will Kubernetes Collapse Under the Weight of Its Complexity?

#82
post #75
post #48

Earlier quoted context omitted.

How many “kicks” does it take to build a reasonably resilient distributed service? A lot!

CAP theorem says it's impossible.

That isn't what the CAP theorem says at all. It says you need to pick your guarantees.

Additionally, resilience is in the eye of the beholder: might mean AP for a service that needs to be up at the cost of consistency or CP for a service that detects when it can't achieve quorum and fail gratefully.

Re: Will Kubernetes Collapse Under the Weight of Its Complexity?

#83

This blog post starts under a false premise. Kubernetes is not for app developers, it is the substrate on which applications, databases, and other workloads run. Just like you wouldn't want an application developer SSHing into machines in production (assuming you have ops people), you don't want them to use kubernetes, except kubernetes has done one better -- it's abstracted so well (especially with the introduction…

> "the only concession I would make is that they could all be in the same daemon (one executable), but that's actually worse at scale, and harder to debug -- all of these services can produce a lot of logs."

This is already a thing, sort of, called hyperkube: https://github.com/kubernetes/kubernetes/blob/master/cluster...

The caveat is that each daemon has to be started separately still

Re: Will Kubernetes Collapse Under the Weight of Its Complexity?

#84
post #44
post #22

Kubernetes isn't supposed to be simple; it's supposed to be a box of tools that you pull from to represent literally any workload. Once you know what tools to ignore, and build scripts around the ones you need, it's very powerful. This line of thinking is like faulting the golang stdlib for having a lot of useful stuff in it.

Openstack is the same way. However, people want something simple by default . Do not underestimate how poisonous "too complex" can be as a label for a project.

While kubernetes has a lot of concepts, its deployment is a lot more straightforward than OpenStack: https://dague.net/2014/08/26/openstack-as-layers/

Re: Will Kubernetes Collapse Under the Weight of Its Complexity?

#85
The way the author's 'scaffolding' idea should work is that you start but not using kubernetes at all, rather than using a easier version of it. Of course, 'not using it' already exists.. But what doesn't exist is the sweet way to transition.

In particular, you can start off with Azure AppService, AWS Elastic Beanstalk, Google AppEngine. You could also go serverless. All these approaches allow rapid development and deployment with low ops overhead, and they'll actually scale and heal well. Ultimately, the services are doing the k8s type of stuff for you. To state that inversely, running kubernetes is like trying to run your own PaaS. (When put that way, it sounds dubious that so many people are trying to jump into k8s, but I'm not an expert on the $$ economics of devops.)

The next gen evolution of the cloud platforms could really take this migration from PaaS to IaaS to a whole new level than it's at right now.

Re: Will Kubernetes Collapse Under the Weight of Its Complexity?

#86
Firstly, I had the same experience on at kubecon this year, most people I encountered were ops engineers or infra engineers. Maybe the application developers were there but they were less vocal. I can also imagine the subjects being rather specific and deep for your average application developer.

Secondly, aren’t solutions like Helm supposed to take away the need for scaffolding? The problem with scaffolding is staying up to date with the new templates and usually results in the deployments not being updated anymore.

Additionally, I have to say that getting started with K8s was quite easy because we already had experience with Docker. OpenShift was similar and has source2build which is very convenient. So I don’t percieve K8s to be hard to start to use. To use it ‘correctly’ and use all potential, yes that is harder but that holds for any product.

Re: Will Kubernetes Collapse Under the Weight of Its Complexity?

#87
post #25

Is Kubernetes really scalable to a meaningful extent? I feel like if I was going to set up a Kubernetes system, I'd need to plan from the beginning to have multiple clusters anyway, and then the utility of all the scheduling features would be considerably diminished since I'd have to plan to load balance applications across the clusters in some custom way. Yuck. The Kubernetes website (1) currently claims that it sup…

Assuming C5 reserved instances, 5000 of those nodes is: $3 * 24 * 365 * 5000 * .5 (reserved discount) or $68M a year per aws region and 72 * 5000 or 360k cores.

That is pretty scalable.

Re: Will Kubernetes Collapse Under the Weight of Its Complexity?

#88
post #79

This whole image, to me, represents a big problem with software engineering today: https://twitter.com/dankohn1/status/989956137603747840 The industry is full of engineers who are experts in weirdly named "technologies" (which are really just products and libraries) but have no idea how the actual technologies (e.g. TCP/IP, file systems, memory hierarchy etc.) work. I don't know what to think when I meet engineers wh…

That you both have your domains of knowledge? I mean should the electrical engineer worry that you know what a socket is but not how it actually travels over the wire?

Re: Will Kubernetes Collapse Under the Weight of Its Complexity?

#89
post #70

Microsoft Word is also incredibly complex software with decades of development and features, and yet it's just a word processor. Everyone uses a small subset of the actual functionality which is why the entire system can be complex and simple at the same time, depending on your needs. It's exactly the same with Kubernetes. It's just clustering software that ties multiple servers together to give you an PaaS-like work…

But it’s trivial to start typing in Word. Spell checking is easy, as are basic formatting operations. Loading/saving work the way you’d expect. Yes you can write a dissertation with a ton of support from Word to make you life easier, but doing simple things is simple. It sounds like that’s what missing from kubectl. Even for a small start it takes a lot of knowledge. To continue the Word analogy, that sounds like LaT…

Doing simple things in Kubernetes is also simple. It's 1 line to get a pod up and running:

  kubectl run appname --image=yourimage
You can then graduate to a basic YAML config file with a few lines and update with:

  kubectl apply -f yourfile.yaml
At some point, if you want to build a distributed application, you need to know the concepts involved. Looking at it relatively, you needed to learn and deal with many more low-level details before Kubernetes existed, so it's actually quite an improvement to what we had just a few years ago.

Re: Will Kubernetes Collapse Under the Weight of Its Complexity?

#90
post #79

This whole image, to me, represents a big problem with software engineering today: https://twitter.com/dankohn1/status/989956137603747840 The industry is full of engineers who are experts in weirdly named "technologies" (which are really just products and libraries) but have no idea how the actual technologies (e.g. TCP/IP, file systems, memory hierarchy etc.) work. I don't know what to think when I meet engineers wh…

I have a mixed feeling about this.

On one hand I definitely agree that it's good to know lower level technologies and that's something I always ask people in the interviews. I think it's important because I know it.

On the other hand there is no end on how low you can go in the technology stack. Do you need to know how sockets works underneath? Low level network protocols? Do you need to know how hardware works because it probably influenced decisions that were made on the low level of the software stack? I know what socket is, but maybe the only reason I know it is because I'm old and I started coding at the time when raw sockets was the only way to implement network communication. When we have modern libraries and frameworks do we really need low level knowledge?

Post reply on HN