iX 3/2022
S. 122
Praxis
Cloud-native-Systemmanagement

Admin-Tätigkeiten mit Ansible und Kubernetes-Operatoren automatisieren

Operation einfach

Daniel Kobras, Mark Pröhl

Den Funktionsumfang von Kubernetes zu erweitern, muss kein Hexenwerk sein. Mit Ansible und dem passenden Entwicklungswerkzeug lassen sich eigene Operatoren ohne großen Aufwand umsetzen.

Verschwinde, oder ich ersetze dich durch ein sehr kurzes Shellskript! – Kubernetes adelt einen alten Scherz von der Admin-Folklore zum Design Pattern. Dort nämlich beschreibt ein Manifest nur noch den gewünschten Zielzustand eines Systems, den Weg dorthin findet die Plattform selbst. Das Zauberwort dazu heißt deklarativ und bildet den Kern moderner Trends der Systemadministration wie GitOps. Operatives Know-how wird scheinbar ersetzt durch eine sehr kurze YAML-Datei. Doch das ist nur die halbe Wahrheit. Wenn kein menschlicher Operator mehr die nötigen Schritte ausführt, um den gewünschten Zielzustand zu erreichen, muss sein Know-how automatisiert sein, etwa in Form eines – mehr oder weniger kurzen – Shellskripts.

In Kubernetes übernimmt dieses Konzept nicht nur die Aufgaben, sondern auch den Namen seines Vorbildes aus Fleisch und Blut. Der Operator ist hier gewissermaßen das imperative Gegenstück zum deklarativen Manifest, das es interpretiert und daraus die auszuführenden Aufgaben zum Erreichen des Zielzustands bestimmt und umsetzt. Jeder Operator ist dabei für bestimmte Manifeste zuständig, die jeweils eigene Typen von Ressourcen beschreiben. Für einige Standardressourcen wie Deployment bringt Kubernetes die passende Kontrolllogik bereits fest eingebaut mit, andere Ressourcen wie Ingress lassen sich über mehrere alternative Implementierungen nachrüsten.

Kommentieren