Container-Orchestrierung in der Cloud
Container-Orchestrierung in der Cloud[Bearbeiten]
Während ein einzelner Container (z. B. Docker) eine Anwendung verpackt, kümmert sich die Orchestrierung um das Management von hunderten oder tausenden dieser Container über einen Cluster von Servern hinweg. Der Marktführer in diesem Bereich ist zweifellos Kubernetes (K8s).
Hier sind die zentralen Konzepte und Aufgaben einer Orchestrierungslösung:
1. Kernaufgaben der Orchestrierung[Bearbeiten]
Ein Orchestrator übernimmt Aufgaben, die manuell kaum zu bewältigen wären:
- Scheduling: Die Entscheidung, auf welchem physischen oder virtuellen Server ein Container gestartet werden soll (basierend auf verfügbaren Ressourcen wie CPU und RAM).
- Self-Healing: Wenn ein Container abstürzt oder ein Server ausfällt, startet der Orchestrator automatisch neue Instanzen auf gesunden Knoten.
- Horizontal Scaling: Automatisches Hinzufügen oder Entfernen von Container-Instanzen je nach aktueller Last.
- Service Discovery & Load Balancing: Container erhalten eine feste Netzwerkadresse und der Datenverkehr wird intelligent verteilt.
2. Zentrale Architektur-Konzepte[Bearbeiten]
In der Welt von Kubernetes arbeitet man mit folgenden Abstraktionen:
- Pods: Die kleinste Einheit. Ein Pod kapselt einen oder mehrere Container, die sich ein Netzwerk und Speicher teilen.
- Nodes: Die tatsächlichen Server (Worker), auf denen die Pods laufen.
- Control Plane (Master): Das Gehirn des Clusters, das den Soll-Zustand überwacht und Befehle an die Nodes gibt.
3. Deployment-Strategien[Bearbeiten]
Orchestrierung ermöglicht es, Software ohne Ausfallzeiten (Zero Downtime) zu aktualisieren:
- Rolling Updates: Ein alter Container nach dem anderen wird durch einen neuen ersetzt.
- Blue-Green Deployment: Eine komplett neue Version wird parallel zur alten hochgefahren; wenn alles läuft, wird der gesamte Traffic umgeschaltet.
4. Cloud-Native Lösungen[Bearbeiten]
Die großen Cloud-Anbieter bieten "Managed Kubernetes"-Dienste an, bei denen sie sich um die Wartung der Control Plane kümmern:
| Anbieter | Dienstname |
|---|---|
| AWS | Elastic Kubernetes Service (EKS) |
| Azure | Azure Kubernetes Service (AKS) |
| Google Cloud | Google Kubernetes Engine (GKE) |
5. Warum ist das wichtig?[Bearbeiten]
Ohne Orchestrierung wäre eine Microservices-Architektur nicht wartbar. Sie ermöglicht es Entwicklern, sich auf den Code zu konzentrieren, während die Infrastruktur sich selbst verwaltet und bei Bedarf skaliert.
Zusammenfassend: Wenn Container die Zutaten sind, dann ist die Orchestrierung der Chefkoch, der sicherstellt, dass alle Gerichte gleichzeitig und in der richtigen Qualität beim Gast ankommen.