Kubernetes – Ein Steuerstand für Container
Kubernetes kommt vom griechischen Wort für Steuermann und beinhaltet eine von Google als Open-Source entwickelte Container-Orchestrierungsplattform. Sie wird generell für die Bereitstellung, Verwaltung und Überwachung in Umgebungen verwendet, die auf Basis von Containern virtualisiert wurden.
Insbesondere komplexe Lösungen – mit einer großen Anzahl von Containern – erfordern eine steuernde Instanz: Als Container Cluster Manager übernimmt Kubernetes die Zuweisung von Ressourcen und regelt beispielsweise die Zuordnung von Containern zu Nodes. In HA-Umgebungen sorgt dieser Steuermann bei einem Ausfall eines Cluster-Nodes dafür, dass Workloads automatisch auf andere Knoten verteilt werden. Das gilt auch für die Lastverteilung der kleinsten deploybaren Einheiten unter Kubernetes: den Pods.
Der Dirigent: K8s
K8s gilt als das zurzeit beliebteste Orchestrierungswerkzeug, um Container effektiv verwalten zu können. Es befehligt Linux-Distributionen ebenso wie MacOS und Windows. Das Tool wurde von Google als Open-Source-Software erstellt und nach der Gründung der Cloud Native Computing Foundation (CNCF) in 2015 an diese gespendet. Ziel war dabei, dass Cloud-Computing, Microservices und Container-Virtualisierung gefördert werden.
Leicht- oder Schwergewicht
Vom eigentlichen Kubernetes (K8s) – das sich als Quasi-Standard herausgebildet hat – wurde noch eine schlankere Variante entworfen: K3s ist lediglich einige Megabyte groß, weniger leistungshungrig und dennoch voll kompatibel zu K8s. Daher eignet es sich hervorragend in Systemen mit ARMv7 und ARM64 CPUs als auch mit geringerer Speicherausstattung. Rein funktional unterscheidet sich K3s nicht von K8s.
Die Installation
Kubernetes zu installieren bereit wegen der Komplexität mitunter Schwierigkeiten. Im ersten Step muss der Nutzer entscheiden, ob (Bare-Metal) und welches Betriebssystem zum Einsatz kommt, sowie welche Distribution – K8s (Normal Kubernetes) oder K3s (Lightweight Kubernetes) verwendet werden soll.
Im nächsten Schritt legt er via Kubernetes fest, ob ein Cluster mit einem (minikube) oder mehreren Nodes (Kubeadm) aufbauen wollen. Die Toolkits minikube und Kubeadm sind Teil von Kubernetes – allerdings nicht die einzigen. So gilt beispielsweise auch Docker als Werkzeug für Kubernetes.
Anschließend folgt die Einrichtung und Konfiguration der einzelnen Komponenten wie API-Server etc. Controller und Scheduler sowie der Worker Nodes. Hierbei ist eine gründliche Planung und Kenntnis der zugrunde liegenden Architektur von Kubernetes essenziell, um eine reibungslose Installation und Konfiguration zu gewährleisten.
Welche Alternativen für Kubernetes gibt es?
- Amazon ECS
- Azk
- Docker Swarm
- Gardener
- Nomad
- OpenShift
- Rancher
Was bringt Kubernetes?
Vorteile:
- Logische Organisation der Container über Pods.
- Mechanismen für Hochverfügbarkeit (Infrastruktur und Applikationen) vorhanden.
- Als Google-Entwicklung wurden Cloud-Aspekte umfassend berücksichtigt.
- Viele Speicheroptionen (u.a. SAN und Cloud).
- Abgetürzte Apps oder Pods werden automatisch neu gestartet
- Hohe Community-Resonanz.
- Optimiert für viele kleine Cluster.
Nachteile:
- Nicht jede Anwendung ist wirtschaftlich oder technisch sinnvoll zu integrieren.
- Know-How im Segment unabdingbar.