I’ve gotten to the point where I have more than a few servers in my homelab and am looking for a way to increase reliability in case of an update. Two problems: 2 of the servers will be on Wifi and one is a Synology NAS. I can’t do any wiring but I can put together a WiFi 6E network for the servers only, That means buying 4 Wifi 6E devices in a mix of types. As for Synology, it’s container manager is a little odd so I expect to run a Linux VM and use that as my cluster node. That may mean buying more RAM as I haven’t upgraded it. Hardware ranges from a 6 core CPU on the NAS (with a few important docker containers), 8 core on my main SFF server (which also runs my OpnSense VM inside Proxmox), 16 core Ryzen on my old big server, and a 10 year old NUC for fun. So the question is what do I use to orchestrate all the services I have. My Vaulwarden runs reliability but only on one system. I want better reliability for Pihole that automatically syncs settings. The NAS’ docker implementation doesn’t support gravity sync. Since everything I do runs in docker besides storage it seems Proxmox clusters is not the best option. That puts me between K8s and Docker Swarm. I’d like something that is simple to administer but resilien when hardware fails.
The solutions you’ve mentioned aren’t exactly equivalent. Proxmox is a hypervisor while Docker Swarm and Kubernetes are container orchestration engines. For example, I use Proxmox in a highly available cluster running on three physical nodes. Then I have various VMs and LXC containers running on those nodes. Some of those VMs are Kubernetes nodes running many Docker containers.
I highly recommend Proxmox as it makes it trivial to spin up new containers and VMs when you want to test something out. You can create and destroy VMs in an instant without messing with any of your actual hardware. That’s the power of a good hypervisor.
For orchestration, I would actually recommend you just stick with Docker Compose if you want something very simple to manage. Resiliency or high-availability usually brings with it a lot of overhead (both in system resources as well as maintenance costs) which may not be worth it to you. If you want something simple, Proxmox can run VMs in a highly-available mode so you could have three Proxmox nodes and set any VMs you deem essential to be highly-available within the cluster.
For my set up, I have certain services that are duplicated between multiple Proxmox nodes and then I use failover mechanisms like floating IP addresses to automatically switch things over when a node goes down. I also run most things in Kubernetes which is deployed in a highly-available manner across multiple Proxmox nodes so that I can lose a physical node and still keep (most) of my services running. This however is overkill for most things and I really only do it because I use my homelab to learn and practice different techniques.