Kubernetes (k8s) — was nun …
Kubernetes — k8s — ist aktuell in aller Munde und auch wir beschäftigen uns intensiver damit. In diesem Beitrag wollen wir einige unserer Überlegungen und bisherigen Erfahrungen teilen.
An dieser Stelle ein Dankeschön an SysEleven aus Berlin, die uns bei den ersten Schritten behilflich sind.
Die bunte Internetwelt und die verschiedenen Marketing-Texte preisen k8s als Infrastruktur- und Deploymentkonzept an, dass alle existierenden Probleme löst. Meist wird der Beweis für diese These geführt, in dem man sehr schnell eine “einfache”, “zustandslose” Applikation in einem k8s Cluster startet. Anschließend wird mit wenigen Klicks gezeigt, wie toll das Autoscaling funktioniert und wie einfach die entsprechenden Instanzen sich selbst heilen können (selfhealing).
Alle sind begeistert und wollen die “mach-alles-mit-kubernetes-und-löse-meine-probleme.exe” herunter laden und installieren.
Schaut man sich aber unsere Applikationen an, welche in der Regel auf Magento oder TYPO3 basieren und sowohl Frontend- als auch Backend-Funktionen zur Verfügung stellen, wir die Sache schon etwas hässlicher. Plötzlich benötigt man Speicher (Storage) der für alle Knoten im Cluster zur Verfügung steht und durch diese gelesen und geschrieben werden können muss, um den aktuellen “Zustand” der Applikation korrekt wieder zu geben.
Wir wollten in einem internen Workshop schauen, wie realistisch es ist, eine konkrete Netresearch Applikation (Magento 2, welches auch mittels blugento shop factory gestartet werden kann), in einem k8s Cluster zu starten und ob wir in der Lage sind, die auftretenden Probleme zu adressieren.
Wofür braucht man k8s eigentlich?
Grob gesagt, bietet das k8s Konzept die Möglichkeit, eine Applikation so zu definieren, dass sie auf verschiedenen Plattformen (Amazon Webservices, Google Cloud, Azure, …) gestartet werden kann, solange diese das “k8s Format” verstehen. Nach aktuellen Trends wird dieses Format von immer mehr Herstellern unterstützt und gilt deshalb als tragfähige Lösung für die Zukunft (wie weit diese auch reichen mag)
Für uns ist das, nach unserer ersten Einschätzung, vor allem an zwei Stellen nützlich
- blugento shop factory — Starten von Stores innerhalb eines k8s Clusters und damit Nutzung von Autoscaling, Selfhealing etc.
- Bereitstellung CI Worker — Schnellere Abarbeitung unserer CI Jobs
- Bereitstellung von internen NR Services — Erhöhung der Ausfallsicherheit, Vereinheitlichung des Deployments
Und wie sind die bisherigen Erfahrungen?
Alles in allem sind wir mit den bisherigen Ergebnissen sehr zufrieden:
- Wir haben eine Applikationsdefinition vom bisherigen Format (docker-compose.yml) in das k8s Format “übersetzt”
- Wir sind in der Lage Applikation im SysEleven MetaKube zu starten/stopen
- Wir haben ein rudimentäres Magento 2 unter der URL http://test-aha-123.blugento.store/ verfügbar gemacht
- Wir haben das Autoscaling für Applikationen initial ausprobiert
- Wir konnten aufgetretene Probleme selbständig debuggen/lösen
- Wir glauben, diese Technologie mit etwas mehr Übung und Erfahrung verstehen und beherrschen zu können
- Wir sind überzeugt, das k8s einige unsere bisherigen Infrastrukturprobleme lösen kann
Also ist das Thema erledigt? Cool, dann können wir ja als nächstes….
So schnell geht es leider nicht. Wir haben einen ersten wichtigen Schritt in Richtung Produktiveinsatz getan. Aber uns sind auch noch ein paar Baustellen/Herausforderungen aufgefallen
- Verwendung persistenter Speicher an verschiedenen Nodes im Cluster
- Bereitstellung gesicherter Zugriffe via HTTPS im Cluster
- Backup von z. B. Datenbanken einer Applikation
- …
Und wie geht es jetzt weiter?
Wir werden das Thema weiter verfolgen und versuchen, die Weichen für einen Einsatz von k8s im Unternehmen zu stellen. Dabei werden wir auch immer wieder Fragen, welches Problem wir durch den Einsatz dieser Technologie lösen können. Die grobe Agenda für die nächsten Wochen sieht wie folgt aus:
- Abstimmung mit Stakeholdern IT/Shopfactory zu den Erkenntnissen aus dem Workshop
- Adressierung der technischen Probleme im Cluster Richtung SysEleven
- Weitere Erfahrungen im Umgang mit k8s sammeln
Und alle, die jetzt total enttäuscht sind, dass “k8s-out-of-the-box” irgendwie nicht so gut klappt, sei gesagt, die Einführung von Docker im Unternehmen hat mit ganz ähnlichen Diskussionen, Problemen und Sorgen begonnen. Von daher lasst uns neugierig bleiben!