header svg

Containerorchestrierung mit Kubernetes - Teil 5

08.08.2019

Durch die digitale Transformation sind viele Unternehmen gezwungen, den Erhalt des Wettbewerbsvorteils über Software zu realisieren. Hohe Agilität und kurze time-to-market sind die Gründe für den Einsatz von Containerisierung - dadurch erreichen Sie mit Ihrer Firma genau diesen Vorsprung.

Für welche Workloads sich Kubernetes gut eignet

Stateless Services sind perfekt in Kubernetes zu betreiben, da stateless Pods einfach beendet und auf einem anderen Node neu gestartet werden können.

Stateful Workloads, wie z.B. Datenbanken, erfordern spezielle Expertise, da sie persistenten Zustand erfordern und nur mit aufeinander abgestimmten Mechanismen der Anwendung und des Clusters und ggf. geeigneten CSI-Plugins (Container-Storage-Interface) ausfallsicher in einem Kubernetes-Cluster betrieben werden können. Es ist durchaus legitim, die stateless Microservices im Kubernetes-Cluster und die Datenbank klassich außerhalb des Clusters zu betreiben.

Kubernetes - aber wie?

Um Kubernetes als Containerorchestrierungs-Werkzeug einzusetzen stehen verschiedene Möglichkeiten zur Wahl.

  • Managed Kubernetes in der Cloud: z.B. AWS EKS, Azure AKS, Google GKE, Digital Ocean k8s, OVH
  • Kubernetes on premise im eigenen Rechenzentrum (bare metal/virtual machines)

Bei den "Managed Kubernetes" Angeboten in der Cloud sind alle wichtigen Elemente wie persistent Storage, LoadBalancer, Netzwerk, Anbindung an ein IAM-System für die Benutzerverwaltung, zentrales Logmanagement, Monitoring und Alerting, und ggf. die dynamische Allokation neuer Nodes durch Mechanismen des CloudProviders abgedeckt, so dass man nach der Erstellung des Clusters sofort mit den ersten Anwendungsdeployments starten kann.

Ein Aufbau on premise im eigenen RZ macht dagegen deutlich mehr Mühe, da entsprechende Lösungen für die von Kubernetes benötigten Dienste der Umgebung bereitgestellt werden müssen. Für nahezu alle Punkte sind Komponenten verfügbar, die gut mit Kubernetes harmonieren. Einen Überblick über cloud-native Technologien gibt die Cloud Native Interactive Landscape (https://landscape.cncf.io/) der Cloud Native Computing Foundation.

Für die ersten Schritte mit Kubernetes ist es einfach möglich, sich lokal einen Single-Node-Cluster zu erstellen, z.B. mit Minikube, Docker Desktop (nur Windows) oder microk8s (nur Linux).

Fazit

Die digitalen Transformation bedeutet für viele Unternehmen, dass die Steigerung der Wettbewerbsfähigkeit vermehrt über Software erfolgt. Hohe Agilität und kurze time-to-market sind die Faktoren, die mit Containerisierung und einem hohen Automatisierungsgrad über den gesamten Anwendungszyklus unterstützt werden können.

Kubernetes bietet als leistungsfähiger Container-Orchestrator viele Möglichkeiten, um die Entwicklung und den Betrieb von anspruchsvollen Multi-Container-Anwendungen zu erleichtern und zu automatisieren.

Gerade im aktuellen Hype um Kubernetes sollte eine Entscheidung aber auf keinen Fall leichtfertig getroffen werden - die Komplexität dieses Systems muss in die Überlegungen mit einbezogen werden.

Kubernetes, als de-facto-Standard für Container-Orchestrierung, ist auf jeden Fall einer der Kandidaten, mit denen man sich intensiv beschäftigen sollte. Die ersten Schritte sind mit einem lokalen oder einem Managed Kubernetes Cluster bei einem Cloud-Anbieter schnell gemacht.

footer svgfooter svg