xorcist 3 days ago

Every item on that list is "boring" tech. Approximately everyone have used load balancers, test environments and monitoring since the 90s just fine. What is it that you think make Kubernetes especially suited for this compared to every other solution during the past three decades?

There are good reasons to use Kubernetes, mainly if you are using public clouds and want to avoid lock-in. I may be partial, since managing it pays my bills. But it is complex, mostly unnecessarily so, and no one should be able to say with a straight face that it achieves better uptime or requires less personnel than any alternative. That's just sales talk, and should be a big warning sign.

4
YZF 3 days ago

It's the way things work together. If you want to add a new service you just annotate that service and DNS gets updated, your ingress gets the route added, cert-manager gets you the certs from let's encrypt. You want Prometheus to monitor your pod you just add the right annotation. When your server goes down k8s will move your pod around. k8s storage will take care of having the storage follow your pod. Your entire configuration is highly available and replicated in etcd.

It's just very different than your legacy "standard" technology.

gr3ml1n 3 days ago

None of this is difficult to do or automate, and we've done it for years. Kubernetes simply makes it more complex by adding additional abstractions in the pursuit of pretending hardware doesn't exist.

There are, maybe, a dozen companies in the world with a large enough physical footprint where Kubernetes might make sense. Everyone else is either engaged in resume-driven development, or has gone down some profoundly wrong path with their application architecture to where it is somehow the lesser evil.

sampullman 3 days ago

I used to feel the same way, but have come around. I think it's great for small companies for a few reasons. I can spin up effectively identical dev/ci/stg/prod clusters for a new project in an hour for a medium sized project, with CD in addition to everything GP mentioned.

I basically don't have to think about ops anymore until something exotic comes up, it's nice. I agree that it feels clunky, and it was annoying to learn, but once you have something working it's a huge time saver. The ability to scale without drastically changing the system is a bonus.

gr3ml1n 3 days ago

> I can spin up effectively identical dev/ci/stg/prod clusters for a new project in an hour for a medium sized project, with CD in addition to everything GP mentioned.

I can do the same thing with `make local` invoking a few bash commands. If the complexity increases beyond that, a mistake has been made.

xorcist 3 days ago

You could say the same thing about Ansible or Vagrant or Nomad or Salt or anything else.

I can say with complete confidence however, that if you are running Kubernetes and not thinking about ops, you are simply not operating it yourself. You are paying someone else to think about it for you. Which is fine, but says nothing about the technology.

sampullman 2 days ago

You always have to think about ops, regardless of tooling. I agree that you can have a very nice, reproducible setup with any of those tools though. Personally, I haven't found those alternatives to be significantly easier to use (though I don't have experience with Salt).

For me personally, self hosted k3s on Hetzner with FluxCD is the least painful option I've found.

papichulo2023 3 days ago

Managed k8s is great if you already in the cloud, selfhosting it as a small company is waste of money.

sampullman 2 days ago

I've found self hosted k3s to be about the same effort as EKS for my workloads, and maybe 20-30% of the cost for similar capability.

lmm 3 days ago

> Every item on that list is "boring" tech. Approximately everyone have used load balancers, test environments and monitoring since the 90s just fine. What is it that you think make Kubernetes especially suited for this compared to every other solution during the past three decades?

You could make the same argument against using cloud at all, or against using CI. The point of Kubernetes isn't to make those things possible, it's to make them easy and consistent.

eadmund 3 days ago

> The point of Kubernetes isn't to make those things possible, it's to make them easy and consistent.

Kubernetes definitely makes things consistent, but I do not think that it makes them easy.

There’s certainly a lot to learn from Kubernetes, but I strongly believe that a more tasteful successor is possible, and I hope that it is inevitable.

AtlasBarfed 3 days ago

I haven't worked in k8s, but really what is being argued is that it is a cross cloud standardization API, largely because the buzzword became big enough that the cloud providers conformed to it rather than keep their API moat.

However all clouds will want API moats.

It is also true that k8s appears too complex for the low end, and there is a strong lack of a cross cloud standardization (maybe docker but that is too low) for that use case.

K8s is bad at databases. So k8s is incomplete as well. It also seems to lack good UIs, but that impression/claim may be only lack of exposure.

What is blindingly true to me is that the building blocks at a cli level for running and manipulating processes/programs/servers in a data center, what was once kind of called a "dc os" is really lacking.

Remote command exec needs ugly ssh wrapping assuming the network boundaries are free enough (k8s requires an open network between all servers iirc), and of course ssh is under attack by teleport and other enterprise fiefdom builders.

Docker was a great start. Parallel ssh is a crude tool.

I've tried multiple times to make a swarm admin tool that was cross cloud and cross framework and cross command and stdin srrout stderr transport agnostic. It's hard.

drw85 3 days ago

But none of those things are easy. All cloud environments are fairly complex and kubernetes is not something that you just do in an afternoon. You need to learn about how it works, which takes about the same time as using 'simpler' means to do things directly.

Sure, it means that two people that already understand k8s can easily exchange or handover a project, which might be harder to understand if done with other means. But that's about the only bonus it brings in most situations.

lmm 1 day ago

> All cloud environments are fairly complex and kubernetes is not something that you just do in an afternoon. You need to learn about how it works, which takes about the same time as using 'simpler' means to do things directly.

The first time you do it, sure, like any other tool. But once you're comfortable with it and have a working setup, you can bash out "one more service deployment" in a few minutes. That's the key capability.

Gee101 1 day ago

The other bonus is most opensource software support a Kubernetes deployment. This means I can find software and have it deployed pretty quickly.

threeseed 3 days ago

Kubernetes is boring tech as well.

And the advantage of it is one way to manage resources, scaling, logging, observability, hardware etc.

All of which is stored in Git and so audited, reviewed, versioned, tested etc in exactly the same way.

andreasmetsala 3 days ago

> But it is complex, mostly unnecessarily so

Unnecessary complexity sounds like something that should be fixed. Can you give an example?