Kubernetes

Kubernetes ist die weitaus gebräuchlichste Plattform um Docker Container zu orchestrieren und laufen zu lassen.

Wenn Sie mit Microservices arbeiten wollen und diese in Docker Container packen brauchen Sie eine Umgebung um diese auszuführen. Kubernetes, das von Google entwickelt wurde, ist die beste Plattform dafür. Mittels Kubernetes können Container deployed und skaliert werden. Es findet ein automatisches Loadbalancing innerhalb des Kubernetes Clusters statt und mittels sogenannter Ingress Controller braucht man nur einen einzigen Loadbalancer vor dem Kubernetes Cluster. Die einzelnen Anwendungen innerhalb des Clusters werden dann mittels voll qualifizierten DNS Namen angesprochen.

Für Kubernetes gibt es auch ein eigenes Package Management namens HELM. Mittels Helm können containerbasierte Anwendungen in den Kubernetes Cluster eingespielt und wieder entfernt werden wie man das auf Linux Seite von apt oder yum kennt. Dies allein ist schon ein Grund Kubernetes zu benutzen.

Es gibt aber noch eine Reihe weiterer Vorteile. Für Kubernetes gibt es eine Reihe von Zusatztools, wie z.B. Istio, ein Service Mesh. Dies bedeutet dass mittels Istio in jeden Pod ein Sidecar Container injiziert werden kann, der die Möglichkeiten von Kubernetes erweitert. So kann damit z.B. ermöglicht werden mehrere Versionen von Pods und Containern einer Software nebeneinander laufen zu lassen und den Traffic prozentual auf die Versionen zu verteilen. Damit sind also neben rolling Upgrades auf Blue Green Deployments und Canary Upgrades möglich.

Eine weiter Möglichkeit ist es unter Kubernetes quasi "Serverless Computing" oder auch Functions zu ermöglichen. Dies geht z.B. mit der Software Knative. Diese ermöglich es die Skalierung von Pods bei 0 zu beginnen, d.h. es kann auch kein einziger Pod einer Software laufen, was weitere Ressourcen- und somit Geldeinsparung bewirkt. Die Pods werden dann eventbasiert gestartet.

Kubernetes ist mittlerweile so beliebt, dass jeder Cloudanbieter eine eigene Variante anbietet mit einem Befehl einen kompletten Kubernetes Cluster aufzubauen. Dies heißt bei Amazon AWS "EKS", was für "Elastic Container Service for Kubernetes" steht. Bei Microsoft Azure heißt der Dienst "AKS", was für "Azure Kubernetes Service" steht. Und natürlich bietet auch Google, der Erfinder von Kubernetes, ein One-Click Angebot, "GKE", was für "Google Kubernetes Engine" steht. Mit Hilfe dieser Dienste ist der Aufbau eines Kubernetes Clusters in der Cloud in wenigen Minuten erledigt. Man muss nur die Anzahl der Worker Knoten angeben, die Master Knoten werden vom Cloudanbieter automatisch gestellt und auch von ihm betrieben. Somit kann man sich ganz auf seine Anwendungen konzentrieren.

Wir von adARTIS haben schon für eine Reihe von Kunden Kubernetes Cluster in der Cloud aufgesetzt und die Kunden in deren Betrieb geschult. Zudem setzen wir nicht nur den Kubernetes Cluster auf, sondern auch die gesamte CI/CD Chain um in der Cloud containerbasierte Software zu entwickeln. Solche Projekte können wir schlüsselfertig erstellen. Wir besprechen mit unseren Kunden die Anforderungen und bauen dann nach Anforderung die Betriebsumgebung auf. Quasi als Rundum-glücklich-Paket!

Kontaktieren Sie uns per E-Mail und erfahren Sie mehr !  E-Mail: bmueller [at] adartis.de