Live data from Hacker News

Uncloud - Tool for deploying containerised apps across servers without k8s

uncloud.run

121–130 of 189 posts

Re: Uncloud - Tool for deploying containerised apps across servers without k8s

#121
post #105

Earlier quoted context omitted.

This thread is about using multi-machine clusters, and sqlite cannot be used for multi-machine clusters in k3s. etcd is the default when starting k3s in cluster mode [1]. [1] https://docs.k3s.io/datastore

No, this thread is about multiple containers across machines. What you describe is multi-master for the server . You can run multple agents across serveral nodes therefore clustering the container workload across multiple container hosting servers. Multi-master is something different.

The very first paragraph of the first comment you replied to is about multi-master HA. The second sentence in that comment is about “every machine is equal”. k3s with sqlite is awesome, but it cannot do that.

Re: Uncloud - Tool for deploying containerised apps across servers without k8s

#122

If not K8S, why not Nomad ( https://github.com/hashicorp/nomad )?

Their license does not allow you to modify it and then offer it as a service to others: https://github.com/hashicorp/nomad/blob/main/LICENSE

You can't really do anything with it except work for Hashicorp for free, or create a fork that nobody is allowed to use unless they self-host it.

Re: Uncloud - Tool for deploying containerised apps across servers without k8s

#124

Earlier quoted context omitted.

I took some inspiration from Kamal, e.g. the imperative model but kamal is more a deployment tool. In addition to deployments, uncloud handles clustering - connects machines and containers together. Service containers can discover other services via internal DNS and communicate directly over the secure overlay network without opening any ports on the hosts. As far as I know kamal doesn’t provide an easy way for servi…

This is neat, regarding clustering - can this work with distributed erlang/elixir?

I haven't tried it, but EPMD with DNS discovery should work just fine, and should be similar to this NATS example: https://github.com/psviderski/uncloud-recipes/blob/main/nats...

Basically just configure it with `{service-name}.internal` to find other instances of the service.

Re: Uncloud - Tool for deploying containerised apps across servers without k8s

#125
post #18
post #4

Earlier quoted context omitted.

"I keep seeing teams reach for K8s when they really just need to run a bunch of containers across a few machines" Since k8s is very effective at running a bunch of containers across a few machines, it would appear to be exactly the correct thing to reach for. At this point, running a small k8s operation, with k3s or similar, has become so easy that I can't find a rational reason to look elsewhere for container "orche…

I can only speak for myself, but I considered a few options, including "simple k8s" like [Skate]( https://skateco.github.io/ ), and ultimately decided to build on uncloud. It was as much personal "taste" than anything, and I would describe the choice as similar to preferring JSON over XML. For whatever reason, kubernetes just irritates me. I find it unpleasant to use. And I don't think I'm unique in that regard.

How many flawless, painless major version upgrades have you had with literally any flavor of k8s? Because in my experience, that’s always a science experiment that results in such pain people end up just sticking at their original deployed version while praying they don’t hit any critical bugs or security vulnerabilities.

Re: Uncloud - Tool for deploying containerised apps across servers without k8s

#127

Earlier quoted context omitted.

100%. I’m really not sure why K8S has become the complexity boogeyman. I’ve seen CDK apps or docker compose files that are way more difficult to understand than the equivalent K8S manifests.

Docker Compose is simple: You have a Compose file that just needs Docker (or Podman). With k8s you write a bunch of manifests that are 70% repetitive boilerplate. But actually, there is something you need that cannot be achieved with pure manifest, so you reach for Kustomize. But Kustomize actually doesn't do what you want, so you need to convert the entire thing to Helm. You also still need to spin up your k8s clust…

Literally got it in one, here. I’m not knocking Kubernetes, mind, and I don’t think anyone here is, not even the project author. Rather, we’re saying that the excess of K8s can sometimes get in the way of simpler deployments. Even streamlined Kubernetes (microk8s, k3s, etc) still ultimately bring all of Kubernetes to the table, and that invites complexity when the goal is simplicity.

That’s not bad, but I want to spend more time trying new things or enjoying the results of my efforts than maintaining the underlying substrates. For that purpose, K8s is consistently too complicated for my own ends - and Uncloud looks to do exactly what I want.

Re: Uncloud - Tool for deploying containerised apps across servers without k8s

#128
post #125
post #18

Earlier quoted context omitted.

I can only speak for myself, but I considered a few options, including "simple k8s" like [Skate]( https://skateco.github.io/ ), and ultimately decided to build on uncloud. It was as much personal "taste" than anything, and I would describe the choice as similar to preferring JSON over XML. For whatever reason, kubernetes just irritates me. I find it unpleasant to use. And I don't think I'm unique in that regard.

How many flawless, painless major version upgrades have you had with literally any flavor of k8s? Because in my experience, that’s always a science experiment that results in such pain people end up just sticking at their original deployed version while praying they don’t hit any critical bugs or security vulnerabilities.

I’ve run Kubernetes since 2018 and I can count on one hand the times there were major issues with an upgrade. Have sensible change management and read the release notes for breaking changes. The amount of breaking changes has also gone way down in recent years.

Re: Uncloud - Tool for deploying containerised apps across servers without k8s

#129
post #40

Earlier quoted context omitted.

Try it on bare metal where you're managing the distributed storage and the hardware and the network and the upgrades too :)

Why would you want to do that though? On cloud, in my experience, you are mostly paying for compute with managed kubernetes instances. The overhead and price is almost never kubernetes itself, but the compute and storage you are provisioning, which, thanks to the control plane, you have complete control over. what am i missing? I wouldn’t dare try to with a small shop try to self host a production kubernetes solution…

I am in the process of redoing all of my self-hosting (cloud storage, sso, media server, and a lot more), which previously was a bunch of docker compose files deployed by Ansible. This quickly became unmanageable.

Now I almost finished the setting up part using a single-node (for now) Kubernetes cluster running with Talos Linux, and all of the manifest files managed with Cue lang (seriously, I would have abandoned it if I had not discovered Cue to generate and type check all of the yaml).

I think Kubernetes is the right solution for the complexity of what I'm running, but even though it was a hassle to manage the storage, the backups, the auth, the networking and so on, I much prefer having all of this hosted at my house.

But I agree with the control plane part, just pointing out my use case for self-hosting k8s

Re: Uncloud - Tool for deploying containerised apps across servers without k8s

#130

Hey, creator here. Thanks for sharing this! Uncloud[0] is a container orchestrator without a control plane. Think multi-machine Docker Compose with automatic WireGuard mesh, service discovery, and HTTPS via Caddy. Each machine just keeps a p2p-synced copy of cluster state (using Fly.io's Corrosion), so there's no quorum to maintain. I’m building Uncloud after years of managing Kubernetes in small envs and at a unicor…

We have similar backgrounds, and I totally agree with your k8s sentiment.

But I wonder what this solves?

Because I stopped abusing k8s and started using more container hosts with quadlets instead, using Ansible or Terraform depending on what the situation calls for.

It works just fine imho. The CI/CD pipeline triggers a podman auto-update command, and just like that all containers are running the latest version.

So what does uncloud add to this setup?

Post reply on HN