Kubernetes: Container agil und flexibel orchestrieren

Jetzt Artikel teilen:

Das Open-Source-System Kubernetes ermöglicht es, containerisierte Anwendungen automatisiert zu skalieren und zu verwalten.

Kubernetes zählt heute zu den beliebtesten und ausgereiftesten Lösungen für die Container-Orchestrierung. Das Open-Source-System wurde ursprünglich von Google entwickelt und zunächst intern bei Google eingesetzt und getestet. Inzwischen übergab Google das System für die weitere Entwicklung der Cloud Native Computing Foundation. Auch die führenden Public-Cloud-Plattformen wie Microsoft Azure, Google Cloud Platform und Amazon AWS unterstützen das Open-Source-Tool.

Getrieben durch die digitale Transformation hat sich die Rolle von Software in den letzten Jahren deutlich verändert. Zu Beginn der Industrialisierung kam vor allem den Hardwarekomponenten eine Schlüsselrolle zu. Doch im neuen Zeitalter von Industrie 4.0 und Internet of Things (IoT) übernimmt ganz klar Software die führende Rolle. Denn es gilt, möglichst schnell auf veränderte Marktanforderungen zu reagieren.

Auch der Bereich der Softwareentwicklung hat sich in den letzten Jahren grundlegend gewandelt: Containern und Microservices gehört inzwischen die Zukunft. Denn sie garantieren eine agile und schnelle Entwicklung neuer Anwendungen sowie kürzere Time-to-Market. Moderne Anwendungen setzen sich heute aus einer Vielzahl von Microservices zusammen, die in Containern verpackt werden. In Produktivumgebungen bestehen die meisten Anwendungen dabei aus sehr vielen Microservices. In einer Kubernetes-Umgebung können mehrere Microservice-Container in Pods zusammengefasst werden.

Ein Kubernetes-Cluster kann über unterschiedliche virtuelle und physische Hosts verteilt und in dedizierten Rechenzentren oder in Cloud-Umgebungen betrieben werden. Solche Cluster-Infrastrukturen sind heute wesentlich komplexer als noch vor einigen Jahren. Das resultiert auch aus der zunehmenden Nutzung heterogener Infrastrukturen vom Rechenzentrum über Private-, Public- bis zu Hybrid- und Multi-Cloud-Umgebungen. Die Container-Orchestrierung übernimmt dabei die komplexe und effiziente Verwaltung der Pods und deren Container.

Was genau ist Kubernetes?

Die Lösung hilft dabei, Container effizient bereitzustellen, zu skalieren, zu verwalten und zu überwachen. Die Orchestrierungs-Engine beseitigt viele manuelle Prozesse, die zuvor mit der Bereitstellung und Skalierung von containerisierten Anwendungen verbunden waren. Zudem wird das Deployment von Anwendungen über verschiedene Infrastrukturen im Rechenzentrum, in einer Private Cloud oder über verteilte Cloud-Umgebungen erleichtert.

Kubernetes basiert auf einer hochverfügbaren API, die über Kommandozeile via kube-ctl administriert werden kann. In der Kubernetes-Terminologie spricht man von einer hochverfügbaren Controlplane, Workern (auch Nodes genannt) und Pods. Auf den Workern laufen die Pods, welche mehrere Container beinhalten können. Den Architekturaufbau und die grundlegende Funktionsweise von Kubernetes haben wir bereits in unserem Beitrag zur Container-Orchestrierung beschrieben.

Kubernetes orchestriert automatisch und flexibel

Das System unterstützt Unternehmen und Cloud-Provider dabei, ihre Infrastrukturen optimal auszulasten und flexibel zu nutzen. Kubernetes stellt sicher, dass alle in den Pods befindlichen Container auf die Worker ausgerollt werden. Im Falle von Ausfällen oder extremen Lastsituationen verteilt das System die Pods/Container auf die Worker im Cluster.

Für diese Orchestrierung überwacht Kubernetes anhand von Healthchecks laufende Container/Pods und deren Konfiguration. Auch die Anzahl, der für die verschiedenen Services benötigten Container kontrolliert das System. So stellt es sicher, dass alle benötigten Container jederzeit betriebsbereit sind. Gibt es Änderungen an der Konfiguration oder ein Update der Software während eines Deployments, kann Kubernetes dies automatisch verteilen (Rollout). Kommt es im Laufe dieses Deployments oder danach zu Störungen, kann der Rollout pausiert oder wieder rückgängig gemacht werden (Rollback).

Zudem setzt Kubernetes die Container eines Deployments selbständig dort ein, wo die entsprechenden Ressourcen zur Verfügung stehen. Dazu können Mindest- und Höchstwerte der Ressourcennutzung auf Basis von CPU und RAM individuell für einzelne Container festgelegt werden.

Durch einen vorgeschalteten Ingress-Controller stellt Kubernetes eigenständig sicher, dass bei Lastspitzen eine gleichmäßige Verteilung des eingehenden Traffics auf die jeweiligen Services stattfindet.

Container Whitepaper preview

Download zum Thema

Erfahren Sie im Whitepaper mehr über die Anwendungsentwicklung mit Containern und Microservices.

Jetzt kostenfrei downloaden

Kubernetes vereinfacht DevOps

Der Einsatz von Kubernetes unterstützt Unternehmen dabei, ihre DevOps-Bestrebungen umzusetzen, also die Zusammenarbeit von Softwareentwicklung (Dev) und IT-Betrieb (Ops). Früher sorgten oft uneinheitliche Integrations- und Deployment-Mechanismen für Konfliktpotenzial zwischen Entwicklern und IT-Betrieb. In Kubernetes stehen heute vereinheitlichte Mechanismen für Softwareintegration und -deployment bereit. Dadurch ist es möglich, Anwendungen deutlich einfacher und schneller auszurollen, zu skalieren und zu überwachen.

So muss der IT-Betrieb beispielsweise nicht jedes Mal aufwendig neue Systeme aufsetzen, wenn neue Tests anstehen. Oder die Netzwerk- und Speicher-Settings anpassen, wenn die Entwickler zusätzliche Ressourcen benötigen. Die Entwickler wiederum können über Kubernetes ihre Software inklusive aller Abhängigkeiten auf einfache Weise ausrollen und betreiben. Das minimiert den Arbeitsaufwand und löst Probleme, die es bisher oftmals zwischen unterschiedlichen Umgebungen gab – beispielsweise zwischen Testbetrieb und Produktion.

Durch den Einsatz von Kubernetes ergeben sich somit viele Vorteile für DevOps-Teams:

  • Entwickler bauen ihre Software einmalig und können sie überall laufen lassen (build once, run everywhere).
  • Für Test und Produktion stehen zuverlässige und einheitliche Umgebungen bereit.
  • DevOps-Teams konfigurieren einmalig und können dann eine Vielzahl von Services und Anwendungen auf der entsprechenden Umgebung laufen lassen (Config once, run anything).
  • Der IT-Betrieb verfügt über eine einheitliche Lösung für Entwicklung, Bereitstellung und Skalierung von Software.

Durch den Einsatz von Kubernetes können sich sowohl die Teams der Entwickler als auch des IT-Betriebs auf ihre Kernaufgaben fokussieren: Die Entwickler konzentrieren sich darauf, neue Features zu entwickeln sowie Bugs zu fixen und damit insgesamt schneller bessere Software bereitzustellen. Und für den IT-Betrieb minimiert sich der Zeitaufwand für immer neue und veränderte Setups inklusive der entsprechenden Wartung deutlich.

Managed Kubernetes Services nutzen

Das Crisp Vendor Universe Cloud Computing untersucht, welche Trends, Anforderungen und Provider in fünf relevanten Cloud-Märkten aktuell den Markt bestimmen. PlusServer wurde dabei als Accelerator unter anderem im Bereich Managed Kubernetes & Container Services eingestuft. Lassen Sie sich jetzt beraten!

Jetzt Artikel teilen:

Das könnte Sie auch interessieren