Wissen von A bis Z

Operator Pattern

Ein Roboter-Administrator, der niemals schläft und Ihre Kubernetes-Cluster aufräumt.

Das Operator Pattern ist eine Erweiterung von Kubernetes, mit der domänenspezifisches operatives Wissen — also der Betrieb komplexer Anwendungen wie Datenbanken oder Message-Broker — in Form von Code in den Cluster verlagert wird. Ein Operator besteht typischerweise aus einer Custom Resource Definition (CRD), die einen neuen Ressourcentyp einführt (zum Beispiel "PostgresCluster" oder "KafkaTopic"), und einem Controller, der den gewünschten Zustand dieser Ressource kontinuierlich mit dem Ist-Zustand abgleicht. Der Controller ist im Kern ein Reconciliation Loop, der Erstellung, Skalierung, Updates, Backups und Failover seines Anwendungstyps automatisiert.

Eingesetzt wird das Operator Pattern für statefulle Anwendungen (Datenbanken wie PostgreSQL, MongoDB, Cassandra, Elasticsearch), Message-Broker (Kafka, RabbitMQ), Plattformdienste (Cert-Manager, Prometheus Operator, Argo CD) und individuelle Geschäftsanwendungen mit komplexen Lifecycle-Anforderungen. Werkzeuge zur Operator-Entwicklung sind unter anderem Operator SDK, Kubebuilder und KOPF (für Python).

Der Einsatzzweck und das gelöste Problem liegen in der Automatisierung von "Day-2-Operations" — also Aufgaben, die nach der ersten Inbetriebnahme anfallen: Versionsupgrades, Skalierung, Backup, Restore, Selbstheilung, Schemamigrationen. Klassische Helm-Charts beschreiben den initialen Deployment-Zustand, lösen aber laufende Betriebsabläufe nicht. Ein Operator kapselt dieses Wissen in einem dauerhaft laufenden Controller und macht den Betrieb komplexer Anwendungen so deklarativ wie das Anlegen einer einzelnen Pod- oder Service-Ressource.

Historisch wurde das Operator Pattern 2016 von der Firma CoreOS unter dem Begriff "Operator" eingeführt — die ersten Implementierungen waren der etcd-Operator und der Prometheus-Operator. Gleichzeitig entstand das Konzept des "Operator Maturity Model", das fünf Stufen zunehmender Automatisierung beschreibt (Basic Install, Seamless Upgrades, Full Lifecycle, Deep Insights, Auto Pilot). Nach der Übernahme von CoreOS durch Red Hat 2018 wurde der OperatorHub als Marketplace für Operator-Pakete etabliert; Kubebuilder bei Google und Operator SDK bei Red Hat sind seitdem die zentralen Frameworks.

Eingeführt wurde das Operator Pattern bei CoreOS unter Federführung von Brandon Philips. Der Begriff "Operator" geht auf das Bild des erfahrenen Datenbank- oder Systemadministrators zurück — desjenigen Operators, der "weiß, was zu tun ist", wenn ein PostgreSQL-Replica ausfällt oder eine Kafka-Partition neu balanciert werden muss. Der Operator kodiert dieses Wissen in Software, anstatt es als Runbook in einem Wiki abzulegen. Diese metaphorische Brücke zwischen "dem alten Operator" und "dem neuen Operator-Controller" hat die Akzeptanz des Konzepts in Betriebsteams maßgeblich vereinfacht.

Zurück