Upgrade eines K3s Lightweight Kubernetes Clusters

K3s ist eine schlanke, hochverfügbare Open-Source-Kubernetes-Cluster-Plattform, die für eine einfache und ressourcenschonende Installation entwickelt wurde. K3s wird in einem Paket von weniger als 60 MB geliefert. Das Paket ist für ARM-Plattformen optimiert und kann daher auch auf Hardware wie einem Raspberry Pi, oder als Gast-VM auf ESXi-on-ARM betrieben werden.

Informationen sammeln

K3s ist eine Cluster-Lösung. Daher ist die Reihenfolge, in der die Knoten aktualisiert werden, wichtig. Das Update beginnt auf dem Masterknoten. Also müssen wir zunächst herausfinden, welcher Knoten diese Rolle hat. Am einfachsten geht dies mit einem kubectl Kommando:

kubectl get node
NAME STATUS ROLES AGE VERSION
k3node1.lab.local Ready master 2y43d v1.19.3+k3s3
k3node2.lab.local Ready none 2y42d v1.19.3+k3s3
k3node3.lab.local Ready none 2y42d v1.19.3+k3s3

Wir sehen in der Ausgabe oben meine drei K3s-Knoten mit FQDN, Status, Rolle, Alter und Version. Demzufolge hat hier k3node1 die Masterrolle.

Alternativ kann man den Befehl auch im ausführlichen Modus ausführen:

kubectl get node -o wide
„Upgrade eines K3s Lightweight Kubernetes Clusters“ weiterlesen

ESXi on Arm als mini Kubernetes Cluster

ESXi auf Intel x86 Architektur ist im Laufe der letzten Dekade zur Selbstverständlichkeit geworden. In den letzten 1-2 Jahren konnten wir auf der VMworld eine ESXi Version sehen, die auf Arm Architektur läuft. Damit ist sie beispielsweise lauffähig auf Smart NICs oder Raspberry Pi. In der Zwischenzeit haben VMware Entwickler ein Fling Projekt mit dem Namen ESXi on Arm veröffentlicht. Dies ist natürlich nur ein Testprojekt fürs Labor und es gibt dafür keinen offizielen Support für den produktiven Betrieb. Dennoch ist es eine gute Gelegenheit mit minimaler Hardware einen ESXi Host zu betreiben. Ich werde in diesem Blogpost nicht das Setup des ESXi erklären – dafür gibt es eine gute Dokumentation auf der Fling-Projektseite. (PDF). Hier geht es um die Möglichkeiten dieser Plattform und was man damit machen kann.

An dieser Stelle möchte ich besonders die Arbeit von William Lam hervorheben, der auf seinem Blog viel Hintergrundinfo, Tipp & Tricks und Hacks rund um das Thema PhotonOS und Raspberry Pi bereitstellt.

Wir haben jetzt einen ESXi auf einem Raspi. Was können wir damit nun anfangen?

Bevor wir einsteigen, noch ein paar kurze Anmerkungen:

Mit ESXi on Arm kann man nicht beliebige VMs betreiben. Wie der Projektname es schon andeutet, handelt es sich hier um eine Arm Architektur. Folglich kann man darauf auch nur Betriebsysteme virtualisieren, die für Arm gemacht sind. Damit sind Windows Gastsysteme schon einmal ausgeschlossen (mit Ausnahme von Windows 10 on Arm). Ebenso die meisten Linux Distributionen. Zum Glück gibt es aber einige Linux-Varianten für Arm-Architektur, wie zum Beispiel Ubuntu Server on Arm, oder Photon OS. Das Anwendungsbeispiel in diesem Blogpost basiert auf dem aktuellsten Photon OS (Version 4 beta). Als Host Hardware verwende ich den “großen” Raspi4 mit 8 GB RAM. Man braucht nicht viel Phantasie, um zu erkennen, dass 8 GB RAM für Host und Gastsysteme recht knapp sind. Wir müssen also diese Ressource sparsam einsetzen.

Das Ziel ist, drei Kubernetes-Knoten als VM auf dem ESXi on Arm auf einem Raspberry Pi mit 8 GB RAM und 4 CPU Kernen auszurollen. Klingt ambitioniert, ist aber möglich dank eines schlanken K3s Kubernetes auf Arm.

Eingesetzte Hardware

  • Raspberry Pi 4, Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz
  • Kühlblech für Raspberry Pi4 (ohne dieses wird der Raspi sehr heiss)
  • SD-Karte (nur für UEFI BIOS)
  • USB Stick als ESXi Bootmedium
  • USB 3 Hub mit externer Stomversorgung (Der USB Port des Raspi liefert nicht zuverlässig und ausreichend viel Strom für den Betrieb einer NVMe Karte)
  • USB 3 NVMe M.2 Gehäuse
  • Samsung NVMe EvoPlus 250 GB M.2

Verwendung des ESXi on Arm im Standalone-Modus

Obwohl mein ESXi on Arm in ein vCenter 7 integriert ist, werde ich keine der vCenter Eigenschaften für diese Demo verwenden (mit allen Einschränkungen und Umständlichkeiten).

Wir benötigen drei VMs für die drei Kubernetes Knoten. Es ist also eine gute Idee, eine VM mit allem was wir benötigen (außer K3s) zu bauen und diese dann zu klonen. Wenn Ihr jetzt denkt, dass das Klonen nur ein Mausklick in der UI sei, dann muss ich Euch leider enttäuschen. 😉 Ich werde auf diesen Punkt später zurückkommen. Bauen wir zunächst unsere erste Photon OS VM.

„ESXi on Arm als mini Kubernetes Cluster“ weiterlesen