Veröffentlicht am: 28. April 2025

6 Minuten Lesezeit

Was ist Kubernetes (K8s)? Funktionsweise, Vorteile und Einsatz

Was ist Kubernetes (K8s)? Lerne die wichtigsten Begriffe kennen und erfahre, wie Kubernetes funktioniert und welche Vorteile es bietet.

Inhaltsverzeichnis

  1. Was ist Kubernetes?
  2. Kubernetes (K8s): die wichtigsten Begriffe
  • Container, Pod, Node, Cluster
  • Der Unterschied zu Docker
  1. Die wichtigsten Merkmale von Kubernetes
  • Automatisierte Deployments
  • Unterstützung für Hybrid- und Multi-Cloud
  • Erweiterbarkeit und Plugin-Architektur
  • Rolling Updates und Rollbacks
  • Flexible Skalierbarkeit
  • Monitoring nach dem Release
  1. Welche Vorteile bietet Kubernetes?
  • Höhere Produktivität
  • Ausfallsicherheit durch Self-Healing
  • Hohe Verfügbarkeit
  • Betrieb on-premises und in der Cloud
  • Große Mengen an Containern zentral verwalten
  • Hohe Affinität zu DevSecOps
  • Cloud-native Workloads absichern
  1. Kubernetes mit GitLab integrieren
  2. Häufige Fragen zu Kubernetes (K8s)
  • Was ist der Unterschied zwischen Kubernetes und Docker?
  • Was kann man mit Kubernetes machen?
  • Was ist ein Kubernetes-Container?
  • Warum heißt Kubernetes K8s?

Was ist Kubernetes?

Der Name Kubernetes geht auf das griechische Wort κυβερνήτης zurück, das so viel wie „Steuermann“ oder „Lotse“ bedeutet. Verbreitet ist auch die Schreibweise K8s.

Kurz gefasst ist Kubernetes eine Software, mit der sich Container in der Softwareentwicklung betreiben und verwalten lassen. Entwickelt wurde sie als Open-Source-Software für die Container-Orchestrierung. Kubernetes kommt bei der Entwicklung cloud-nativer Programme zum Einsatz. Es ermöglicht eine Microservices-Architektur und beschleunigt so die Entwicklung.

Sehen wir uns Kubernetes etwas genauer an.

Kubernetes (K8s): die wichtigsten Begriffe

Container, Pod, Node, Cluster

Kubernetes ist ein Tool für die Orchestrierung von Containern. Orchestrierung bedeutet, mehrere Computersysteme, Anwendungen und Dienste so zu koordinieren und zu verwalten, dass sich häufig wiederkehrende, umfangreiche Workflows und Prozesse ausführen lassen. Was aber ist ein Container? Containerisierung in der Softwareentwicklung bedeutet, Softwarecode zusammen mit allen Abhängigkeiten – etwa Bibliotheken und Frameworks – zu paketieren und in einem eigenen Behälter zu isolieren, dem „Container“. Ein Container ist eine vollständig funktionsfähige, portable Rechenumgebung. Mehrere Container zusammen bilden einen Pod, mehrere Pods einen Node und mehrere Nodes einen Cluster.

Der Unterschied zu Docker

Kubernetes ist ein Tool für die Container-Orchestrierung, Docker dagegen ein Tool für die Containerisierung. Docker ist die Plattform, mit der du Anwendungen containerisierst. Weil Docker leichtgewichtiger und schneller als virtuelle Maschinen ist und sich Umgebungen damit unkompliziert aufsetzen lassen, hat es sich als Standardwerkzeug für die Containerisierung durchgesetzt.

Die wichtigsten Merkmale von Kubernetes

Kubernetes ist, wie beschrieben, ein Container-Orchestrierungstool für die Verwaltung von Containern. Zu den typischen Funktionen zählen die folgenden.

Automatisierte Deployments

Beim Deployment einer Anwendung erstellt Kubernetes neue Container automatisch und entfernt bestehende. Auch neu erstellten Containern weist Kubernetes die Ressourcen automatisch zu.

Unterstützung für Hybrid- und Multi-Cloud

Kubernetes ist unabhängig vom Cloud-Anbieter und läuft in On-Premises-Umgebungen ebenso wie auf verschiedenen Cloud-Diensten (etwa AWS oder Azure). Hybrid- und Multi-Cloud-Umgebungen lassen sich damit unkompliziert aufbauen und verwalten.

Erweiterbarkeit und Plugin-Architektur

Es steht eine Vielzahl von Plugins und Erweiterungen zur Verfügung. Mit CustomResourceDefinitions (CRD) fügst du beispielsweise neue Ressourcentypen und eigene Logik hinzu, über Plugins wie CNI (Container Network Interface) oder CSI (Container Storage Interface) passt du Netzwerk und Storage an.

Rolling Updates und Rollbacks

Beim Aktualisieren einer Anwendungsversion ist das Rolling Update in Kubernetes der Standard. Zusätzlich ist ein Rollback-Mechanismus eingebaut. Deployments sind dadurch ohne Auswirkung auf den Live-Traffic und ohne Downtime möglich.

Flexible Skalierbarkeit

Kubernetes ist darauf ausgelegt, große Mengen an Containern zu verwalten, und verbessert damit die Skalierbarkeit eines Systems. Skalierbarkeit beschreibt, in welchem Umfang sich ein System erweitern lässt. In Kubernetes skalierst du, indem du die Anzahl der containerisierten Anwendungen erhöhst oder verringerst.

Monitoring nach dem Release

Mit Monitoring-Tools wie Prometheus oder Grafana überwachst du anwendungsspezifische Metriken. Über Leistungseinbußen oder Fehler nach dem Release wirst du per Alert informiert und kannst Probleme frühzeitig beheben.

Welche Vorteile bietet Kubernetes?

Kubernetes bietet die folgenden sieben Vorteile.

Höhere Produktivität

Der erste Vorteil liegt in der höheren Produktivität bei der Anwendungsentwicklung. Bei herkömmlicher Virtualisierung war für jede Anwendung ein eigenes Gastbetriebssystem nötig. In Kubernetes stellst du Anwendungen direkt auf der Container-Engine bereit, wodurch sich der Ressourcenverbrauch der Server verringert.

Ausfallsicherheit durch Self-Healing

Fällt ein Pod oder ein Node aus, stellt Kubernetes automatisch den ursprünglich definierten Zustand – das Manifest – wieder her.

Hohe Verfügbarkeit

Kubernetes bildet Cluster aus mehreren Nodes. Kommt es in einem Cluster zu einer Störung, startet Kubernetes den betroffenen Container automatisch neu. Container lassen sich außerdem auf einem anderen Node starten und führen die Verarbeitung fort – das sorgt für hohe Verfügbarkeit.

Betrieb on-premises und in der Cloud

Kubernetes lässt sich on-premises ebenso nutzen wie in der Private oder Public Cloud. Ob auf eigenen Servern oder in der Cloud: Der Betrieb ist in jeder Umgebung möglich.

Große Mengen an Containern zentral verwalten

Mit Kubernetes verwaltest und betreibst du große Mengen an Containern zentral. Indem du Konfigurationsdateien zwischen mehreren Containern teilst, übernimmst du Konfigurationsänderungen auch in großem Umfang exakt so, wie du sie definiert hast.

Hohe Affinität zu DevSecOps

DevSecOps erweitert DevOps – die Verbindung von Entwicklung und Betrieb – um die Sicherheit. Entwicklung und Sicherheit laufen parallel und mit Blick auf den Betrieb, damit zuverlässige und sichere Software zügig veröffentlicht werden kann. Weil Kubernetes viele Funktionen mitbringt, die sowohl die Entwicklung als auch der Betrieb von Anwendungen benötigt, passt es sehr gut zu DevSecOps.

Cloud-native Workloads absichern

Kubernetes basiert auf einer cloud-nativen Architektur und greift bei Best Practices zur cloud-nativen Informationssicherheit auf die Empfehlungen der CNCF (Cloud Native Computing Foundation) zurück.

So enthält Kubernetes APIs und Sicherheitskontrollen und bietet die Möglichkeit, Richtlinien für die Informationssicherheit zu definieren. Auch wenn beim Einsatz der Cloud Bedenken hinsichtlich der Sicherheit bestehen: In Kubernetes legst du Zugriffsbeschränkungen für einzelne Nutzende fest und verhinderst so unbefugte Zugriffe.

Zusätzlich definieren die Pod Security Standards drei Sicherheitsrichtlinien. Sie reichen von sehr locker bis sehr streng und bauen kumulativ aufeinander auf.

Kubernetes mit GitLab integrieren

Wenn du einen Kubernetes-Cluster mit GitLab verbindest, kannst du Apps entwickeln, bereitstellen, verwalten und überwachen. Es gibt drei Wege, GitLab mit Kubernetes zu verbinden oder innerhalb von Kubernetes zu betreiben. Du kannst sie einzeln oder in Kombination nutzen.

  • Software aus GitLab heraus auf Kubernetes bereitstellen
  • Runner, die an deine GitLab-Instanz gebunden sind, mit Kubernetes verwalten
  • Die GitLab-Anwendung und ihre Dienste auf einem Kubernetes-Cluster ausführen

Direkt loslegen: die GitLab-Kurzanleitungen

Weitere Informationen und Kontaktmöglichkeiten findest du hier.

Häufige Fragen zu Kubernetes (K8s)

Was ist der Unterschied zwischen Kubernetes und Docker?

Docker ist eines der Tools für die Containerisierung: Damit baust du Anwendungscontainer und entwickelst, verteilst und führst Anwendungen aus. Kubernetes setzt du ein, um mehrere Microservices in größerem Umfang zu verwalten. Kubernetes läuft außerdem in Clustern, Docker läuft auf Nodes. Kubernetes dient der Verwaltung von Containern, Docker unter anderem dazu, Anwendungen in Containern zu isolieren.

Was kann man mit Kubernetes machen?

Zu den typischen Einsatzmöglichkeiten von Kubernetes zählen:

  • große Mengen an Containern zentral verwalten
  • schlankere und schnellere Abläufe, einschließlich des Starts von Containern
  • automatisierte Deployments
  • Ausfallsicherheit durch Self-Healing
  • hohe Verfügbarkeit
  • Betrieb on-premises und in der Cloud
  • hohe Affinität zu DevSecOps
  • cloud-native Workloads absichern

Was ist ein Kubernetes-Container?

Containerisierung bedeutet, Softwarecode zusammen mit allen Abhängigkeiten wie Bibliotheken und Frameworks zu paketieren und in einem eigenen Behälter zu isolieren, dem „Container“. Ein Kubernetes-Container ist eine vollständig funktionsfähige, portable Rechenumgebung und ermöglicht als auf verschiedenen Plattformen bereitstellbares Programm eine Microservices-Architektur.

Warum heißt Kubernetes K8s?

K8s ist die Kurzform von Kubernetes: Zwischen dem ersten Buchstaben K und dem letzten Buchstaben s stehen acht weitere Buchstaben. Der Name selbst geht auf das griechische κυβερνήτης zurück und bedeutet „Steuermann“ beziehungsweise „Lotse“.

Feedback erwünscht

Hat dir dieser Blogbeitrag gefallen? Hast du Fragen oder Feedback? Erstelle ein neues Diskussionsthema im GitLab-Community-Forum und lass andere an deinen Eindrücken teilhaben.

Feedback teilen

Beginne noch heute, schneller zu entwickeln

Entdecke, was dein Team mit der intelligenten Orchestrierungsplattform für DevSecOps erreichen kann.