Live data from Hacker News

Why is Kubernetes getting so popular?

stackoverflow.blog

131–140 of 681 posts

Re: Why is Kubernetes getting so popular?

#131

It's not because of the networking stack. I've yet to meet anyone who can easily explain how the CNI, services, ingresses and pod network spaces all work together. Everything is so interlinked and complicated that you need to understand vast swathes of kubernetes before you can attach any sort of complexity to the networking side. I contrast that to it's scheduling and resourcing components which are relatively easy…

Answer has to include implementation details. No credit if your answer does not reference iptables.

Re: Why is Kubernetes getting so popular?

#132

I get the feeling K8 is the modern PHP. Software that's easy to pick up and use without complete understanding and get something usable. Even if its not efficient and results in lots of technical debt. And like PHP, it will be criticised with the power of hind sight but will continue to be used and power vast swaths of the internet.

But languages are easy, there is the whole field of PL theory to draw from. If you're randomly throwing things together like Lerdorf was, there's a missed opportunity.

But what is the universally regarded theory that k8s contradicts? I don't think there is one.

Re: Why is Kubernetes getting so popular?

#134

Earlier quoted context omitted.

Check out nix for actual development environments. Huge fan of that as well. I can buy a new laptop and be back to 100% in a few minutes. Though the amount of time I spent learning how to get there far exceeds any time savings. Ever.

I've been testing out nix and I haven't found out how to install packages in a declarative way yet. Using "nix-env -iA ` seems really imperative. How are you doing that? Do you use something like home-manager, or do you just define a default.nix and then nix-shell it whenever you need something?

I've avoided home manager for now. I'll get into it soon.

Instead, every project I work on has a shell.nix in the root (and if it's not a project I control, I have a shell.nix mapping elsewhere).

Check it out, run nix-shell. Profit.

Once you're really ready for the big leagues, run it with --pure.

Re: Why is Kubernetes getting so popular?

#135
post #88

Earlier quoted context omitted.

With "Swarm", do you mean Docker Swarm? Why has it "fizzled"? The way I learned it in Bret Fisher's Udemy course, Swarm is very much relevant, and will be supported indefinitely. It seems to be a much simpler version of Kubernetes. It has both composition in YAML files (i.e. all your containers together) and the distribution over nodes. What else do you need before you hit corporation-scale requirements?

I use Swarm in production and am learning k8s as fast as possible because of how bad Swarm is: 1. Swarm is dead in the water. No big releases/development afaik recently 2. Swarm for me has been a disaster because after a couple of days some of my nodes slowly start failing (although they’re perfectly normal) and I have to manually remove each node from the swarm, join them, and start everything up again. I think this…

To add another side, I use Swarm in production and continue to do so because of how good it is.

I've had clusters running for years without issue. I've even used it for packaging B2B software, where customers use it both in cloud and on-prem - no issues whatsoever.

I've looked at k8s a few times, but it's vastly more complex than Swarm (which is basically Docker Compose with cluster support), and would add nothing for my use case.

I'm sure a lot of people need the functionality that k8s brings, but I'm also sure that many would be better suited to Swarm.

Re: Why is Kubernetes getting so popular?

#136

Earlier quoted context omitted.

Yes, people ought to do a side by side comparison of a new user learning to K8S v AWS v GCP before claiming Kubernetes adds more complexity than it returns in benefits. Remember the first time you saw the AWS console? And the last time?

Why do a comparison? K8S runs on AWS and GCP. They have managed services for setting up one. If you know K8S as a developer, then you simply consume the cloud K8S cluster.

I think the point is that there are people that claim that k8s adds a ton of complexity to your environment. But if you compare k8s alone with managing your infrastructure using (non-k8s) AWS or GCP primitives, you'll find that the complexity is similar.

Re: Why is Kubernetes getting so popular?

#137
Devops/arch here, I think Kubernetes solves deployment in a standardized way and we get fresh clean state with every app deploy. Plus it restarts applications/pods that crashes.

That said I think Kubernetes may be at its Productivity journey on the tech Hype cycle. Networking in Kubernetes is complicated. This complication and abstraction has a point if you are a company at Google scale. Most shops are not Google scale and do not need that level of scalability. The network abstraction has its price in complexity when doing diagnostics.

You could solve networking differently than in Kubernetes with IPv6. There is not a need for complicated IPv4 nat schemes. You could use native ipv6 addresses that are reachable directly from the internet. Since you have so many ipv6 addresses you do not need Routers/Nats.

Anyhow in a few years time some might be using something simpler like an open source like Heroku. If you could bin pack the services / intercommunication on the same nodes there would be speed gains from not having todo network hops going straight to local memory. Or something like a standardized server less open source function runner.

https://en.wikipedia.org/wiki/KISS_principle https://en.wikipedia.org/wiki/Hype_cycle

Re: Why is Kubernetes getting so popular?

#138
post #113

Earlier quoted context omitted.

So terraform is a higher-order, meta-Kubernetes. It's very rarely used, but who provisions the cluster itself? That's terraform. So terraform creates the cluster, DNS and VPC. Then k8s runs pretty much everything.

How are you deploying the workloads into the cluster? Manual kubectl or Helm, GitOps with something like Flux, something else?

Alas, still rely on bash for that. Practically a one liner.

Mainly just kustomize piped into kube apply.

But, but, but. Having to a create a one-off database migration script imperatively.

Re: Why is Kubernetes getting so popular?

#140
post #30

It's not because of the networking stack. I've yet to meet anyone who can easily explain how the CNI, services, ingresses and pod network spaces all work together. Everything is so interlinked and complicated that you need to understand vast swathes of kubernetes before you can attach any sort of complexity to the networking side. I contrast that to it's scheduling and resourcing components which are relatively easy…

For the nginx ingress case: An ingress object creates an nginx/nginx.conf. That nginx server has an IP address which has a round robin IPVS rule. When it gets the request it proxy's to a service ip which then round robins to the 10.0.0.0/8 container IP. Ingress -> service -> pod It is all very confusing but once you look behind the curtain it's straight forward if you know Linux networking and web servers. The cloud…

I don't think this is accurate which plays into the parents point, I guess.

Looking at the docs, ingress-nginx configures an upstream using endpoints, which are essentially Pod IPs, with skips kubernetes service based round-robin networking altogether.

Assuming you use an ingress that does configure services instead, and assuming you're using a service proxy that uses ipvs (i.e. kube-proxy in default settings) then your explanation would have been correct.

For the most part, kubernetes networking is as hard as networking with loads of automation. Often, depth in both those skills are pretty exclusive, but if you're using the popular and/or supported CNI not doing things like changing in-flight, your average dev just needs to learn basic k8s debugging such as kubectl get endpoints to check whether his service selectors are setup correctly, and curl them to check whether the pods are actually listening on those ports.

Post reply on HN