DEV Community

Hamdi KHELIL
Hamdi KHELIL

Posted on

πŸ—οΈ Setting Up a Proxmox Cluster for My Homelab Kubernetes Environment

Hey everyone πŸ‘‹

Now that you know the hardware powering my homelab
it is time to show how I turned those machines into a Proxmox cluster ready to host a production style Kubernetes environment πŸ§‘β€πŸ’»βš™οΈ

This article covers the entire setup
including fixes for a few annoying real world problems πŸ˜…

Let’s get into it πŸš€

βœ… Step 1. Update BIOS on Lenovo Tiny Nodes

Before installing Proxmox
I strongly recommend updating the BIOS of each node

Why it matters
βœ… fixes stability bugs
βœ… improves CPU performance and thermal handling
βœ… avoids random shutdowns or throttling
βœ… unlocks better hardware support

Old BIOS = unpredictable issues later
Flash now and enjoy peace later βœ…

βœ… Step 2. Install Proxmox VE

I installed Proxmox VE on each of my three Lenovo M920q nodes
using this simple naming and addressing plan:

Node Hostname IP

Node 1 pve1 192.168.1.21
Node 2 pve2 192.168.1.22
Node 3 pve3 192.168.1.23

DNS points to my Raspberry Pi βœ…

Installation takes a few minutes
and Proxmox is ready through a browser πŸŽ‰

βœ… Step 3. Fix NIC Offloading Stability Issues

This one hit me hard 😬
I kept encountering:

❌ random node connectivity loss
❌ nodes freezing during network traffic
❌ SSH dropping without reason

Cause
πŸ‘‰ NIC offloading on Intel network adapters

Fix using this excellent community script
https://community-scripts.github.io/ProxmoxVE/scripts?id=nic-offloading-fix

After applying this
the cluster became rock solid βœ…

If you run Lenovo Tiny
this fix is almost mandatory πŸ‘€

βœ… Step 4. Create the Proxmox Cluster

On node pve1:

pvecm create homelab-cluster

On other nodes:

pvecm add 192.168.1.21

Now
I can manage all nodes from a single interface βœ…
VMs can migrate easily between hosts βœ…
Monitoring is unified βœ…

Production vibes at home 😎

βœ… Step 5. Flat Network Setup First

Managed Switch Comes Later

For now
the network is simple:

one Gigabit flat network

vmbr0 bridging the physical NIC

DHCP/static addressing for VMs

Benefits
βœ… simple
βœ… stable
βœ… easy to troubleshoot

Future upgrade:
πŸ”Ή Managed PoE switch
πŸ”Ή VLAN segmentation for Kubernetes traffic
πŸ”Ή Insights and better monitoring

Great now
but room to grow βœ…

βœ… Step 6. Main Storage: Synology NAS (NFS + iSCSI)

Persistent workloads require persistent storage
so my Synology NAS handles all Kubernetes storage

βœ… NFS for most apps
βœ… iSCSI for database style block volumes
βœ… RAID and snapshots for safety
βœ… Backup target for Proxmox VMs

The NAS is the data backbone of the homelab
exactly how storage is handled in production πŸš€

βœ… Step 7. Automated Ubuntu 25.x Templates With Packer

To avoid manual VM setup
I automated template building using Packer

Operating system
🧩 Ubuntu Server 25.x
Modern kernel and great container support

My Packer template creates VMs that are:
βœ” cloud init ready
βœ” qemu guest agent installed
βœ” ssh enabled
βœ” updated and hardened
βœ” swap disabled for Kubernetes

This allows me to deploy
a brand new Kubernetes node VM in under 30 seconds 🀯

Fast
repeatable
version controlled

Infrastructure as code for real 😁

⚠️ Important Real World Gotchas

Here are issues I personally hit
and how I fixed them βœ…

Problem Cause Solution

Node freezes or network drops NIC offloading Apply NIC fix βœ…
Unexpected reboots or throttling Old BIOS Flash BIOS βœ…
High CPU temps under load Small chassis Tune cooling profile βœ…
VMs or pods OOM Overcommit Reserve RAM for hypervisor βœ…

Homelabs teach you technology
by breaking and fixing it
the best learning path πŸ”₯

βœ… What We Have Achieved So Far

Feature Status

Three node Proxmox cluster βœ…
Network stability βœ…
NAS integrated for storage βœ…
Custom VM templates βœ…
Automation friendly βœ…
Kubernetes ready foundation βœ…

A real mini datacenter is now running in my home
quietly
efficiently
and fully under my control 🏑✨

βœ… Coming Next

Deploying Kubernetes with Kubespray

In the next article you will see:

πŸ”₯ 3 high availability control plane nodes
πŸ”₯ 6 workers ready for workloads
πŸ”₯ DNS fully internal
πŸ”₯ main storage already integrated
πŸ”₯ GitOps and monitoring soon after

This is when the real fun begins 😎πŸ”₯

Stay tuned

Top comments (0)