X

Neuste Trends, Tipps, Strategien &
Events rund um das Thema Cloud

Wie Kubernetes den Einsatz von Containern automatisiert

Nach der Veröffentlichung von Docker im Jahr 2013 wurde sehr schnell klar, welches Potenzial die Containerisierung von Anwendungen besitzt. Vor allem die Betreiber von Rechenzentren und die Cloud-Anbieter hatten auf eine solche Technik gewartet, die es ihnen ermöglichen würde, die Wünsche ihrer Kunden bei der Bereitstellung von Applikationen schnell und flexibel zu erfüllen. Für den Einsatz von Docker im industriellen Maßstab fehlte jedoch zunächst noch ein Werkzeug, mit dem sich auch eine größere Zahl von Containern bereitstellen, skalieren und verwalten lässt. Das erschien dann 2014 mit Kubernetes, kurz K8s oder K8, auf dem Markt.

Was ist Kubernetes?

 
Kubernetes ermöglicht den Einsatz von Docker im industriellen Maßstab und ist insbesondere für Cloud-Provider ein unentbehrliches Werkzeug. Die zahlreichen Möglichkeiten zur Automatisierung etwa bei der Zuweisung von Ressourcen haben das System zu einer der erfolgreichsten Anwendungen der letzten Jahre gemacht.
 

Die ursprünglichen Entwickler der Software sitzen bei Google, der Konzern spendete die Software jedoch schon bald als Open Source an die Cloud Native Computing Foundation. Zu ihren Mitgliedern gehören heute praktisch alle wichtigen Cloud-Anbieter, darunter Alibaba, AWS, Microsoft, IBM und natürlich Oracle.

Bei Kubernetes werden aus Containern Pods

Kubernetes fasst Container zu Pods zusammen. Ein Pod ist die Basiseinheit des Systems und beinhaltet einen oder mehrere Container, die sich die vorhandenen Ressourcen teilen und auf der gleichen physischen oder virtuellen Maschine ausgeführt werden. Diese Maschinen werden im Kubernetes-Umfeld als Nodes bezeichnet, früher wurde auch der Name Minions benutzt. Mehrere Nodes lassen sich zu einem Cluster verbinden. Kubernetes ist in der Lage, selbstständig für jeden Pod einen Node mit ausreichend Kapazität zu finden und die enthaltenen Container automatisiert zu starten. Mehr noch: Ändert sich der Ressourcenbedarf eines Pods, so kann Kubernetes automatisch einen anderen, besser passenden Node suchen und das System auf diese Weise horizontal skalieren. Der Anwender kann dabei Höchst- und Mindestgrenzen definieren und muss ansonsten lediglich die benötigten Ressourcen bereitstellen, Änderungen an den Anwendungen sind nicht erforderlich. Den Rest erledigt Kubernetes.

Das System ist darüber hinaus in der Lage, ein automatisiertes Load-Balancing durchzuführen. Registriert es etwa, dass ein Pod eine Netzwerkverbindung ins Internet oder zu einem anderen Container benötigt, stellt Kubernetes diese Verbindung nicht nur her, sondern verteilt bei Bedarf auch den Datenverkehr automatisch auf mehrere Container.

Kubernetes verteilt Ressourcen automatisch

Das zentrale Element von Kubernetes ist der Kubernetes Master. Er empfängt die Vorgaben des Administrators und setzt sie in den zur Verfügung stehenden Nodes um. Er entscheidet mithilfe mehrerer Dienste, welcher Node am besten für eine Aufgabe geeignet ist, reserviert die erforderlichen Ressourcen und legt fest, welche Pods auf diesem Node die geforderte Aufgabe erfüllen sollen. Dann weist der Master Docker an, die jeweiligen Container zu starten. Das geschieht über Kubelet, einen Agent, der auf jedem Node läuft. In der Folge überwacht Kubelet kontinuierlich den Status der Container und übergibt diese Informationen wiederum an den Kubernetes Master. Stellt dieser fest, dass einzelne Container nicht wie gewünscht funktionieren oder überhaupt nicht reagieren, kann Kubernetes diese Images selbstständig stoppen und neu starten oder ersetzen. Das System besitzt daher gewissermaßen Selbstheilungskräfte.

Wie Kubernetes den Einsatz von Containern automatisiert

Kubernetes trägt aktuell stark dazu bei, die bisherigen monolithischen Systeme durch Container-Cluster zu ersetzen. Es gibt Entwicklern, Administratoren und Cloud-Betreibern eine neue Flexibilität und sorgt dafür, dass Funktionen, Services und Fixes schneller ausgerollt und Anwendungen automatisiert bereitgestellt werden können. Nicht zuletzt deshalb hat Kubernetes bei der jährlichen Open Source Conference (OSCON) von O’Reilly vor wenigen Wochen den Preis in der Kategorie „Größte Auswirkung“ auf die Software-Entwicklung gewonnen.

 

Weitere Infos zu Docker und Kubernetes:

Blogbeitrag: Wie Docker die Bereitstellung von Anwendungen vereinfacht

Kontakt:

Wenn Sie noch mehr darüber wissen möchten, dann sind wir gerne für Sie da, per LinkedInFacebook oder Twitter.

 

Bilder/Grafiken: Oracle, freecodecamp.org, Wikipedia, mesos.apache.org

Kommentieren

Kommentare ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.