Live data from Hacker News

Why is Kubernetes getting so popular?

stackoverflow.blog

631–640 of 681 posts

Re: Why is Kubernetes getting so popular?

#631
You can tell by the volume of comments how interested in the topic the community is.

I've noticed that there are a lot of replies such as "it is overhyped" and "I can just run a VM".

Kubernetes is not for you as your use case may not match what it does and solves. Kubernetes provides a standard way of running your applications. It is complex but logical. Yaml sucks but it is simple and logical. I prefer to use terraform for kubernetes but it is the same thing, simple and logical. You cannot say the same with puppet, chef, ansible etc. All of those configuration tools are a big mess of different setups and scripts. I can go to any company and understand how their system works quite quickly. It makes searching for answers easy too because it is standard.

When you are running several services and there is an outage, it is a godsend. You can instantly view the status of things, how they are configured and when they changed. That is POWERFUL.

It takes a while to understand how all of the resources fit together but that is the same case with any type of deployment system and/or operating system.

p.s. I am not running that huge of a system, maybe about 5k containers total between dev, staging and prod. Maybe 500k requests a day. Running a couple kubernetes clusters is significantly nicer than running things in ECS.

Re: Why is Kubernetes getting so popular?

#632
post #557
post #529

Earlier quoted context omitted.

Kubernetes is for orchestrating a distributed system. What I was suggesting is to (1) make a monolith and (2) make it fast, light and high-throughput. The goal of your service is to reliably serve users at scale; this is just another way of doing it, just much more esoteric. A "C++ monolith" allows me to potentially bypass a lot of this deployment stuff because it could serve lots (millions) of users from a single bo…

> A "C++ monolith" allows me to potentially bypass a lot of this deployment stuff No it doesn't. Let's assume you write that application as a C++ monolith. Congratulations, you now have source code that could potentially serve 10k users on a toaster... If only you could get it onto that toaster. How are you going to start the databases it needs? How are you going to restart it when it crashes, or worse: When it still…

Handling 1-5 "toasters" instead of 2.500 "microservices" is a piece of f'ing cake. You don't need orchestration. Sure, you have to actually understand the system and low-wage workers are probably not a good fit, but don't make this about engineering because it has nothing to do with it.

Simple SaaSes with 500 users running on 500 servers is now the norm. Sure, then you need to get creative. The commenter referred to serving million users with a single digit amount of boxes. It is easy, it is possible. It requires you to actually know things though.

Re: Why is Kubernetes getting so popular?

#633

For me, and many others: infrastructure as code. Kubernetes is very complex and took a long time to learn properly. And there have been fires among the way. I plan to write extensively on my blog about it. But at the end of the day: having my entire application stack as YAML files, fully reproducible [1] is invaluable. Even cron jobs. Note: I don't use micro services, service meshes, or any fancy stuff. Just a plain…

Do you have a good tutorial for doing Django or a standard 3 tier web app on Kubernetes? We are using kubernetes at my workspace, but it seems way too complicated to consider for something like that. Maybe if I can bridge the gap between architectures it will help.

Re: Why is Kubernetes getting so popular?

#634
post #550

Earlier quoted context omitted.

>Before Docker there were a lot of different solutions for software developers to package up their web applications to run on a server. There are basically two relevant package managers. And say what you will about systemd, service units are easy to write. It's weird to me that the tooling for building .deb packages and hosting them in a private Apt repository is so crusty and esoteric. Structurally these things "sho…

.rpm and .deb are geared more towards distributions needs. Distributions want to avoid multiplying the number of components for maintenance and security reasons. Bundling dependencies with apps is forbidden in most distribution policies for these reasons, and the tooling (debhelpers, rpm macros) actively discourage it. It's great for distributions, but not so great for custom developments where dependencies can eithe…

Right, the bias towards distro needs is why packaging so hard to do internally, I'm just surprised at how little effort has gone into adapting it.

You need some system mediating between people doing deployments and actual root access in both cases. The "docker" command is just as privileged as "apt-get install." I have always been behind some kind of API or web UI even in docker environments.

Re: Why is Kubernetes getting so popular?

#635
post #470
post #388

Earlier quoted context omitted.

Few people actually need high availability. If you do, the recipe is to reduce the number of components, get the most reliable components you can find, and make the single points of failure redundant. Saying you can use Kubernetes to turn whatever stupid crap people tend to deploy with it highly available, is like saying you can make an airliner reliable by installing some sort of super fancy electronic box inside. Y…

What about application upgrades? Are you ok with your application going down for each upgrade? With Kubernetes, it's very simple to configure a deployment so that downtime doesn't happen.

Takes a couple of minutes at most for an average application upgrade / deployment, a lot of places can deal with that. Reddit is less reliable than what I used to manage as a one man team.

Re: Why is Kubernetes getting so popular?

#636
post #65

Earlier quoted context omitted.

I've only ever used cfengine and Ansible, but they are both declarative. Hell, Ansible uses yaml files too. I would be somewhat surprised to find out Puppet and Chef weren't declarative either. Because setting up a system in an imperative fashion is ripe for trouble. You may as well use bash scripts at that point. I've used Ansible for close to 10 years for hobby projects. And setting up my development environment. G…

Ansible is YAML, but it's definitely imperative YAML - each YAML file is a list of steps to execute. It uses YAML kind of like how Lisp uses S-expressions, as a nice data structure for people to write code in, but it's still code. Sure, the steps are things like "if X hasn't been done yet, do it." That means it's idempotent imperative code. It doesn't mean it's declarative. CFEngine is slightly less imperative, but w…

It is common to have significant logic and complexity in the configuration management manifests, but I'd argue that it's possible to move most of that to packaging and have your configuration management just be "package state latest, service state restarted."

Re: Why is Kubernetes getting so popular?

#637

What does the Kubernetes configuration format offer over configuration management systems like Ansible, Salt, Puppet, Chef, etc?

It's not just the configuration format. There is a whole 'Kubernetes runtime' (what they call the 'control loops' aka 'controllers') that runs 24/7 watching the configuration live and making appropriate changes. Unlike Ansible (and I suspect the others) where it's really only more of a 'run once' type of thing... And sometimes if you try running it a second time it won't even succeed.

Ansible is a little special in how imperative it is, a better comparison is Puppet which is intended to do periodic "convergence" runs, although these are more typically hourly or daily than continuous.

Re: Why is Kubernetes getting so popular?

#638
post #430

Earlier quoted context omitted.

The problem is when you need to duplicate that server or restore it due to some error, you have no idea what all the changes you made are. Besides, it's additional hassle and a chance for things to go wrong, the way I have it set up now is that production gets a new deployment whenever something gets pushed to master and I don't have to do anything else.

> The problem is when you need to duplicate that server or restore it due to some error, you have no idea what all the changes you made are. A text file with some setup notes is enough for simple needs, or something like Ansible if its more complex. A lot of web apps aren't much more than some files, a database, and maybe a config file or three (all of which should be versioned and backed up).

I would be a lot more confident trying to back up my old school apps than the monstrosity we have on kubernetes we have at present.

Re: Why is Kubernetes getting so popular?

#639
post #538

Earlier quoted context omitted.

What's wrong with logging in to a server? I love logging in to a server and tinkering with it. Sure, for those who operate fleets of hundreds it's not scalable, but for a few servers that's a pleasure.

I'm logging into a server because i need to, not because its 'pleasure'. I don't hate it but if you need to login to a server regularly because you need to do an apt upgrade, you should have enabled automatic security updates and not login every few days. If your server runs full because of some logfiles or stuff, you should fix the underlying issue and not needing to login to a server. You should trust your machines…

Devs went on holiday before k8's.

Re: Why is Kubernetes getting so popular?

#640
Kubernetes is great, but also very complex and almost an entire new paradigma to learn and understand. I feel like there's a huge void between no Kubernetes and Kubernetes that isn't being filled yet. Dealing with and/or managing Kubernetes is a task on its own, I have the feeling that container orchestration doesn't have to be that complex.

Something like an easy to use (and operate!) multi-tenant docker-compose on steroids with user management/RBAC and a built-in Docker image repository that gets out of your way would be amazing for small teams / startups that don't want to deal with the complexity of Kubernetes.

Post reply on HN