I have been accruing some old gaming PCs that my friends no longer need, and I would like to turn them into a place to run Kubernetes clusters. I am hoping to come up with a somewhat high availability and want to be efficient in using the hardware I have. Each of these computers are full fledged desktops, CPU, GPU, decent RAM, SSD, disk, personal power supply. I see two options and was wondering what is going to be the best for my goals:
- Keep each computer as an individual, run Ubuntu server on each one,
and then connect each one into a cluster as a node. Questions about
this approach:
- This would restrict my clusters to being as many nodes as I have computers.
- Can a computer run as a node on several different clusters? For example can I have machine 1 as a control plane node for cluster 1 and a worker node for cluster 2?
- It is my understanding that running a cluster like this on bare metal squeezes more out of your hardware, is this accurate?
- Attempt to raid together the SSD's and disks and run Proxmox or some other hypervisor as a main OS. Then run VM's as the nodes of the Kubernetes clusters.
- Is this possible? Can Proxmox use the distributed (and notably different CPU/GPU/RAMs) and provision VMs across it?
- Can Proxmox efficiently use these resources without much overhead? Will it be able to interface with the GPU's and split them among the Kubernetes clusters as well?
- Is it possible that a VM might get provisioned on hardware from different computers, like a CPU from computer 1 and GPU and RAM from computer 2? Could this hurt my availability as one of the computers experiencing an outage could take down almost all of the VMs rather than just the ones provisioned on it?
I am just starting my at home server and K8s journey so any advice would be appreciated.