Building a 3-Node Kubernetes Homelab on AlmaLinux

Why Bare Metal?

Managed K8s (EKS, GKE) abstracts away the hard parts. Building it yourself teaches you what’s actually happening beneath the surface.

Cluster Specs

NodeRoleRAMCPU
k8s-masterControl Plane4GB4 vCPU
k8s-worker01Worker4GB4 vCPU
k8s-worker02Worker4GB4 vCPU

Install kubeadm

swapoff -a
sed -i '/ swap / s/^/#/' /etc/fstab

# Install containerd
dnf install -y containerd
systemctl enable --now containerd

# Add K8s repo and install
dnf install -y kubeadm kubelet kubectl
systemctl enable --now kubelet

Bootstrap the cluster

kubeadm init \
  --pod-network-cidr=10.244.0.0/16 \
  --apiserver-advertise-address=<MASTER_IP>

Install Flannel CNI and MetalLB next — covered in part 2.