Für Container Deployments ist Kubernetes als Umgebung etabliert, da es sowohl bei allen gängigen Cloud Providern als auch für private Cloud Setups zur Verfügung steht. Die deklarative Kubernetes API als schlanker Standard steht dabei im Mittelpunkt. Der Nutzer beschreibt lediglich den gewünschten Zielzustand und Kubernetes stellt diesen her – startet oder beendet zum Beispiel Pods, sodass die gewünschte Anzahl an Pods läuft.

In Fällen in denen die Kubernetes API an ihre Grenzen stößt kann sie um eigene Elemente, sogenannte Custom Resources, erweitert werden. Damit der in diesen Custom Resources beschriebene Zustand des Clusters erreicht werden kann, wird ein passender Kubernetes-Operator benötigt. Für die Entwicklung eines Operators ist es wichtig, zu verstehen, wie Kubernetes Resources verwaltet und wie Kubernetes Änderungen an diesen Resources verarbeitet. Dieses Wissen ist jedoch nicht nur für die konkrete Entwicklung eines Operators wichtig, sondern hilft allgemein Patterns für cloud-native Softwareentwicklung zu verstehen und optimal einzusetzen.

In diesem Talk erklären wir die grundlegende Funktionsweise von Kubernetes Operators und zeigen anhand von erprobten Java Code-Beispielen, wie ein Operator und damit verbundene cloud-native Patterns in Praxis eingesetzt werden können.