Live data from Hacker News

Uncloud - Tool for deploying containerised apps across servers without k8s

uncloud.run

71–80 of 189 posts

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

#71
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…

If you already know k8s, this is probably true. If you don't it's hard to know what bits you need, and need to learn about, to get something simple set up.

you could say that about anything…

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

#72
post #61

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…

This is a cool tool, I like the idea. But the way `uc machine init` works under the hood is really scary. Lot's of `curl | bash` run as root. While I would love to test this tool, this is not something I would run on any machine :/

Curious, what would be an ideal (secure) approach for you to install this (or similar) tool?

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

#73
post #71

Earlier quoted context omitted.

If you already know k8s, this is probably true. If you don't it's hard to know what bits you need, and need to learn about, to get something simple set up.

you could say that about anything…

I don't understand the point? You can say that about anything, and that's the whole reason why it's good that alternatives exist.

The clear target of this project is a k8s-like experience for people who are already familiar with Docker and docker compose but don't want to spend the energy to learn a whole new thing for low stakes deployments.

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

#74
post #72
post #61

Earlier quoted context omitted.

This is a cool tool, I like the idea. But the way `uc machine init` works under the hood is really scary. Lot's of `curl | bash` run as root. While I would love to test this tool, this is not something I would run on any machine :/

Curious, what would be an ideal (secure) approach for you to install this (or similar) tool?

It's deploying a script, which then downloads uncloud using curl.

The alternative is, deploying the script and with it have the uncloud files it needs.

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

#75

This is extremely interesting to me. I've been using docker swarm, but there is this growing feeling of staleness. Dokku feels a bit too light, K8 absolutely too heavy. This proposition strikes my sweet spot - especially the part where I keep my existing docker compose declarations

Come join our cozy Discord server https://uncloud.run/discord. There is one guy joined recently who is migrating his homelab setup from Swarm right now.

Also another community member shared his homelab with a couple dozen services migrated from Docker Compose to Uncloud: https://github.com/dasunsrule32/docker-compose-configs/tree/...

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

#76

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 don't know what the specific requirements for the distributed erlang/elixir but I believe the networking should support it. Containers get unique IPs on a WireGuard mesh with direct connectivity and DNS-based service discovery.

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

#77
post #30
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…

Indeed, it seems a knee jerk response without justification. k3s is pretty damn minimal.

[deleted]

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

#78

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…

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?

For the public cluster with multiple ingress (caddy) nodes you'd need a load balancer in front of them to properly handle routing and outage of any of them. You'd use the IP of the load balancer on the DNS side.

Note that a DNS A record with multiple IPs doesn't provide failover, only round robin. But you can use the Cloudflare DNS proxy feature as a poor man's LB. Just add 2+ proxied A records (orange cloud) pointing to different machines. If one goes down with a 52x error, Cloudflare automatically fails over to the healthy one.

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

#79
post #57

How does this compare to something like Dokku?

Is dokku multi node?

It supports docker swarm, but I've never used it like that. As I may need multi node in the future, I was asking the question to see if it would make it 'easy' to orchestrate multiple containers. The simplicity of Dokku is hard to beat, however.

edit: Well, it would appear that the very maintainer of Dokku himself replied to the parent comment. My information is clearly outdated and I'd only look at this comment[0] to get the proper info.

[0] https://news.ycombinator.com/item?id=46144275#46145919

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

#80
post #68
post #65

Earlier quoted context omitted.

It can use sqlite (single master), or for cluster it can use pg, or mysql, but etcd by default

No, it's not. Read the docs[1] - sqlite is the default. "Lightweight datastore based on sqlite3 as the default storage backend. etcd3, MySQL, and Postgres are also available." [1] https://docs.k3s.io/

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

Post reply on HN