5 ms·
I feel like I'm missing some key insight here. To me, the tl;dr of this post is: Kubernetes removed the need for Docker just to run container images in a k8s cl
by skrebbel 6y ago
I feel like I'm missing some key insight here. To me, the tl;dr of this post is: Kubernetes removed the need for Docker just to run container images in a k8s cluster, ergo, Docker is dead.
But Kubernetes is super complicated. The author seems to assume that everybody wants to run everything in Kubernetes, but if I want to run some backend on some server (or maybe on a few servers), then it feels like extreme overkill.
Now, I'm no guru in this field at all. In fact, one thing I always liked about Docker is it made you feel able to atomically deploy software without having to become an expert at anything first. But what's the current "don't have to be an expert" way to ship software if Docker is, supposedly, dead? Do we all have to learn Kubernetes?
I've never used Swarm but I've been told that one thing it had going for this is that it allowed you to do smallish setups pretty easily. If that's true, then I'm sad it lost the popularity war.
- sz4kerto 6y agoSwarm was great. It takes literally 30 seconds to put together a cluster with a few nodes. (1 command per host.) The problem was that Docker Inc. tried to push people towards Docker EE (that had all kinds of extra functionality above pure Swarm), but that was super buggy.
- goatinaboat 6y agoBut Kubernetes is super complicated. It can be, but running minikube or k3s on your laptop is trivial, and what you do with them transfers very easily to real Kubernetes.
- skrebbel 6y agoWill that allow me to ship software to servers (not enormous clusters, I mean like a couple of VMs somewhere) without having to first become a Kubernetes expert? I mean, that was one of the key Docker promises, and they delivered to quite an extent.
- github_drop_ice 6y agoYou want helm or one of the many, many tools built on top of kubernetes to ease the deployment of applications. All of the same complexity of deploying services was there with docker, you were just insulated and hidden from it by some of its opinions. Whether you want to or not, if you want to manage costs and performance of your app you're going to need to learn (or pay people who have learned) about how to deploy and manage apps in production at scale.
- WJW 6y agoFrom my experience kubernetes is quite complicated to manage (ie for the "infra team"), but not very complicated to use as a developer. You tell it which container you want it to run and how many copies and off it goes. If you have an existing cluster somewhere (say a managed cluster from AWS or GCP) that you want to run your webapp on, just copy/paste a YAML from any of the hundreds of guides on the internet and off you go. The k8s docs themselves are also pretty thorough. Your app will run with automatic failover and rolling deploys and whatnot right out of the box.
- goatinaboat 6y agoWill that allow me to ship software to servers (not enormous clusters, I mean like a couple of VMs somewhere) without having to first become a Kubernetes expert? Yes absolutely, the YAML will just need to be updated for API keys or whatever. Kubernetes is complicated to build a production grade cluster on bare metal but for getting started as a developer it’s no more complicated than Docker actually
- skrebbel 6y agoThis is super helpful, thanks. I always had the idea that I needed to grok all of Kube to get productive with it (and very much got that feeling last time I explored the docs). But knowing that I can ignore a lot of that if I use some kubernetes cloud service and just put my images up there, that's super nice. Thanks (also to some sibling comments of yours) for clearly drawing up the difference between those two things.
- hmottestad 6y agoI remember trying to set up k3s a few months ago and encountered a hard error that gave zero results when googling. I don't remember the error anymore. Was not impressed though and would not call it trivial to set up.
- nickthemagicman 6y agoI use mini cube and It went pretty smoothly.
- hmottestad 6y agoFrom my experience, it's getting easier to set up Kubernetes with things like OKD (open source OpenShift) or Rancher... but it'll still take you days or weeks (or months in my case). And the organisations that I've heard of in Norway that have actually had success have also had a team of devops people to both set it up and keep it running.
- freedomben 6y agoYeah if you have experience with it you can set up OKD/OpenShift in a few days, but IME no K8s distros are truly "set it and forget it." Everyone needs a "platform" or "kubernetes" team. In a small company it doesn't have to an exclusively K8s team (the can have other responsibilities) but someone will need to watch over and maintain the cluster.
- AtlasBarfed 6y agoWas it security that was the wrench? Anytime I hear people nuh-uhh someone saying "X is complicated", the difference is often someone having to deal with security and someone getting to deploy with more lax considerations.
- joana035 6y ago> But Kubernetes is super complicated I find quite cute that in 2020 people are still echoing this to the extent that now I have to answer questions like "explain what kubernetes is" during job interviews. To me seems that a bigger group of people get jealous about a smaller group getting new tools. Then this "stuff x is complicated" propaganda is passed on through the industry like the plague.
- 0xFACEFEED 6y agok8s is complicated (have you seen the docs on node affinity and taints? come on). i've seen several cases where a group of k8s experts pitched the infra as easy to configure/maintain and 12 months later they're being crushed by the weight of all k8s abstractions. i don't blame you. k8s is great job security ;) for now.
- joana035 6y ago> have you seen the docs on node affinity and taints? Yes, pretty neat and easy way to tag your nodes and tell where your workload will run. What is the deal?
- nikisweeting 6y agoI think you've been using it long enough that you forgot how much of a hurdle learning an extremely high-surface-area piece of tech is. The individual abstractions may be simple once you understand them in hindsight, but making an application developer that normally does not work with cluster management learn 100 new abstractions is not "easy".
- joana035 6y agoEverything looks hard if you lack the fundamental knowledge. Doesn't mean that the tool itself is complicated, and spreading propaganda is plain wrong. Instead, I recommend to read the docs, watch videos and, most important, try it out.
- politelemon 6y agoFor small-ish setups, Swarm is still great. The cost of abstraction, and cognitive load, that k8s brings is greatly played down during discussions, and I feel it's quite a dangerous game to be playing. The overhead with Swarm though, is low, and I like it. Where possible though, I'd also recommend having a look at ECS Fargate. Make it someone else's problem.
- danenania 6y agoI like the Fargate model. It's far lighter and easier to work with than EKS. I haven't tried GKE so I can't speak to that comparison. All I've ever really wanted is: "take this container with this config and auto-scale it for me". Of course it should also be run in a private network, have blue-green deploys, auto-restart containers on failure, have geographic redundancy, etc. etc. but I don't want to have to think about any of that. Fargate gets reasonably close to this ideal.
- pm90 6y agoDocker was always about making it easy for developers to build isolated applications. Kubernetes was about making it easy for cloud providers to support deploying these isolated applications in their systems. A lot of organizations tried to support docker swarm (or their own versions of an "ocean" of containers) but it was just too difficult, the products failed and/or were unreliable and docker didn't provide a toolkit to do this better. When they tried kubernetes, it worked (probably because kubernetes creators had experience from running an actual production system before viz. Borg). So then cloud providers coalesced around the platform. People who learned the concepts found it easy to use and loved it and it fueled the adoption. I still believe that despite all the hate that k8s gets on HN, its popular because it works and its users love it. There is very loud subset of users who makes their displeasure known very well but we have to look at concrete data on usage and the data points to k8s being a very popular platform for USERS.
- jacques_chester 6y ago> probably because kubernetes creators had experience from running an actual production system before viz. Borg I think Red Hat deserve a lot of credit for being early to package and productionise Kubernetes.