Ein Kubernetes Operator ist ein Muster, um das Betriebswissen über eine Anwendung in Software zu verpacken und direkt im Cluster laufen zu lassen. Statt dass Menschen Backups anstoßen, Updates einspielen oder Ausfälle reparieren, übernimmt der Operator diese Aufgaben automatisch – indem er die Kubernetes-API um eigene Objekttypen erweitert.

Woher kommt das Muster?

Den Begriff prägte 2016 das Unternehmen CoreOS mit dem Blogbeitrag „Introducing Operators“. Der erste Operator verwaltete etcd, den verteilten Schlüsselwertspeicher von Kubernetes. Seitdem ist das Muster zum Standard geworden: Prometheus-, Kafka- (Strimzi), Datenbank- oder Zertifikats-Operatoren wie cert-manager laufen in tausenden Clustern.

Wie arbeitet ein Operator?

Ein Operator besteht aus zwei Teilen: einem Controller und einer oder mehreren Custom Resource Definitions (CRDs). Der Controller läuft als ganz normales Deployment und verfolgt eine Reconcile-Schleife: Er beobachtet den Ist-Zustand der Custom Resources, vergleicht ihn mit dem gewünschten Zustand und gleicht die Abweichung ab. Ist ein Replikat ausgefallen, startet er es neu; ist ein Backup fällig, legt er es an.

Wie baut man einen Operator?

Fertigungsgerüste wie das Operator SDK oder Kubebuilder erzeugen das Grundgerüst in den Sprachen Go, Ansible oder Helm. Der Operator Lifecycle Manager (OLM) übernimmt Installation, Updates und Rechteverwaltung fertiger Operatoren. Zum Vergleich: Helm paketiert Anwendungen zur Installationszeit, ein Operator verwaltet sie dauerhaft im laufenden Betrieb.

Verwandte Grundlagen: Kubernetes RBAC, kube-apiserver und kubectl-Befehle.