I’m confused. Isn’t a kubernetes cluster just a way to deploy software onto a couple of dozen ec2 instances?
Sure it has some accidental complexity, but so does having half a dozen different software systems each managing their own deployment pathway onto ec2.
There seems to be some belief that kubernetes has to be some kind of crazy complex system to operate, when really it’s just an api for managing which docker processes get spun up.
I'd assume anybody criticizing kubernetes isn't a huge docker fan either.
I see both used much more as dev ops tools rather than real cluster management.
Particularly questionable in organizations that may not have any in-house tech expertise. Some contractor, who may be the only programmer involved at a given time, comes in and sets everything up the kubernetes/docker way. From now on you'll always need kubernetes-enabled devs to maintain your thing.
Happened to somebody I know. They believed they had a "cluster" with different "servers" but it was a single machine. Then I had to explain why they cannot just FTP into the server, upload plugin folders (like some tutorial asked) and expect it to work. Nor did I have enough time to help out since who knows how these dockers mount folders, what's the latest "best practice" or what the dev who maintains it prefers. There's no way they'll ever need more than one machine. I'm pretty sure the system in question does not even have a good cluster story in the first place, so at best you could scale the database (which usually can do clusters well without 3rd party tools).
I am always baffled by this take. I run k8s because it's by far the easiest way to do what I want (deploy a handful of services to a handful of servers), not because it's cool or massively powerful.
In the past few years, k8s simply got easy to get started with and it feels like no one noticed.
If it was easy to set up a nuclear power plant, would that be a great idea for anyone to set one up and run it?
You will run into problems eventually that you won't be able to solve (especially as you have more complex requirements). If this is just for a pet project you probably won't care. But if there's a lot riding on you being able to fix it quickly, you will not enjoy being in a position where fixing it takes hours to days.
It's like a car. Super easy to operate, until there's a strange sound, and then something falls off. Do you know how to fix it? Do you need to get to work in 30 minutes? Can you just "order an Uber" when it comes to K8s?
I’m not sure what justifies the analogy of kubernetes to either a nuclear power plant or a car you mysteriously have no ability to fix, nor why the existence of an ‘Uber for kubernetes’ seems so outlandish (I mean there are literally api calls I can make to cloud platforms that will summon new kubernetes infrastructure for me to rent, in minutes, which is pretty Uber-like).
It’s not rocket science, it’s just networking, config management and container orchestration.
All these analogies are equally true of just.. running Linux in the first place. Or writing software. Using things that require some knowledge requires some knowledge.
Over-simplifying it does not change the fact that it is literally the most complicated system that exists today to just run a web server. The most complicated system of anything is going to be more difficult than the alternatives.
Sure. If ‘running a web server’ is the extent of your problem then kubernetes is a very wrong turn (in fact, so is ‘spinning up a Linux box’ - nobody needs to be writing an nginx config file to just put some static content on the internet).
I feel like this is just an argument between completely different communities. Like a recreational yachtsman saying ‘I don’t see why anyone should need a nuclear power plant to sail a boat’ to a naval attack submarine captain.
Yes, but the other way around: a naval attack submarine captain (Me) telling a recreational yachtsman (potential K8s users) not to put a nuclear power plant in their sailboat. I think some of us get that it should only be used sparingly as a big investment, but there's so many more using it just because it seems like they should.
Most tools are easier than people make them out to be. The average dev just isn't that great, and the average company overestimates the difficulty of these tools, while burying their devs with mindless drone work so they never get the time to study these things. The average dev isn't one which has studied CS/software dev and/or spends loads of free time still investigating tech off the clock, either.
Sure it has some accidental complexity, but so does having half a dozen different software systems each managing their own deployment pathway onto ec2.
There seems to be some belief that kubernetes has to be some kind of crazy complex system to operate, when really it’s just an api for managing which docker processes get spun up.