Linux Distributionen

Wichtige Erfolgsfaktoren sind die Verfügbarkeit von Updates und eine gewisse Verbreitung. Da Kubernetes sich immer noch schnell weiterentwickelt, sollte die Distribution dem Rechnung tragen und auf aktuelle Kernel und Kubernetes Versionen setzen.

RedHat Linux

Wer SLAs und einen Wartungsvertrag braucht, der ist mit RedHat Enterprise Linux gut bedient. Da lohnt sich auch der Blick auf OpenShift. Der Nachteil liegt in den etwas angestaubten Linux Kernel Versionen, so dass evtl. neue, nützliche Features in den aktuellen Kernelversionen nicht genutzt werden können. Positiv zu vermerken ist allerdings das per Default aktivierte Selinux. Die auf der Seite Host beschriebenen Selinux Härtungsmaßnahmen sollten auch bei RedHat angewendet werden.

CentOS

Der Einsatz von CentOS ist aufgrund der Ankündigung von RedHat, hier nur noch ein Rolling Release anzubieten, nicht mehr sinnvoll. Ein Nachfolger ist aber schon in Sicht: Rocky Linux von den früheren Machern von CentOS. Kommerziellen Anwendern wird empfohlen auf RedHat zu gehen, ansonsten lohnt es sich ggf. über eine Migration auf Kubic nachzudenken. Quelle: https://www.heise.de/news/CentOS-Version-8-weicht-CentOS-Stream-4984719.html

Ubuntu LTS/Debian

Auch hier sind die Kernel Versionen schon etwas angestaubt, so dass neue Kernel Features von Kubernetes nicht genutzt werden können.

Arch Linux

Der Versionsstände passen schon sehr viel besser. Leider wird das eine größere Frickelei, bis man Kubernetes mit etwas Anderem als Docker zum Laufen bekommt.

Kubic

Mit Suse Linux habe ich lange nichts mehr gemacht, aber Kubic scheint der große Wurf zu sein. Kubic ist ein minimales Suse Linux, das für den Aufbau einer Kubernetes Lösung optimiert wurde. Bei der Installation wird man schon gefragt, ob man einen Master- oder einen Worker-Knoten installieren will. Das Kubernetes wird erst einmal nur installiert, aber nicht konfiguriert. Ein Kubernetes Cluster entsteht erst, nachdem auf der Kommandozeile mit kubeadm init/join Kubernetes gestartet wird. Besonders hervorzuheben ist das Konzept mit einem transaktionssicheren Read-Only Root Filesystem in Verbindung mit Snapshots auf BTRFS. Das ist nicht nur von der Sicherheit her zu begrüßen, das Updatekonzept kann hier auch als "wasserdicht" bezeichnet werden.

Als Containerplattform wird CRI-O verwendet, was auch dem Weg entspricht, den Kubernetes geht. Die Versionen sind aktuell, die transactional Updates sind in diesem Umfeld auch sinnvoll. Selinux sollte nachträglich mit

transactional-update setup-selinux

aktiviert werden, was noch einen Reboot erfordert. Das sollte gemacht werden, bevor Kubernetes das erste mal in Betrieb genommen wird.

Weniger schön ist die Installation mit einem GUI, aber diese Unart haben inzwischen leider alle Distributionen.

And the winner is

Kubic ist für die Control Planes und Worker die Distribution der Wahl. Von der Anwendung her ist es ohnehin egal, auf welcher Plattform der Host läuft.

Alle Kubernetes Seiten beziehen sich daher auf Kubic.