I'm trying to figure out the best way to learn Kubernetes hands-on for my homelab. Right now, I have a single-node Proxmox setup running PFsense and a few services that I've automated using Terraform and Ansible. I'm aiming for the same level of automation with Kubernetes. I have four mini PCs that I want to use for a multi-node configuration. My goal is to get comfortable with Kubernetes in a setup that resembles an enterprise environment. I'm debating whether to go with bare metal or continue using VMs on Proxmox. Is one method better for learning than the other? I know many companies use virtualized nodes in the cloud, and while I appreciate the features of Proxmox, it seems to add complexity that might distract from my learning. Any advice would be great!
6 Answers
Proxmox is a solid choice. It allows you to mimic the way cloud providers work by creating and managing VMs for your K8s clusters, along with running other services. Personally, I went bare metal since I don't see the need for an extra hypervisor and only want to run Kubernetes straightforwardly.
If your aim is to orchestrate Kubernetes effectively and practice automation, Proxmox could be the way to go. While you might not get the complete HA experience, it still allows for rolling updates and other important practices. I initially set up a single powerful node on Proxmox but later transitioned to bare metal, and I haven't looked back since.
Remember, Kubernetes is essentially just an API managing services on nodes. You can easily run K8s in a few VMs, which may be more beneficial for testing and learning how everything interacts.
It's tough to pick just one! If the goal is learning, both options have their merits. I personally lean towards using Talos Linux over Proxmox, as it focuses more on simplicity and lets you dive right into Kubernetes without the extra Proxmox management layer slowing you down.
True, but you can actually run Talos on Proxmox if you want full automation and streamlined provisioning!
Don't forget about K3s! It's a lightweight version of Kubernetes that works well even with a single master node, so it's a great alternative to try out.
With Proxmox, you can dive into the complete bootstrapping process, including using Terraform to prepare your VMs for Kubernetes, which adds tons of learning value.

I agree! In fact, I think it's better to run your VMs within Kubernetes rather than trying to virtualize K8s itself.