Finally, my first (working) cluster!

After four (or more) years of trying and failing, I finally have a fully working
plain Kubernetes system running on my Raspberry Pi cluster with kubeadm.
Persistent storage hasn’t been set up yet but LoadBalancer services are
available with Cilium and backed with BGP, talking to an OPNsense router.
~% kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system cilium-8gs69 1/1 Running 3 4d20h
kube-system cilium-chnzb 1/1 Running 3 4d20h
kube-system cilium-k86sc 1/1 Running 4 4d20h
kube-system cilium-operator-65496b9554-64bwh 1/1 Running 3 3d10h
kube-system coredns-7789cccdc4-czj2z 1/1 Running 2 2d11h
kube-system coredns-7789cccdc4-vtrfd 1/1 Running 1 35h
kube-system etcd-node06 1/1 Running 4 5d20h
kube-system hubble-relay-7b8fb45847-976xn 1/1 Running 17 5d11h
kube-system kube-apiserver-node06 1/1 Running 4 5d20h
kube-system kube-controller-manager-node06 1/1 Running 4 5d20h
kube-system kube-proxy-2pq5z 1/1 Running 3 5d20h
kube-system kube-proxy-6vtpf 1/1 Running 4 5d20h
kube-system kube-proxy-wlz6x 1/1 Running 4 5d20h
kube-system kube-scheduler-node06 1/1 Running 4 5d20h
“Production” use of this cluster for services at home isn’t there yet because I need to first learn:
- how to upgrade the cluster
- how to fix a broken cluster
- what good persistent storage backend is feasible
- how to preserve source IP addresses as traffic passes through the load balancer VIP
I was trying to use Calico because it’s what I commonly see with tutorials. And then Cilium was brought into the picture when I saw it included in EKS Anywhere. Since $dayJob has EKS Anywhere in the roadmap, I might as well try to mimic that configuration and eventually deploy an actual EKS Anywhere cluster at home.
I’m probably years behind the curve now but better late than never.