logoalt Hacker News

psviderskitoday at 6:53 AM9 repliesview on HN

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 unicorn. I keep seeing teams reach for K8s when they really just need to run a bunch of containers across a few machines with decent networking, rollouts, and HTTPS. The operational overhead of k8s is brutal for what they actually need.

A few things that make it unique:

- uses the familiar Docker Compose spec, no new DSL to learn

- builds and pushes your Docker images directly to your machines without an external registry (via my other project unregistry [1])

- imperative CLI (like Docker) rather than declarative reconciliation. Easier mental model and debugging

- works across cloud VMs, bare metal, even a Raspberry Pi at home behind NAT (all connected together)

- minimal resource footprint (<150MB ram)

[0]: https://github.com/psviderski/uncloud

[1]: https://github.com/psviderski/unregistry


Replies

topspintoday at 7:28 AM

"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 "orchestration".

show 5 replies
zbuttramtoday at 8:02 AM

Very cool! I think I'll have some opportunity soon to give it a shot, I have just the set of projects that have been needing a tool like this. One thing I think I'm missing after perusing the docs however is, how does one onboard other engineers to the cluster after it has been set up? And similarly, how does deployment from a CI/CD runner work? I don't see anything about how to connect to an existing cluster from a new machine, or at least not that I'm recognizing.

show 1 reply
olegptoday at 7:22 AM

How's this similar to and different from Kamal? https://kamal-deploy.org/

show 1 reply
avan1today at 9:40 AM

Thanks for the both great tools. just i didn't understand one thing ? the request flow, imaging we have 10 servers where we choose this request goes to server 1 and the other goes to 7 for example. and since its zero down time, how it says server 5 is updating so till it gets up no request should go there.

show 1 reply
unixfoxtoday at 8:58 AM

Awesome tool! Does it provide some basic features that you would get from running a control plane.

Like rescheduling automatically a container on another server if a server is down? Deploying on the less filled server first if you have set limits in your containers?

mosselmantoday at 7:32 AM

You have a graph that shows a multi provider setup for a domain. Where would routing to either machine happen? As in which ip would you use on the dns side?

show 1 reply
utopiahtoday at 8:19 AM

Neat, as you include quite a few tool for services to be reachable together (not necessarily to the outside), do you also have tooling to make those services more interoperable?

show 1 reply
doctorpanglosstoday at 10:03 AM

haha, uncloud does have a control plane: the mind of the person running "uc" CLI commands

> I’m building Uncloud after years of managing Kubernetes

did you manage Kubernetes, or did you make the fateful mistake of managing microk8s?

woiletoday at 7:42 AM

does it support ipv6?

show 1 reply