Definition: Orchestrierung von Containern mit K8s

Was ist Kubernetes (K8s)?

| Autor / Redakteur: Stefan Luber / Florian Karlstetter

Container-Orchestrierung mit Kubernetes - von Google entworfen und an die Cloud Native Computing Foundation gespendet. Funktionen und Vorteile der Open-Source-Plattform im Überblick.
Container-Orchestrierung mit Kubernetes - von Google entworfen und an die Cloud Native Computing Foundation gespendet. Funktionen und Vorteile der Open-Source-Plattform im Überblick. (Bild: gemeinfrei (geralt) / Pixabay)

Kubernetes ist eine ursprünglich von Google entwickelte Open-Source-Plattform zur Orchestrierung von Containern. Sie gestattet das automatisierte Einrichten, Skalieren, Betreiben und Warten containerisierter Anwendungen und unterstützt Container-Engines wie Docker und zahlreiche Cloud-Computing-Plattformen.

Kubernetes wird oft mit "K8s" abgekürzt. Es handelt sich um eine Open-Source-Plattform, mit der sich Container orchestrieren lassen. Kubernetes vereinfacht und automatisiert das Einrichten, Skalieren, Betreiben und Warten containerisierter Anwendungen. Die Plattform fasst die Container-Einheiten zu Clustern bestehend aus virtuellen oder physischen Nodes zusammen und arbeitet Master-Slave-basiert.

Das Steuer in der Hand: K8s zur Automatisierung, Bereitstellung, Skalierung und Verwaltung von containerisierten Anwendungen.
Das Steuer in der Hand: K8s zur Automatisierung, Bereitstellung, Skalierung und Verwaltung von containerisierten Anwendungen. (Bild: Kubernetes)

Ursprünglich wurde Kubernetes von Google entworfen. Die erste Version der Software wurde im Jahr 2015 veröffentlicht. Später spendete Google Kubernetes an die Cloud Native Computing Foundation (CNCF), die heute für die Weiterentwicklung der Plattform zuständig ist und weitere Projekte aus dem Cloud Native Computing Umfeld betreut. Kubernetes steht unter Apache-Lizenz 2.0 und unterstützt verschiedene Container-Engines wie Docker sowie gängige Cloud-Plattformen wie Microsoft Azure, Amazon Web Services oder Oracle Cloud Infrastructure und viele mehr.

Zentrale Funktionen von Kubernetes

Kubernetes bietet ein riesiges Leistungsspektrum und stellt zahlreiche Funktionen zum Einrichten, Skalieren, Betreiben, Verwalten und Warten von Container-basierten Anwendungen zur Verfügung. Wichtige Funktionen sind:

  • automatisierte Container-Einrichtung und automatisierter Rollout der Software
  • Berücksichtigung der Ressourcenanforderung des Deployments hinsichtlich Rechenzeit und Speicherplatz
  • Bereitstellung von persistentem Storage für die zustandslosen Container
  • automatische Skalierung des Containerbetriebs
  • intelligente Erkennung von Netzwerkverbindungen und automatische Lastverteilung
  • Bereitstellung von Redundanzen für hochverfügbare Systeme

Die Funktionsweise von Kubernetes

Um die Funktionsweise von Kubernetes zu verstehen, ist die Kenntnis der grundlegenden von Kubernetes verwendeten Begrifflichkeiten notwendig. Kubernetes nutzt folgende Begriffe:

  • Pods
  • Nodes (auch teilweise als Minions bezeichnet)
  • Cluster

Ein Pod ist die kleinste Einheit innerhalb der Kubernetes-Architektur. Die Pods beinhalten ein oder mehrere Container. Nodes sind virtuelle oder physische Systeme, auf denen die Pods als Prozesse laufen. Mehrere Nodes werden zu einem Cluster zusammengefasst.

Grundsätzlich arbeitet Kubernetes in einer Master-Slave-Architektur. Eine zentrale Rolle innerhalb dieser Architektur übernimmt der Kubernetes-Master. Er nimmt die Befehle des Administrators entgegen und steuert die Nodes mit ihren Pods und Containern. Hierfür weist er Ressourcen zu und bestimmt die Pods eines Nodes, die eine bestimmte Aufgabe ausführen sollen. Um die Container zu verwalten, existieren auf dem Kubernetes-Master folgende Prozesse:

  • API Server
  • etcd
  • Controller Manager
  • Scheduler

Ein zentraler Prozess des Masters ist der API Server. Er kommuniziert über eine REST-Schnittstelle und bedient alle weiteren Komponenten und externen oder internen Dienste. etcd ist eine Key-Value-Datenbank, in der sich Konfigurationsdaten speichern lassen. Unter anderem nutzt der API Server etcd als persistenten Speicher. Der Controller Manager stellt Kontrollmechanismen zur Verfügung und kann über den API Server Stati lesen oder schreiben. Mithilfe des Schedulers legt Kubernetes fest, auf welchem Node welcher Pod laufen soll. Er berücksichtigt die vorhandenen Ressourcen und überwacht die Auslastung der Nodes.

Die Kubernetes Nodes sind virtuelle oder physische Systeme, auf denen die Container in Pods laufen. Wichtige Komponenten jedes Nodes sind:

  • Kubelet
  • Kube-Proxy
  • cAdvisor

Das Kubelet ist für das Starten und Stoppen von Containern zuständig und kommuniziert mit dem Controller Manager des Masters. Plant der Master beispielsweise einen Pod für einen Node ein, weist der Controller Manager über den Kubelet die Container-Engine an, den Container zu starten. Kubelet sendet die Stati der Container zum Master. Der Master kann aufgrund dieser Informationen Container anhalten, neu starten oder ersetzen. Meldet sich ein Kubelet eines Nodes nicht mehr, kann der Master über den Controller Manager einen anderen Node beauftragen, die ausgefallenen Pods mit ihren Containern dort zu starten. Der Kube-Proxy stellt Lastausgleichsfunktionen zur Verfügung. Über den cAdvisor lassen sich die aufgezeichneten Ressourceninformationen eines Containers abfragen.

Abgrenzung von Kubernetes zu Docker oder anderen Container-Engines

Die Begriffe Kubernetes und Docker oder die Bezeichnungen anderer Container-Engines werden oft in ähnlichen Zusammenhängen verwendet. Kubernetes lässt sich als Container-Orchestrierungsplattform jedoch deutlich von den Container-Engines abgrenzen. Zwar kann Kubernetes Container deployen, betreiben und verwalten, doch ist K8s nicht in der Lage, die eigentlichen Container bereitzustellen. Hierfür ist immer eine Container-Engine wie Docker notwendig. Die Engine stellt die Container bereit, Kubernetes steuert und verwaltet sie. Die Kombination macht es also aus.

Grundlagen der Container-Virtualisierung

Container-Technologien - von Docker-Engines bis Kubernetes (K8s)

Grundlagen der Container-Virtualisierung

15.09.16 - Application Container waren im vergangenen Jahr der letzte Schrei in der IT-Szene, 2016 haben sich Docker und Co bewiesen. Sollten Sie als Cloud-Anwender sich in die Materie einarbeiten? Lohnt sich der Einsatz dieser „neuen“ Technologie? Kann sie möglicherweise sogar die Cloud ersetzen? lesen

Vorteile durch den Einsatz von Kubernetes

Durch den Einsatz von Kubernetes zur Orchestrierung von Containern ergeben sich zahlreiche Vorteile. Neue Funktionen oder Services lassen sich im Vergleich zu monolithisch arbeitenden herkömmlichen Systemen wesentlich schneller ausrollen. Manuelle Prozesse, die für die Bereitstellung und Skalierung der Container-basierten Anwendungen notwendig sind, werden überflüssig und durch Kubernetes automatisiert.

Ein mit Kubernetes realisiertes System arbeitet stabil und mit hoher Ausfallsicherheit. Es kann festgelegt werden, wie viele Pods für besonders kritische Services vorzuhalten sind. Fällt ein Pod mit seinen Containern aus, ist der direkte Weiterbetrieb in einem bereitgehaltenen Pod möglich.

Ein weiterer Vorteil ergibt sich in der Skalierung. Benötigen bestimmte Anwendungen mehr Ressourcen, kann Kubernetes diese schnell und einfach zur Verfügung stellen.

Update-Prozesse lassen sich dank sogenannter Rolling Updates ohne Außenwirkung durchführen. Hierbei werden die Softwarestände der Pods nach und nach aktualisiert. Für den Anwender bleibt der Service durchgängig verfügbar.

Die Pods mit ihren Container stellen sicher, dass Anwendungen plattformunabhängig laufen. Dies sorgt für eine hohe Reproduzierbarkeit und den problemlosen Transfer von Anwendungen in andere Umgebungen.

Volle Ausschöpfung des Cloud-Potenzials mit Kubernetes

Mit Kubernetes und Containern lässt sich das volle Potenzial des Cloud Computings ausschöpfen. Kubernetes arbeitet mit privaten, öffentlichen, hybriden oder Multi-Cloud-Umgebungen zusammen und bietet eine große Flexibilität bei der Realisierung von Anwendungen. Die Container mit ihren Anwendungen sind mit geringem Aufwand zwischen verschiedenen Systemen und Cloud-Umgebungen verschiebbar. Alle gängige Cloud-Plattformen unterstützen Kubernetes.

Dank der Orchestrierungsplattform ist die Steuerung der Container mit ihren Anwendungen unabhängig von der zugrundeliegenden Cloud-Umgebung möglich. Je nach Anforderung und benötigten Ressourcen können Anwendungen in die jeweils optimale Umgebung verlagert werden. Durch die Einbindung der Cloud-Lösungen verschiedener Anbieter werden Abhängigkeiten vermieden. Kubernetes organisiert für Anwendungen mit großen Ressourcenanforderungen den Zugriff auf die Funktionen und Leistungen verschiedener Anbieter.

Cloud Native, Microservices, Serverless Computing & Co.: Weitere Definitionen im Cloud Computing Wiki

Definitionen rund um Cloud ComputingVon AWS bis XaaS: Alle relevanten Schlagworte aus dem Bereich Cloud Computing finden Sie verständlich erklärt in unseren Definitionen. Ganz im Sinne eines kleinen, aber feinen Glossars lesen Sie hier neutral verfasste Erklärungen zu den wichtigsten Begriffen. Als Service für Sie haben wir die hier erklärten Begriffe in unseren Beiträgen auch direkt mit den zugehörigen Lexikoneinträgen verlinkt. So können Sie die wichtigsten Begriffe direkt dort nachschlagen, wo sie im Text auftauchen.  

Zum Special: Definitionen rund um Cloud Computing

Kommentare werden geladen....

Kommentar zu diesem Artikel abgeben

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Aktuelle Beiträge zu diesem Thema

Preview von Azure Spring Cloud startet

Microsoft und Pivotal managen skalierbare Microservices

Preview von Azure Spring Cloud startet

Azure Spring Cloud richtet sich an Entwickler, die produktive Microservices erstellen wollen – ohne sich dabei um die darunterliegende Container-Infrastruktur kümmern zu müssen. Jetzt haben Microsoft und Pivotal ihr gemeinsames Angebot als Private Preview gestartet. lesen

Monitoring von Cloud-Umgebungen und Containern

Hosts dynamisch konfigurieren

Monitoring von Cloud-Umgebungen und Containern

Die Münchner Firma Tribe29 hat nach einem Jahr Entwicklungszeit eine neue Version seiner Monitoring-Lösung Checkmk vorgestellt. Checkmk 1.6 biete intelligentes Monitoring von Cloud- und Container-Infrastrukturen sowie einen neuen Dienst zum dynamischen Konfigurieren von Hosts. lesen

Entwickeln für Serverless-Umgebungen

Function as a Service

Entwickeln für Serverless-Umgebungen

Wer vorrangig eine Anwendung coden und sie nicht zusätzlich orchestrieren möchte, entwickelt für Serverless. Doch der „Function as a Service“- oder kurz FaaS-Ansatz hat seine ganz eigenen Spielregeln und bricht mit dem klassischen DevOps-Gedanken. lesen

Wo Microservice-Architekturen sinnvoll sind

Bereitstellung nach dem Prinzip „Teile und herrsche“

Wo Microservice-Architekturen sinnvoll sind

Leichtgewichtig, zustandslos und bedarfsgerecht skalierbar: Microservice-Architekturen haben es in sich. Gleichzeitig verändern sie die Art und Weise, wie Unternehmen ihre Software entwickeln und bereitstellen. lesen

„Veränderung erreichen wir nur, wenn wir etwas verändern!“

3. Google Cloud Summit 2019 in München

„Veränderung erreichen wir nur, wenn wir etwas verändern!“

Die Google Cloud steht heute für „Sicherheit, Kontinuität und Innovation“. Mit diesem Credo eröffnete DACH-Chefin Annette Maier den dritten Google Cloud Summit in München, mit mehr als 2.000 Teilnehmern Googles größter Kunden- und Partnerevent in Deutschland, Österreich und der Schweiz. lesen

Die Cloud – kein Ort für Silos

Vieles ändert sich und bleibt doch gleich

Die Cloud – kein Ort für Silos

Hybrid- und Multi-Cloud-Strategien haben die IT in vielen Unternehmen massiv verändert. Anwendungs-Workloads werden in einem Mix aus öffentlichen und privaten Cloud-Plattformen, orchestriert über Container, zwischen den Umgebungen betrieben. Doch dies wirft ein Problem auf, das die IT seit jeher verfolgt: Silos, also in sich geschlossene Anwendungslandschaften. lesen

Updates für CaaS und Cloud Application Platform

Suse verbessert Anwendungsbereitstellung

Updates für CaaS und Cloud Application Platform

Suse hat auf dem Cloud Foundry Summit mit CaaS Platform 4 und Cloud Application Platform 1.5 Updates für die containerisierte und Cloud-native Anwendungsbereitstellung vorgestellt. Erstmals kommt dabei das Open Source-Projekt Cilium zum Einsatz. lesen

Die Überwachung von SLAs reicht nicht aus

Performance-Management-Strategien

Die Überwachung von SLAs reicht nicht aus

Es gibt mehrere Gründe, warum Unternehmen ihre IT-Systeme durchgängig überwachen sollten: die wichtigsten sind die wachsende Komplexität, die Umstellung auf Container und Mikroservices, DevOps sowie die Fokussierung auf digitale Erlebnisse. lesen

Vom Legacy-System hin zum hybriden Technologie-Stack

Rackspace erweitert Hybrid-Cloud-Portfolio

Vom Legacy-System hin zum hybriden Technologie-Stack

Mit verbesserten Cloud-Native-Funktionen sowie Erweiterungen für VMware Cloud auf AWS und API-Management ergänzt Rackspace seine Hybrid-Cloud-Angebote. lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 45862509 / Definitionen)