Hacker News new | ask | show | jobs
by naikrovek 2326 days ago
Does anyone else think this is insane? Kubernetes is there to manage Docker. Docker is there to run software you don't have to install, which is something operating systems should let you do anyway.

Are we going to have a kubernetes manager manager soon?

If Kubernetes management is a problem, fix Kubernetes. Ultimately, Docker should be fixed so that kubernetes is not needed. After that, operating systems should allow you to simply copy a binary over and run it, statically compiled. This type of distribution should be the norm and not the exception.

We keep piling things on top of other things, and no one seems to care. There are no adults overseeing us, and we soiled our diapers a while ago.

9 comments

I'm a beginner Kubernetes user and kubectl is pretty user friendly in my opinion, but people like GUIs a lot, especially when you want to explore a cluster you haven't created yourself (much easier than going through a ton of yaml).

K8s isn't made to fix Docker, but rather the problems caused by having to run quite many micro-services. The system it was inspired by predates Docker by many years (Google's borg).

> K8s isn't made to fix Docker...

OP probably knows. my impression was that they picked docker to represent the group...

Kubernetes is doing much more than managing docker. Please at least read their documentation about the overview what are the main features.
This is just another Kubernetes dashboard.

Not sure why you are seemingly upset or confused by it.

> If Kubernetes management is a problem, fix Kubernetes. Ultimately, Docker should be fixed so that kubernetes is not needed.

totally agree.

someone asked earlier why docker swarm is not used in production or not even talked or written about? what are the issues and is anyone trying to fix them?

i honestly don't know either.

but i feel that, on top of us piling things on top of things, we are now also running a kind of popularity show for tools and to some extend languages. whereas the most popular tool is claimed the best and the one everybody should use.

you'd get crucified if you did otherwise...

> you'd get crucified if you did otherwise...

Nobody is crucifying you if you want to use Docker Swarm. You're just being weird.

People are using Kubernetes because (a) it's easy to customise and tailor, (b) there is a bigger ecosystem of components e.g. ingress, (c) it's not controlled by one vendor like Docker is, (d) Google was quick to offer a cloud version of it.

I love docker swarm. It just doesn’t have the mindshare that k8s has. I wish it had caught on
Personally I love hashicorp nomad. It's brilliant. But c'est la vie..
You seem to think that k8s brings no real value, but please acknowledge that with a managed k8s intance you can effortlessly provision eg. A load balanced mongodb instance as well as elastic search and your web apps ... In my view, instead of the toil required to install these services the traditional way you install k8s on your machine which may not be trivial, but is a platform for installing, running, operating and upgrading other applications in a standardized manner.
Docker is just a dev tool to build images and a runtime to run containers as an alternative to VMs. You still need a tool to manage a cluster of machines. In Nomad (alternative to kubernetes) docker is just one of many ways to run an application, you don't need to use docker to benefit from using Nomad because Nomad is managing clusters for you, not containers.
I'd like to think this is just a gui on top of kubectl because not everyone likes to write every single command over and over when a simple gui can tell you more and let you be more productive at the same time. One of the reasons why I choose rancher instead of bare bones kubernetes.
You're getting down voted but you're 100% right. I'm not running prod on something that needs abstractions on abstractions to be usable.
Tell me about it. It's laziness if you ask me (not that anyone is, and that might be a good thing.)

I would have rather we (as an industry) focused on the developing better languages and frameworks to write our software with. Look at Go for example...

With Go I can create a single binary, produce a DEB or RPM and deploy it using Ansible. If I need to update the software I make a change and push it through the CI/CD stack, resulting in another binary, then another DEB/RPM, then an updated set of servers. I then restart a service... so hard /s

If I need to run micro services, then, you know, just run them? They're all statically linked, singular binaries on disk. If I need to run 500 of them, then I just run them. Each gets whatever port it can find and registers its self with (something like) Consul and just like that, I'm DNS query or an API call away from knowing what services I have, where they are and what port to talk to them on.

I believe we should be focusing on making those processes better, not just adding more complex layers on top of simple solutions.

I know K8s has its benefits, but I believe the same benefits can be realised easily enough without the complexities that K8s brings. Obviously I can't outline them here in a comment on HN, but I am working on providing a POC in the near future.

EDIT: and to those down voting me: that's also lazy. Cognitive laziness. Prove me wrong. Also, I don't care about Internet Points, I care about the truth and finding what's true. I wish you the best of luck though.

> With Go I can create a single binary, produce a DEB or RPM and deploy it using Ansible. If I need to update the software I make a change and push it through the CI/CD stack, resulting in another binary, then another DEB/RPM, then an updated set of servers. I then restart a service... so hard /s

What's so hard about sticking the binary in a container? That way you don't need to worry about installing it or generating debs/rpms, everything it needs is in the image.

> If I need to run micro services, then, you know, just run them? They're all statically linked, singular binaries on disk. If I need to run 500 of them, then I just run them. Each gets whatever port it can find and registers its self with (something like) Consul and just like that, I'm DNS query or an API call away from knowing what services I have, where they are and what port to talk to them on.

So finding a free port and registering itself with Consul would need to be built into every service you run. Just run them in containers and let k8s handle the service discovery.

I see what you are saying, but k8s really makes the pattern you are describing easier. It also standardizes it so every company is not managing home-grown ansible and consul mash-ups.

If you don't need Kubernetes, don't use it.

Kubernetes runs more than tiny, statically linked Go apps. It also doesn't just run apps. It can schedule a wide variety of workloads in a cluster, managed their persistent storage, apply disruption policies, autoscale pods based on load or custom metrics, it can set up load balancing, it can run batch jobs, it can run time-scheduled jobs, it can control network traffic, it handles DNS lookups... the list goes on.

Kubernetes isn't particularly complex, but what complexity it does have can be explained. Any attempt to provide the same functionality will ultimately reinvent Kubernetes.

“Kubernetes is too complex” // proceeds to macgyver half of kubernetes in her own opinionated way...
> proceeds to macgyver half of kubernetes in her own opinionated way...

What, by suggesting we run a process on its own instead of wrapping it something that isn't required?