Kubernetes verleiht Flügel
Keine Technologie stellt die Welt rund um das Ausliefern von Applikationen so sehr auf den Kopf wie die Containerorchestrierungsplattform Kubernetes. Und das nicht ohne Grund. Kubernetes beflügelt regelrecht die Bereitstellung von Anwendungen.
Container haben sich in den letzten Jahren als dominierende Technologie zum Verpacken und Bereitstellen von Applikationen durchgesetzt. Im Gegensatz zum herkömmlichen Deployment von Applikationen auf virtuellen Maschinen oder dedizierten Servern wird eine Anwendung in einem Container mit allen erforderlichen Abhängigkeiten und Konfigurationsdateien gebündelt. Diese müssen somit nicht auf dem Hostsystem installiert werden. Dadurch können Server homogenisiert werden, was Aufwand und Betriebskosten deutlich reduziert. Traditionell werden für neue Applikationen oft zusätzliche Server bereitgestellt, was jedoch bis zu mehreren Wochen dauern kann. Dies sieht mit Kubernetes ganz anders aus.
Kubernetes kann containerbasierte Anwendungen einem oder mehreren Servern automatisch zuweisen, ordnungsgemäss starten, überwachen und stoppen. Durch eine deklarative Konfiguration wird der gewünschte Zustand einer Applikation definiert, unter anderem mit wie vielen Ressourcen und Replikationen diese verfügbar sein soll. Kubernetes kümmert sich dann darum, dass dieser gewünschte Zustand erreicht und aufrechterhalten wird. So müssen Anwendungen nicht mehr auf den Zielservern durch manuelle Schritte oder aufwändig entwickelte Skripte bereitgestellt werden. Die Auslieferung von Anwendungen, wie auch das Anpassen des Ressourcenbedarfs, kann stattdessen innerhalb weniger Minuten durchgeführt werden.
Einsatz im Unternehmen
Der Einsatz von Kubernetes im Unternehmen bringt einige Herausforderungen mit sich. Bestehende Applikationen müssen in Container-Images verpackt und möglicherweise für den Gebrauch auf der Plattform angepasst werden. Neben dieser Migration müssen die Abläufe zum Bauen, Testen und Bereitstellen der Anwendungen angepasst und die Organisation der Konfigurationen geregelt werden. Ein weiterer wichtiger Baustein ist die gut durchdachte Konzeption der rollenbasierten Zugriffskontrolle, welche die Einsicht und Anpassungsmöglichkeiten der auf Kubernetes bereitgestellten Anwendungen für Mitarbeitende regelt, um etwa Revisionsanforderungen gerecht zu werden.
Zusätzlich muss entschieden werden, wo Kubernetes laufen soll: Bei einem Cloud-Anbieter wie Amazon, Google oder Microsoft, wo Installation und Updates auf Knopfdruck möglich sind, oder doch lieber im eigenen Rechenzentrum. Kubernetes bringt auch neue Problemstellungen beim Thema Sicherheit mit sich. Beispielsweise werden sensible Applikationsparameter wie Passwörter in sogenannten Secrets zentral in der Plattform abgelegt. Zwar ist deren Zugriff gut geregelt, sollte es jedoch einem Angreifer gelingen, Einblick in den Konfigurationsspeicher von Kubernetes zu bekommen, wären auch die Secrets betroffen. Hier bieten sich Vault-Lösungen an, die sensible Secrets ausserhalb der Plattform aufbewahren, um deren Zugriff besser zu schützen.
Da Entwickler mit Kubernetes neue Applikationen und Updates zügiger ausliefern können, wird deren Produktivität gesteigert. Durch Standardisierung der darunterliegenden Serverinfrastruktur wird ebenfalls Zeit und Aufwand gespart. Nicht umsonst werden bei über 70 Prozent der Fortune-100-Firmen Container eingesetzt und bei mehr als 50 Prozent Kubernetes zur Orchestrierung.