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

Trends vom OpenStack Summit in Shanghai

In China gibt‘s noch reichlich Marktpotenzial

Trends vom OpenStack Summit in Shanghai

Der Hype, der früher Tausende auf OpenStack-Summits trieb, ist anscheinend vorbei – zumindest in Nordamerika und Europa. Zum 20. Event dieser Art ging es nach Shanghai und damit auf einen Zukunftsmarkt. lesen

Consol stellt Jenkins-Alternativen vor

CI- und CD-Tools für Cloud-native Anwendungen

Consol stellt Jenkins-Alternativen vor

Cloud-native Anwendungen stellen andere Anforderungen an die Software-Entwicklung und -bereitstellung als solche, die sich mit klassische CI- und CD-Tools lösen lassen, sagt Oliver Weise, Senior Software Engineer bei Consol. Das Unternehmen stellt drei alternative CI- und CD-Open-Source-Projekte vor und beleuchtet ihr Potenzial. lesen

Google startet TensorFlow Enterprise

KI und Machine Learning für Großunternehmen

Google startet TensorFlow Enterprise

Google macht das KI- und Machine-Learning-Framework Tensorflow Enterprise-fähig. Große Unternehmen können bei der Entwicklung von KI-Anwendungen somit von Langzeit-Support, Leistung auf Cloud-Niveau und verwalteten Diensten profitieren. lesen

Wird Red Hat die Nummer 1 in Sachen Hybrid Cloud?

Maximilian Hille von Crisp Research

Wird Red Hat die Nummer 1 in Sachen Hybrid Cloud?

Im Juli war der Deal perfekt: Für insgesamt 34 Milliarden Dollar übernahm IBM Red Hat, angekündigt hatten die beiden ihn bereits im Oktober 2018. Allerspätestens seitdem setzt der Open-Source-Spezialist zum Sprung an die Spitze des Hybrid Cloud-Segments an. Aber verfügt Red Hat dafür auch über die richtige Strategie? lesen

So gelingt die Migration in die Cloud mit VMware Cloud on AWS

[Gesponsert]

Automatisiert und ohne Ausfallzeiten

So gelingt die Migration in die Cloud mit VMware Cloud on AWS

Viele Unternehmen setzen in ihrer IT-Strategie auf die Cloud. Doch immer noch fürchten IT-Verantwortliche die Komplexität der Workload-Migration – zu Unrecht, wie die VMware Cloud on AWS zeigt. lesen

Cloud Foundry: Infrastrukturagnostische Bereitstellung Cloud-nativer Microservices

(Zurück) zu VMware, hin zu Kubernetes

Cloud Foundry: Infrastrukturagnostische Bereitstellung Cloud-nativer Microservices

Das Lifecycle-Management verteilter Anwendungen könnte wohl kaum noch komplexer werden. Applikationen schneller bauen, testen, skalieren und infrastrukturagnostisch bereitstellen: Genau diese Versprechen hat sich das quelloffene Projekt Cloud Foundry auf die Fahnen geschrieben. lesen

AIOps und ein „Nervensystem“ für Multi-Cloud

Komplexe Cloud-Umgebungen transparent machen

AIOps und ein „Nervensystem“ für Multi-Cloud

Multi-Cloud-Umgebungen sind hochkomplex, sie erfordern ein aktives und plattformübergreifendes Monitoring von Infrastruktur und Applikationen. Eine Lösung: Die Kombination aus AIOps und einem intelligenten „zentralen Nervensystem" für die IT. lesen

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

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)