Very neat tool. Thank you for your efforts! I am wondering how state replication works on the backend. The design mentions using crdt and a gossip proto, but I'm not sure what is actually implemented as it is a tad vague. I haven't dug into the code so forgive me if it is obvious or explained elsewhere.
Uncloud - Tool for deploying containerised apps across servers without k8s
181–189 of 189 posts
Re: Uncloud - Tool for deploying containerised apps across servers without k8s
#182Earlier quoted context omitted.
This is some serious rose colored glasses happening here. If you have a service with a simple compose file, you can have a simple k8s manifest to do the same thing. Plenty of tools convert right between the two (incl kompose, which k8s literally hands you: https://kubernetes.io/docs/tasks/configure-pod-container/tra... ) Frankly, you're messing up by including kustomize or helm at all in 80% of cases. Just write the…
> And no - you don't need an ingress. Just spin up a nodeport service, and you have the literal identical experience to exposing ports with compose - it's just a port on the machines running the cluster (any of them - magic!). https://kubernetes.io/docs/concepts/services-networking/serv... Might need to redefine the port range from 30000-32767. Actually, if you want to avoid the ingress abstraction and maybe want to…
As for grabbing 443 or 80, most distros support specifying the port in the service spec directly, and I don't think it needs to be in the range of the reserved nodeports (I've done this on k3s, worked fine last I checked, which is admittedly a few years ago now).
As you grow to more than a small number of exposed services, I think an ingress generally does make sense, just because you want to be able to give things persistent names. But you can run a LONG way on just nodeports.
And even after going with an ingress - the tooling here is pretty straight forward. MetalLB (load balancer) and nginx (ingress, reverse proxy) don't take a ton of time or configuration.
As someone who was around when something like a LAMP stack wasn't "legacy", I think it's genuinely less complicated to setup than those old configurations. Especially because once you get it right in the yaml once, recreating it is very, very easy.
Re: Uncloud - Tool for deploying containerised apps across servers without k8s
#183Re: Uncloud - Tool for deploying containerised apps across servers without k8s
#184Earlier quoted context omitted.
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?
Do you have an example of what you mean? I'm not entirely clear on your question.
Re: Uncloud - Tool for deploying containerised apps across servers without k8s
#185Re: Uncloud - Tool for deploying containerised apps across servers without k8s
#186Earlier 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.
I also re-investigated containerization - weighing Docker Swarm vs K3s - and settled on Docker Swarm.
I’ve hated it ever since. Swarm is a PITA to use and has all kinds of failure modes that are different than regular old Docker Compose.
I’ve considered migrating again - either to Kubernetes, or just back to plain Docker - but haven’t done it. Maybe I should look at Uncloud?
Re: Uncloud - Tool for deploying containerised apps across servers without k8s
#187Earlier quoted context omitted.
k3s makes it easy to deploy, not to debug any problems with it. It's still essentially adding few hundred thousand lines of code into your infrastructure, and if it is a small app you need to deploy, also wasting a bit of ram
"not to debug any problems with it" K3s is just a repackaged, simplified k8s distro. You get the same behavior and the same tools as you have any time you operate an on-premises k8s cluster, and these, in my experience, are somewhere between good and excellent. So I can't imagine what you have in mind here. "It's still essentially adding few hundred thousand lines of code into your infrastructure" Sure. And they're a…
...the fact it's still k8s which is a mountain of complexity compared to near anything else out there ?
Re: Uncloud - Tool for deploying containerised apps across servers without k8s
#188Earlier quoted context omitted.
This is exactly how it works now. The Compose file is the declarative specification of your services you want to run. When you run 'uc deploy' command: - it reads the spec from your compose.yaml - inspects the current state of the services in the cluster - computes the diff and deployment plan to reconcile it - executes the plan after the confirmation Please see the docs and demo: https://uncloud.run/docs/guides/depl…
That's really interesting and cool. In that case calling it imperative rather than declarative is underselling it imho. I haven't worked that much with Terraform but in my usage from the cli, that is how it works too and I consider that declarative. I get that putting the declarative spec in the control plane and having the service autoreconcile continuously is another layer but this is great as a start. In fact coul…
Yeah, you absolutely could and someone on our Discord has written a 30-line bash script that essentially runs a reconciliation loop with the CLI.
Thanks for the point on underselling by calling it imperative rather than declarative!
Re: Uncloud - Tool for deploying containerised apps across servers without k8s
#189Earlier quoted context omitted.
There's a good list here: https://dbohdan.com/self-hosted-paas I'm always looking for new alternatives there, I've recently tried Coolify but it didn't feel very polished and mostly clunky. I'm still happy with Dokku at this point but would love to have a better UI for managing databases etc.
Okay could you please share your thoughts as a user: - What databases you want to work with? - What functionality you want from such a UI? - What database size we are talking here? Asking because I am tinkering with a similar idea.
I just wrote this up here, in case someone else can point me to an existing project I'm not aware of: https://blog.notmyhostna.me/posts/what-i-wish-existed-for-se...