Kubernetes
Die Plattform zur Container-Orchestrierung
Kubernetes ist ein Open-Source-System zur Automatisierung von Deployment, Skalierung und Verwaltung containerisierter Anwendungen. Es gruppiert Container zu logischen Einheiten für einfache Verwaltung und Auffindbarkeit und arbeitet fortlaufend daran, dass der tatsächliche Zustand eines Clusters dem von dir deklarierten Zustand entspricht.
So funktioniert es
Ein Kubernetes-Cluster besteht aus einer Control Plane (API-Server, Scheduler, Controller Manager, etcd) und Worker-Knoten, auf denen eine Container-Runtime und der kubelet-Agent laufen. Du beschreibst den Soll-Zustand – wie viele Replikas eines Pods laufen sollen, welche Ressourcen sie brauchen, wie sie bereitgestellt werden sollen – als Objekte in der API, und die Controller von Kubernetes gleichen den Cluster fortlaufend an diesen Zustand an.
Kernkonzepte
- Pod — die kleinste deploybare Einheit: ein oder mehrere Container, die Netzwerk und Speicher teilen.
- Deployment — verwaltet eine Menge von Replika-Pods und übernimmt Rolling Updates und Rollbacks.
- Service — ein stabiler Netzwerk-Endpunkt, der Traffic auf eine Menge von Pods verteilt.
- Namespace — eine Möglichkeit, einen Cluster in isolierte logische Umgebungen zu unterteilen.
- Controller — eine Regelschleife, die den Zustand des Clusters beobachtet und ihn zum Soll-Zustand bewegt.
Warum Teams Kubernetes einsetzen
- Portabel. Dieselben Manifeste laufen auf jedem konformen Cluster, vom Laptop bis zu einem großen Multi-Region-Deployment.
- Selbstheilend. Fehlgeschlagene Container werden neu gestartet, ungesunde Knoten werden geleert, und Workloads werden automatisch neu eingeplant.
- Erweiterbar. Custom Resource Definitions und Controller lassen dich die API erweitern, um deine eigenen domänenspezifischen Ressourcen zu verwalten.
- Ökosystem. Fast jedes CNCF-Projekt – Service Meshes, Observability-Werkzeuge, GitOps-Controller – ist darauf ausgelegt, auf Kubernetes zu laufen und es zu erweitern.
Erste Schritte
Installiere kubectl, besorge dir Zugang zu einem Cluster und wende ein Deployment- und Service-Manifest an, um deinen ersten Workload zu betreiben. Die folgenden Anleitungen bauen darauf mit gängigen Mustern für den Betrieb echter Anwendungen auf.