Hi. I'm jon.404, a Unix/Linux/Database/Openstack/Kubernetes Administrator, AWS/GCP/Azure Engineer, mathematics enthusiast, and amateur philosopher. This is where I rant about that which upsets me, laugh about that which amuses me, and jabber about that which holds my interest most: *nix.
multi-arch kubernetes on amd64 and arm64 with Raspberry Pi 3B+s
Posted 09-22-2019 at 05:24 AM by rocket357
There's a bug in the go runtime that prevents etcd from working properly on armv7l devices. Calico and Helm/Tiller don't run on armv7l. And as I mentioned in my last post, Docker images are *really* limited on arm32v7 platforms. Raspbian sadly has not updated to arm64, so I switched the Raspberry Pis over to Debian Buster from here: https://people.debian.org/~gwolf/ras...PREVIEW.img.xz Since the Raspberry Pi 3B+ is actually a 64 bit machine (but most available operating systems for it are 32 bit), it's possible to switch to arm64 using the Buster image above.
With this in place, I can build out an amd64/arm64 hybrid cluster with my six Raspberry Pi 3B+'s, one RockPro64, and a System76 amd64 laptop. This "new and improved" cluster has all of the fanciness appropriate to a "1st class citizen" supported architecture for Kubernetes:
root@k8s07:~# kubectl get nodes -L kubernetes.io/arch
NAME STATUS ROLES AGE VERSION ARCH
k8s01 Ready <none> 46m v1.15.3 arm64
k8s02 Ready <none> 45m v1.15.3 arm64
k8s03 Ready <none> 46m v1.15.3 arm64
k8s04 Ready <none> 46m v1.15.3 arm64
k8s05 Ready <none> 46m v1.15.3 arm64
k8s06 Ready <none> 46m v1.15.3 arm64
k8s07 Ready master 52m v1.15.3 arm64
k8s08 Ready master 49m v1.15.3 amd64
With this in place, I can build out an amd64/arm64 hybrid cluster with my six Raspberry Pi 3B+'s, one RockPro64, and a System76 amd64 laptop. This "new and improved" cluster has all of the fanciness appropriate to a "1st class citizen" supported architecture for Kubernetes:
root@k8s07:~# kubectl get nodes -L kubernetes.io/arch
NAME STATUS ROLES AGE VERSION ARCH
k8s01 Ready <none> 46m v1.15.3 arm64
k8s02 Ready <none> 45m v1.15.3 arm64
k8s03 Ready <none> 46m v1.15.3 arm64
k8s04 Ready <none> 46m v1.15.3 arm64
k8s05 Ready <none> 46m v1.15.3 arm64
k8s06 Ready <none> 46m v1.15.3 arm64
k8s07 Ready master 52m v1.15.3 arm64
k8s08 Ready master 49m v1.15.3 amd64
Total Comments 0