Hacker News new | ask | show | jobs
by worldsayshi 779 days ago
I'm a bit down the kubernetes rabbit hole right now so I'm biased. Wouldn't it be better to have these solutions as kubernetes packages so that you could have the best of both worlds - flexibility and plug-and-play-ness?

Honestly I'm probably ending up reinventing the wheel a lot while going with kubernetes (on my personal projects) piecing together a lot of what these tools would give me with minimal configuration. And it feels like a lot of what I'm currently trying to work on in my side project is basically what I would get from these paas solutions but with the benefit of understanding and being able to tweak the various components better.

4 comments

I had the same conclusion after evaluating those open source PaaS tools.

It just doesn't feel right for me. For small scale apps it's enough to spin up one or two VMs and run some containers with docker-compose (or just use Vercel/etc for a few bucks). But if it should scale, there is no alternative to kubernetes in the open source world.

My hypothesis right now is that if you know Kubernetes there's no "good" reason to not choose Kubernetes even if it's "overkill". You get a lot of flexibility this way but it's potentially a huge upfront cost with many options for shooting yourself in the foot. Understanding how to configure it without getting overwhelmed currently takes a lot of experience.

You can run Kubernetes for cheap on a single node and it seems you can configure it so that you only need to care about the configuration when you need flexibility. I think.

I get a similar feeling to how it was to set up a react project before you had create-react-app like tools. There's a lack of plug and play options that works for most use cases.

Then again I might just be sort of rationalising the amount of time I've spent on it on a personal project that doesn't really require it.

Dokku supports k8s as the "scheduler" (the term is weird...).

You can think of it as a much nicer CLI for k8s in that case. But it scales way down to a single machine deployment that is much simpler.

Dokku author here:

The "scheduler" term here _is_ a bit weird, but I couldn't figure a better term when I was abstracting the concept.

And yeah, the idea here is that the underlying scheduling system shouldn't matter too much to the user of Dokku, but rather that you get the same experience regardless of the scheduling system. That means that as a user, `dokku enter` (for entering a running container) should be the same if its on Docker Local, Kubernetes, or Nomad. Similarly, Dokku should abstract what it means to deploy a workload onto a system - for Kubernetes, we use Helm charts, but the user doesn't need to know about how helm charts work or anything like that.

We've traditionally focused on getting that single-server experience to a high quality, but now that the base is more or less complete, we can start looking at other integrations that help our users scale.

unfortunately, many (like me) don't have time for going down k8s rabbit holes, we just want to get back building features.

push heroku, done, get back to other things.

It would be nice if there were a packaging system (or maybe just a github action?) that got you a k8s with ingress to some pods that were just updated on merge to a main branch.
Yeah, I looked a bit now. It seems there are some serious attempts at this.

Like:

- https://www.cloudfoundry.org/technology/korifi/

- https://kubevela.io/

- https://www.crossplane.io/

Not sure if all of them are relevant and on first glance they all seem significantly harder to pick up than something like Heroku.

Found them through this reddit thread: https://www.reddit.com/r/kubernetes/comments/m8r5py/looking_...

Yes, I'm going down the rabbit hole so that I hopefully don't have to muck around so much down there in the future. I would love to find a k8s configuration that allows me to then focus on the application code. Push code to git and trust that my configuration takes care of the rest.
There's Porter, the "Kubernetes powered PaaS that runs in your own cloud".

https://github.com/porter-dev/porter

and Otomi, "self-hosted DevOps PaaS for Kubernetes"

https://github.com/redkubes/otomi-core