Kubernetes auf ODROID Arch Linux ARM Mainline Kernel
Das Setup von Kubernetes mit Arch Linux ARM 64bit auf einem ODROID C2 wurde im vorherigen Beitrag zu Kubernetes gezeigt. Als Overlay-Network wurde Weave verwendet, was leider im Zusammenspiel mit dem ODROID C2 Linux Kernel zu Abstürzen durch eine Kernel Panic führen kann. Die zugehörige Issue findet sich hier: https://github.com/weaveworks/weave/issues/3314
Eine Lösung ist, auf den "Fast Data Path" zu verzichten, was zur Folge hat, dass die Performance sich verringert und die CPU Belastung steigt. Alternativ kann der ODROID C2 mit einem aktuellen Linux Kernel, dem Mainline (oder Upstream) Linux Kernel verwendet werden.
Die Einrichtung ist sehr einfach: Der von Hardkernel für den ODROID C2 erstellte Kernel wird durch den aktuellen, regulären Linux Kernel für ARM ersetzt. Mit zwei pacman-Aufrufen ist das schnell erledigt:
$ pacman -R uboot-odroid-c2 && pacman -Sy uboot-odroid-c2-mainline linux-aarch64
Einige Nutzer berichten von Problemen mit dem haveged
-Daemon in Kombination mit dem Mainline-Kernel.
Das Programm dient dazu, für den Kernel Zufall zu sammeln und bereitzustellen.
Alternativ kann dies mit dem rngd
erledigt werden, der mit dem Paket rng-tools
installiert wird.
Bei der Konfiguration ist zu beachten, dass das Device /dev/hwrng
Zugriff auf den Hardwarezufallsgenerator gibt und entsprechend verwendet werden sollte.
$ pacman -R haveged && pacman -S rng-tools
$ echo 'RNGD_OPTS="-o /dev/random -r /dev/hwrng"' > /etc/conf.d/rngd
$ systemctl enable rngd
$ systemctl enable rngd
Bei dem Mainline Kernel ist für Kubernetes lediglich noch zu beachten, dass das br_netfilter
Modul geladen werden muss.
Auch das ist mit einer Zeile konfiguriert:
$ echo "br_netfilter" > /etc/modules-load.d/br_netfilter.conf
Zu den Themen Kubernetes, Docker und Cloud Architektur bieten wir sowohl Beratung, Entwicklungsunterstützung als auch passende Schulungen an:
Auch für Ihren individuellen Bedarf können wir Workshops und Schulungen anbieten. Sprechen Sie uns gerne an.