# Was ist Kubernetes?

Kubernetes ist eine Open-Source-Plattform zur automatisierten Bereitstellung, Skalierung und Verwaltung von containerisierten Anwendungen. Sie organisiert Container in Clustern und sorgt dafür, dass Dienste zuverlässig und effizient laufen. Durch Funktionen wie Lastverteilung, Selbstheilung und Rollouts vereinfacht Kubernetes den Betrieb moderner Anwendungen erheblich.

## Was ist Kubernetes?

Kubernetes (K8s) ist ein [Open-Source](https://www.ionos.de/digitalguide/server/knowhow/was-ist-open-source/)-System zur Orchestrierung von Containern, das ursprünglich von Google entwickelt und heute von der Cloud Native Computing Foundation (CNCF) geführt wird. Es verwaltet Container-Anwendungen in verteilten Umgebungen, indem es **automatisiert Container (neu) startet, skaliert, überwacht und bei Bedarf ersetzt**.

Die in der Programmiersprache [Go](https://www.ionos.de/digitalguide/server/knowhow/golang/) geschriebene Architektur basiert auf einem Master-Node und mehreren Worker-Nodes, wobei verschiedene Komponenten wie der Scheduler für zentrale Verwaltungsaufgaben zuständig sind. Über deklarative Konfigurationen (z. B. in YAML-Dateien) definiert man gewünschte Zustände, die Kubernetes kontinuierlich sicherstellt. Das Tool zielt sowohl auf die Nutzung in der [Cloud](https://www.ionos.de/digitalguide/server/knowhow/was-ist-eine-cloud/) als auch auf den Einsatz auf lokalen Rechnern oder in [On-Premises](https://www.ionos.de/digitalguide/server/knowhow/was-ist-on-premises/)-Rechenzentren ab.

## Wie funktioniert Kubernetes?

Kubernetes ist ein Container-Orchestrierungs-System. Das bedeutet: Die Software soll nicht etwa [Container](https://www.ionos.de/digitalguide/server/knowhow/server-container-virtualisierung-ohne-emulation/) erstellen, sondern diese verwalten. Dafür setzt Kubernetes auf **Automatisierung von Prozessen**. So fällt es Entwicklerinnen und Entwicklern leichter, Anwendungen zu testen, zu warten oder zu veröffentlichen. Die Kubernetes-Architektur besteht aus einer klaren Hierarchie:

- **Container**: Ein Container enthält Anwendungen und Software-Umgebungen.
- **Pod**: Diese Einheit in der Kubernetes-Architektur versammelt Container, die für eine Anwendung zusammenarbeiten müssen.
- **Node**: Einer oder mehrere [Kubernetes-Pods](https://www.ionos.de/digitalguide/server/konfiguration/kubernetes-pod/) laufen auf einem Node, der sowohl eine virtuelle als auch eine physikalische Maschine sein kann.
- **Cluster**: Mehrere Nodes werden zu einem [Kubernetes-Cluster](https://www.ionos.de/digitalguide/server/knowhow/kubernetes-cluster/) zusammengefasst.

Zudem basiert die Kubernetes-Architektur auf dem **Prinzip von Master- und Worker-Nodes**. Als Worker-Nodes, also die kontrollierten Teile des Systems, werden die beschriebenen Nodes eingesetzt. Sie stehen unter der Verwaltung und Kontrolle des Kubernetes-Masters.

Zu den Aufgaben eines Masters gehört es zum Beispiel, Pods auf Nodes zu verteilen. Durch die **ständige Überwachung** kann der Master auch eingreifen, sobald ein Node ausfällt, und diesen direkt doppeln, um den Ausfall zu kompensieren. Der Ist-Zustand wird immer mit einem Soll-Zustand verglichen und bei Bedarf angepasst. Solche Vorgänge geschehen automatisch. Der Master ist aber auch der Zugriffspunkt für Administratoren. Diese können darüber die Container orchestrieren.

### Kubernetes-Node

Der Worker-Node ist ein physischer oder virtueller Server, auf dem ein oder mehrere Container aktiv sind. Auf dem Node befindet sich eine Laufzeitumgebung für die Container. Außerdem ist das sogenannte **Kubelet** aktiv. Hierbei handelt es sich um einen Bestandteil, der die Kommunikation zum Master ermöglicht. Die Komponente startet und stoppt zudem Container. Mit dem cAdvisor hat das Kubelet einen Dienst, der die Ressourcenauslastung aufzeichnet. Dies ist für Analysen interessant. Schließlich gibt es noch den Kube-proxy, mit dem das System [Load-Balancing](https://www.ionos.de/digitalguide/server/knowhow/bessere-serverzugriffszeiten-durch-load-balancer/) durchführt und Netzwerkverbindungen über [TCP](https://www.ionos.de/digitalguide/server/knowhow/tcp-vorgestellt/) oder andere Protokolle ermöglicht.

### Kubernetes-Master

Der Master ist ebenfalls ein Server. Um die Kontrolle und Überwachung der Nodes zu gewährleisten, läuft auf dem Master der **Controller Manager**. Diese Komponente wiederum hat mehrere Prozesse in sich vereint:

- Der **Node Controller** überwacht die Nodes und reagiert, wenn einer ausfällt.
- Der **Replication Controller** stellt sicher, dass immer die gewünschte Zahl von Pods gleichzeitig läuft. In modernen Setups wird er weitgehend durch **ReplicaSets** ersetzt, die in der Regel über Deployments verwaltet werden.
- Der **Endpoints Controller** kümmert sich um das Endpoint-Objekt, das für die Verbindung von Services und Pods zuständig ist.
- **Service Account und Token Controller** verwalten den Namespace und erstellen [API](https://www.ionos.de/digitalguide/websites/web-entwicklung/was-ist-eine-api/)-Zugriffstoken.

Neben dem Controller Manager läuft eine Datenbank namens [etcd](https://www.ionos.de/digitalguide/hosting/hosting-technik/was-ist-etcd/). In dieser [Key-Value-Datenbank](https://www.ionos.de/digitalguide/hosting/hosting-technik/key-value-store/) ist die Konfiguration des Clusters gespeichert, für den der Master zuständig ist. Mit der Komponente Scheduler kann der Master automatisiert die Verteilung von Pods auf Nodes übernehmen. Die Verbindung zum Node funktioniert über den im Master integrierten API-Server. Dieser stellt eine [REST](https://www.ionos.de/digitalguide/server/knowhow/rest-die-http-loesung-fuer-webservices/)-Schnittstelle zur Verfügung und tauscht per [JSON](https://www.ionos.de/digitalguide/server/knowhow/was-ist-json/) Informationen mit dem Cluster aus. So können z. B. auch die verschiedenen Controller auf die Nodes zugreifen.

## Kubernetes und Docker: Konkurrenten?

Die Frage, wer im Vergleich [Kubernetes vs. Docker](https://www.ionos.de/digitalguide/server/knowhow/kubernetes-vs-docker/) am besten performt, stellt sich im Grunde genommen nicht, denn **man benutzt die beiden Programme miteinander**. [Docker](https://www.ionos.de/digitalguide/server/konfiguration/docker-tutorial-installation-und-erste-schritte/) (oder eine andere Container-Plattform wie rkt) ist auch bei Kubernetes für das Zusammenstellen und Ausführen von Containern zuständig. Kubernetes greift auf diese Container zu und übernimmt die Orchestrierung bzw. die Automatisierung von Prozessen. Kubernetes allein kann die Erstellung von Containern nicht leisten.

Eine Konkurrenz besteht höchstens zu **Docker Swarm**. Dabei handelt es sich um ein Tool zur [Docker-Orchestrierung](https://www.ionos.de/digitalguide/server/knowhow/docker-orchestration-mit-swarm-und-compose/). Dieses Tool arbeitet ebenfalls mit Clustern und bietet ähnliche Funktionen wie Kubernetes.

## Was sind die Vorteile von Kubernetes?

Kubernetes überzeugt mit einer Vielzahl von Vorteilen, die sowohl Skalierbarkeit als auch Betriebssicherheit und Effizienz verbessern.

**Automatisierte Skalierung**: Um Kosten zu sparen, kann Kubernetes Ressourcen perfekt ausnutzen. Statt derzeit nicht benötigte Maschinen weiterlaufen zu lassen, kann Kubernetes diese Ressourcen wieder freigeben und entweder für andere Tasks einsetzen oder einfach gar nicht benutzen – was Kosten sparen kann.

**Hohe Ausfallsicherheit**: Durch Replikation und automatische Wiederherstellung stellt Kubernetes sicher, dass Anwendungen auch bei Fehlern oder Ausfällen einzelner Komponenten weiterlaufen.

**Ressourcenschonende Orchestrierung:** Pods und Container werden intelligent auf die verfügbaren Nodes verteilt, wodurch Rechenleistung optimal genutzt wird.

**Einfaches Rollout und Rollback:** Neue Versionen von Anwendungen lassen sich mit minimalem Aufwand ausrollen. Falls nötig, ist auch ein schnelles Zurückrollen auf frühere Versionen möglich.

**Plattformunabhängigkeit:** Kubernetes läuft auf lokalen Servern, in der Cloud oder in einer [Hybrid Cloud](https://www.ionos.de/digitalguide/server/knowhow/hybrid-cloud/); die Workloads bleiben dabei portabel.

**Service Discovery und [Load Balancing](https://www.ionos.de/digitalguide/server/knowhow/bessere-serverzugriffszeiten-durch-load-balancer/)**: Kubernetes erkennt automatisch Dienste innerhalb des Clusters und verteilt den Datenverkehr gleichmäßig, ohne dass externe Load-Balancer nötig sind.

**Effizientes Management durch APIs:** Über eine zentrale API können alle Cluster-Komponenten verwaltet und automatisiert auch durch externe Tools und CI/CD-Pipelines angesteuert werden.

## Wofür eignet sich Kubernetes?

In der Software-Entwicklung spielt Kubernetes inzwischen eine große Rolle – besonders bei agilen Projekten. Der **Zyklus von Entwicklung, Testing und Deployment** (und allen möglichen Zwischenschritten) wird durch die Container-Orchestrierung vereinfacht. Kubernetes ist besonders dann geeignet, wenn Anwendungen in Containern betrieben werden und eine skalierbare, hochverfügbare Infrastruktur benötigt wird. Darüber hinaus lassen sich folgende Use Cases festmachen:

- **Microservice-Architekturen**: In der Praxis wird K8s häufig für den Betrieb von [Microservice-Architekturen](https://www.ionos.de/digitalguide/websites/web-entwicklung/microservice-architecture-so-funktionieren-microservices/) genutzt, bei denen viele kleine Dienste unabhängig voneinander entwickelt, getestet und aktualisiert werden. Unternehmen setzen Kubernetes ein, um Entwicklungs- und Produktionsumgebungen zu automatisieren und schneller auf neue Anforderungen reagieren zu können.
- **CI/CD**: Auch im Bereich [Continuous Integration](https://www.ionos.de/digitalguide/websites/web-entwicklung/continuous-integration/) und [Continuous Deployment](https://www.ionos.de/digitalguide/websites/web-entwicklung/continuous-delivery/) findet Kubernetes Anwendung, da sich auf diese Weise Deployments automatisieren und Versionen sauber verwalten lassen.
- **Multi- und Hybrid-Cloud**: In Multi-Cloud- oder Hybrid-Cloud-Strategien dient Kubernetes dazu, Workloads plattformunabhängig bereitzustellen und flexibel zwischen verschiedenen Cloud-Anbietern oder Rechenzentren zu verschieben.
- **Big Data**: Darüber hinaus eignet sich Kubernetes auch für [Big-Data](https://www.ionos.de/digitalguide/online-marketing/web-analyse/big-data-definition-und-beispiele/)- und [Machine-Learning](https://www.ionos.de/digitalguide/online-marketing/web-analyse/was-ist-machine-learning-so-lernen-maschinen-denken/)-Projekte, bei denen viele kurzlebige Container parallel laufen.
- **Große Plattformen**: Kubernetes ist auch für große Plattformen mit hoher Nutzerzahl unverzichtbar, um Traffic-Spitzen automatisch zu bewältigen und Ausfallsicherheit zu garantieren.


This is a markdown version of: [https://www.ionos.de/digitalguide/server/knowhow/was-ist-kubernetes/](https://www.ionos.de/digitalguide/server/knowhow/was-ist-kubernetes/) for AI/LLM consumption.