Diese Artikel-Serie beschäftigt sich mit der Einrichtung eines hybriden Kubernetes- und KVM-Clusters mithilfe von Proxmox bei Hetzner Online.
Erster Teil | Vorheriger Teil | Nächster Teil

Als Fachinformatiker kümmere ich mich natürlich selbst um die technische Infrastruktur von Firesplash Entertainment.
Meine Anforderung besteht hierbei darin, ein möglichst hoch verfügbares und leistungsfähiges System bei geringen Kosten aufzubauen. Als Budget habe ich mir für das aktuelle Projekt ca 120€/Monat eingeräumt. Wir lösen damit ein bestehendes System ab, das derzeit zzgl weiterem nachzurüstendem Flash-Speicher ca 100€/Monat kosten würde.
Ob damit der Aufbau eines Low-Cost Kubernetes und Proxmox Hybrid-Cluster bei Hetzner Online möglich ist?

Anforderungen

Der neue Cluster soll primär folgende Systeme tragen und noch “Luft nach oben” haben:

SystemBedarf
Speicher
Bedarf
RAM
Bedarf
CPU
Bedarf
Verfügbarkeit
Diverse Kubernetes
Deployments
U.a. Datenbank-Cluster
100 GiB
je Node
16 GiB
je Node
MittelHoch
GitLab &
Collab Server (KVM)
250 GiB12 GiBMittelGering
Build-Server
auf Windows 10 Basis (KVM)
80 GiB8 GiBHoch
(zeitweise)
Gering
Build-Server
auf Linux-Basis (Debian, KVM)
50 GiB4 GiBMittelGering
Mailserver* (LXC)100 GiB4GiBGeringGering
GameNet Gluu Server
(Debian, KVM)
30 GiB8 GiBGeringHoch
Billing System (LXC)25 GiB1 GiBGeringMittel
OpnSense als
LB und Gateway
32 GiB1 GiBGeringHoch

Für die Verfügbarkeit bewerte ich in drei Kategorien:
Gering: Ein längerfristiger Ausfall (z.B. bei Hardwaredefekt, rechnerisch 1-2 Tage) kann toleriert werden
Mittel: Ein kurzzeitiger Ausfall (z.B. bei Reboots, Hardwaretausch, … – Rechnerisch max 1h) kann toleriert werden
Hoch: Ausfälle müssen vermieden werden, maximal 1-2 Minuten sind tolerabel.

*) Der Mailserver ist deshalb als gering verfügbar eingestuft, da es außerhalb einen zweiten gibt, der nahtlos übernehmen kann.

Auswertung der Tabelle

Da vor allem die Build-Server während sie aktiv ind relativ viel IOs produzieren und darüber hinaus viele Container und VMs laufen werden, kommen Magnetplatten hier nicht in Frage. Die Wahl fällt aufgrund der hohen CPU-Performance und des geringen Preises auf die AX41-NVMe Server. Diese lasse ich mit einer zusätzlichen 512 GB NVMe bestücken.

Um die Hochverfügbarkeit des Kubernetes-Ingress und der Control Plane gewährleisten zu können, setzen wir zusätzlich einen VX21-CEPH aus der Hetzner Cloud ein. Dieser wird darüber hinaus als Quorum-Device für den Proxmox-Cluster dienen, auch wenn wir hier keine echte HA implementieren werden.

Das Projekt

Die Auswertung in ein Konzept zu übersetzen war nicht ganz einfach, gerade unter dem Aspekt, Kosten zu vermeiden.
Der Plan wird sein, beide EX-Server mit Proxmox VE der aktuellsten Version zu bestücken, dann dort mittels kubeadm einen Bare-Metal Kubernetes Cluster direkt auf den Hosts (nicht unbedingt best practise) zu installieren. Die Control Plane wird auf einem gesondert angemieteten VX21 laufen, der nebenbei auch Quorum für die PVE spielen wird.

Die echte Hochverfügbarkeit (live) wird innerhalb von Kubernetes verwaltet. Auf VM-Ebene setzen wir auf eine reine Replikation der “Mittel” und “Hoch” eingestuften VMs. Die “Niedrig” eingestufen VMs werden gar nicht repliziert, sondern lediglich regelmäßig auf eine Storage Box gesichert.

Wer Hetzner kennt, dem fällt sofort auf: Wie kommen die Daten denn in die VMs bzw wie die VMs ins Internet? Hetzner konnte lange keine floating IP pools abbilden. Neuerdings geht das mit VLANs, jedoch ist es relativ kostspielig. Wir werden in diesem Projekt versuchen, mit nur einer einzigen IP den gesamten cluster anzubinden. Lediglich der Mailserver bekommt eine eigene IP, die aber auf den Host “festgenagelt” sein wird.
Der Kubernetes-Ingress wird über den Control Plane-Host laufen, der eine Zusatz-IP zugeordnet bekommt.
Die gemeinsame Nutzung der Well-Known-Ports ist kaum benötigt, außer bei HTTP – Hier kommt ein Reverse-Proxy zum Einsatz.

Wie geht’s weiter?

Die Details sind bisher eine fundierte Idee. Möglicherweise ergeben sich im Verlauf des Projekts noch Änderungen. Ich hoffe, dass der Low-Cost Aspekt uns hier keinen Strich durch die Rechnung machen wird.
Dieser Beitrag ist der erste Teil einer Serie. Die weiteren Posts erscheinen nun voraussichtlich wöchentlich.

Habt ihr Ideen oder Fragen zum Projekt? Dann ab in die Kommentare!

About the Author

Inhaber / Streamer / Lead Dev von Firesplash Entertainment und ganz nebenbei Fachinformatiker Systemintegration in einem mittelständigen Unternehmen

View Articles