Einige Zeit ist vergangen, seit wir uns mit der Container-Orchestrations-Plattform Kubernetes auseinandergesetzt haben. Nach mittlerweile fast 3 Jahren hat sich Kubernetes zu einem defakto Standard in der Cloud-Infrastruktur durchgesetzt. Kubernetes ist ein Open-Source-System zum automatischen Deployment, Skalierung und Verwaltung von Container-Anwendungen. Kubernetes hat nicht nur die Cloud-IT verändert, sondern auch unsere eigene IT-Umgebung sowie die unserer Kunden stark beeinflusst.
Das Prinzip von Kubernetes besteht aus dem Verpacken von Anwendungen in sogenannten Containern. Docker ist ein bekanntes Beispiel hierfür und steckt hinter der mittlerweile aus Vertriebsgründen umbenannten Open-Source Software Moby, welche die verbreitetste Container-Technologie sein dürfte. Die Anwendungen werden dabei bereits im Entwicklungsprozess in eine anwendungsspezifische Umgebung, dem sogenannten „Image“ verpackt. Dieses Image kann nun nahezu unabhängig von der Laufzeitumgebung betrieben werden. Anstatt ein Packaging für verschiedene Betriebssysteme und verschiedene Plattformen mit verschiedenen Konfigurationen, gibt es nun lediglich ein vorkonfiguriertes „Image“, dass durch Parameter oder im Falle von Kubernetes durch ein sogenanntes „Deployment“ konfiguriert wird.
Durch Kubernetes arbeiten wir nun eine Abstraktionsebene höher: Die Anwendungscontainer abstrahieren die Softwarepakete und das Kubernetes Cluster System abstrahiert die Server. Durch die Software Configuration Management Plattform SaltStack können wir sogar noch einen Schritt weitergehen: SaltStack eignet sich nicht nur zur Konfiguration von Softwarepaketen, sondern auch hervorragend dazu, verschiedene Kubernetes Deployments on-the-fly zu erstellen und diese auf dem Kubernetes Cluster automatisch auszurollen. Auch in diesen Bereichen haben sich mittlerweile Standards wie beispielsweise Helm etabliert. Helm stellt ein Repositorium an Kubernetes Deployments, den sogenannten Charts zur Verfügung, die je nach Bedarf auf dem jeweiligen Cluster deployed werden können.