Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Aaand that's why k8s seems like a good step in the right direction. It has all - okay, absolutely not all, but a good number of the important ones - of these concepts "built-in".

Sure, the actual pile of Go(o) that drives it can be improved (and it is indeed improving).

That said, the hard truth is that your approach is the correct one, almost all businesses (startups!) overbuild instead of focusing on providing value, identifying the actual niche, etc. (Yes, there's also the demand side of this, as the VC money inflated startups overbuild they want to depend on 3rd parties that can take the load, scale with them, SLAs and whatnot must be advertised.)



> k8s seems like a good step in the right direction

Kubernetes is fantastic! Whenever I see a potentially competing business start using Kubernetes, I am immediately relieved, as I know I don't have to worry about them anymore. They are about to disappear in a pile of unsolvable technical problems, trying to fix issues that can't be traced down in a tech stack of unbelievable complexity and working around limitations imposed by a system designed for businesses with traffic two-three orders of magnitude larger. Also, their COGS will be way higher than mine, which means they will need to price their product higher, unless they are just burning through VC money (in which case they are a flash in the pan).

Good stuff all around.


k8s is almost the polar opposite of this idea for most companies. At minimum, a half dozen daemons spread across multiple hosts for.. what? Making the easy things built-in and everything else much more complex than it needs to be?


And those daemons use constantly 25-30% CPU.https://github.com/k3s-io/k3s/issues/294


I think it depends on the distribution. Microshift for instance seems like a good embodying of the concept that the parent poster was referring to.


I don't agree, Ansible would be a much saner approach for a few dedicated boxes than k8s


(I haven't used it in a few years, when I tried to deploy OpenStack with it, so if this is outdated, please, correct me!)

Ansible is imperative, it can work toward a static state, and that's it. If it runs into a problem it throws up its SSH connection, and cries tons of python errors, and gives up forever. Even with its inventory it's far from declarative.

k8s is a bunch of control loops that try to make progress toward their declared state. Failure is not a problem, it'll retry. It'll constantly check its own state, it has a nice API to report it, and thanks to a lot of reified concepts it's harder to have strange clashes between deployed components. (Whereas integrating multiple playbooks with Ansible is ... not trivial.)


What about deploying prebuilt docker image on dedicated server?


This amazing playbook spins up a ton of dockers:

https://github.com/spantaleev/matrix-docker-ansible-deploy


What about it? It can be easily done with Ansible. I managed a distributed infra with containers orchestrated by Ansible, worked fine.


it would be much less moving/fragile parts in prod. I am not an expert in this topic, and trying to learn about different approaches.


And then you have to deal with the complexities of K8s…


Yes, ... and? Those are much more "standardized" than whatever else any team cooks up. (And k8s along with Go is steadily improving, so I don't see this as "let's use WordPress because its the platform that has the most answers on StackOverflow".)

And even if k8s puts on too many legacy-ness, there are upcoming slimmer manifestations of the core ideas. (Eg. https://github.com/aurae-runtime/aurae )


It doesn’t matter if it adds unneeded complexity as long as it is standardized?

And now you’re suggesting that people use a “simpler” non “standard” implementation?


You need to solve a bunch of SRE/DevOps problem, fearless deploys, rollbacks, canary rollout, blue/green deployment, HA/LB, backups, dev environments, supporting multiple teams, yadda-yadda.

So of course you can implement a minimal complexity solution or you can use something "off the shelf".

k8s is complexity and some of it is definitely unneeded for your situation, but it's also rather general, flexible, well supported, etc.

> you’re suggesting that people use a “simpler” non “standard” implementation?

What I suggested is that if k8s the project/software gets too big to fail, then folks can switch to an alternative. Luckily the k8s concepts and API is open source, so they can be implemented in other projects, and I gave such an example to illustrate that picking k8s is not an Oracle-like vendor lock-in.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: