Wissen von A bis Z

Container Orchestrierung

Ein einzelner Container ist ein Instrument, aber erst die Orchestrierung macht daraus eine perfekt aufeinander abgestimmte Symphonie aus automatisierten Microservices.

Container-Orchestrierung bezeichnet das automatisierte Deployment, die Skalierung, das Networking, die Selbstheilung und das Lifecycle-Management großer Mengen von Containern über mehrere Hosts hinweg. Eine Orchestrator-Plattform übernimmt typische Aufgaben wie Scheduling (Wahl des passenden Knotens für jeden Container), Health Checks, Rolling Updates, Service Discovery, Lastverteilung, Storage-Anbindung, Secrets-Verteilung und Ressourcen-Quotas. Sie macht aus einem Pool aus Servern eine logische Plattform, die Anwendungen deklarativ aufnimmt.

Eingesetzt wird Container-Orchestrierung in jeder produktiven Container-Landschaft, die mehr als wenige Hosts und einige wenige Container umfasst. Die mit Abstand verbreitetste Plattform ist Kubernetes; daneben existieren bzw. existierten Docker Swarm (heute weitgehend abgelöst), Apache Mesos mit Marathon, HashiCorp Nomad und proprietäre Plattformen wie AWS ECS oder Azure Container Apps. Auf der Anwender-Seite werden Orchestratoren häufig durch ergänzende Werkzeuge wie Helm (Package Management), Argo CD oder Flux (GitOps), Prometheus und Grafana (Observability) sowie Service Meshes (Istio, Linkerd) erweitert.

Einzelne Container lassen sich zwar problemlos manuell starten; sobald aber dutzende oder hunderte Dienste über mehrere Server verteilt werden müssen, sind Aufgaben wie ausgewogenes Scheduling, automatische Wiederherstellung bei Ausfällen, Rollouts ohne Downtime oder Service Discovery ohne Orchestrator nicht beherrschbar. Container-Orchestrierung adressiert diese Probleme, indem sie eine deklarative API über das Cluster spannt und kontinuierlich den gewünschten Zustand mit dem tatsächlichen abgleicht.

Historisch entstand die heutige Container-Orchestrierung in mehreren parallelen Linien: Mesos und Marathon (Twitter, ab 2009), Borg/Omega bei Google (intern seit 2003), Docker Swarm (2014/2015) und Kubernetes (Open Source 2014, 1.0 im Juli 2015). Bis etwa 2017 waren Mesos, Swarm und Kubernetes ernsthafte Konkurrenten — die "Container Orchestration Wars". Ab 2018 hat sich Kubernetes durchgesetzt; Mesos wurde 2021 in den Apache-Attic-Status versetzt, Swarm wird zwar weiter gepflegt, ist aber keine ernsthafte Alternative für neue, größere Deployments mehr.

Eingeführt und geprägt wurde das Konzept maßgeblich durch Google (Borg, Kubernetes), die CNCF und Firmen wie Mesosphere, Docker, CoreOS und Red Hat. Die in den Jahren 2015-2017 zwischen Kubernetes, Mesos/DC-OS und Docker Swarm geführte Auseinandersetzung gilt als Lehrstück für die Bedeutung von Ökosystemen. Kubernetes setzte sich nicht durch besonders elegante Architektur durch — Mesos galt vielen als technisch fortgeschrittener — sondern durch eine konsequente Open-Governance unter der CNCF, eine breite Anbieterunterstützung und eine starke Community. Diese Erfahrung hat Anfang der 2020er Jahre auch andere Cloud-Bereiche (z.B. Open-Source-Datenbanken und ML-Plattformen) stark beeinflusst.

Zurück