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

DNS Server im Homelab mit Raspberry Pi und Bind9

VMware vSphere und weitere Produkte aus dem Ökosystem sind sehr stark abhängig von korrekter Namensauflösung im DNS. Ohne DNS geht in der virtuellen Welt gar nichts. Das führt so weit, daß sich unter Troubleshootern das Motto etabliert hat: “Wenn die Ursache nicht DNS sein kann, dann prüfe nochmals DNS.”

Im Unternehmensbereich sind in der Regel DNS Server verschiedenster Art vohanden. Entweder Hardware Appliances mit DNS Funktion, oder ganze Microsoft Active-Directory Server. Wer jedoch ein Homelab einrichten möchte der hat im Büro meist nur einen kleinen DSL-Router mit DHCP Server mit eher schlechter als rechter DNS Funktionalität. Zwar kann man DNS-Server, oder ganze ADS-Domaincontroller in einer VM betreiben, jedoch haben wir hier das Henne-Ei Problem. Die VM startet erst nachdem Cluster und vCenter online sind. Bis dahin passiern ohne DNS wilde Dinge im vSphere Cluster. Gesucht ist also eine kleine, energiesparende, preiswerte und konfigurierbare Hardware-Lösung als DNS Server für das Homelab. Klingt wie die Eierlegende-Wollmilchsau, ist aber mit einem Raspberry Pi gut realisierbar.

Ich werde in diesem Artikel erklären was man hierfür benötigt und wie man ein Subnetz für das Lab konfiguriert.

Raspi als DNS-Server

Für dieses Projekt brauchen wir nicht das allerneueste Modell des Raspberry Pi. Ein Modell Raspi 3b ist hierfür vollkommen ausreichend und auch das Zubehör ist günstig zu bekommen.

Raspberry Pi 3b+ / 1GB / 4-Core / 1,4 GHz35 €
Micro SD Karte 32 GB9 €
Gehäuse (optional)8 €
Netzteil 2,5A (optional)10 €
HDMI Kabel5 €
Stückliste mit Durchschnittspreisen Juli 2020

Für deutlich unter hundert Euro bekommt man somit einen kleinen Server, der darüber hinaus auch noch andere Aufgaben übernehmen kann, wie zum Beispiel die Steuerung der Heim-Automation, oder als Werbeblocker Pi-hole.

Ein paar kleine Dinge sind zu beachten. Prinzipiell kann man den Raspi per USB mit Strom versorgen. Man muss aber darauf achten, dass die Quelle mindestens und zuverlässig 1,2A liefert. Empfohlen werden Stromquellen mit 2,5A. Meine ersten Bootversuche scheiterten, weil mein USB-Netzteil nicht genügend Strom lieferte.

Der Raspi benötigt ein dauerhaftes Boot- und Speichermedium in Form einer Micro-SD Karte. Hier sollte man nicht die allerbilligste Ware nehmen, aber für unter 10 € bekommt man schon 32 GB eines Markenherstellers.

„DNS Server im Homelab mit Raspberry Pi und Bind9“ weiterlesen