Tag 1: Go-Grundlagen für Kubernetes und erste Custom Resources erstellen
5 Themen, Tippen zum ÖffnenTippen zum Schließen
10:00–11:00Go-Crashkurs für Kubernetes-Entwickler
Operator-Entwicklung setzt auf Go; dieses Modul ordnet die Sprach- und Nebenläufigkeitskonzepte ein, die Sie im weiteren dreitägigen Workshop benötigen. Sie wenden Structs*, Interfaces und *Error Handling in kleinen Beispielen an, betrachten Goroutines und Channels und verfolgen, wie das client-go-SDK diese Muster nutzt. In der Lernumgebung ändern Sie Beispiele und besprechen, wie Sie Code lesen und Fehler eingrenzen.
11:00–12:00Warum Operatoren? Abgrenzung zu Helm und Controllern
Wann lohnt sich der Aufwand, einen Operator zu schreiben, und wann reicht ein Helm Chart oder ein einfacher Controller? Dieses Modul klärt die Begriffe, zeigt das Operator Pattern und das Operator Maturity Model und gibt Ihnen eine Entscheidungshilfe für Ihre eigenen Projekte. Sie analysieren zwei reale Beispiele aus dem CNCF-Ökosystem und ordnen sie ein.
13:00–14:00Custom Resource Definitions und die Kubernetes API
Custom Resource Definitions erweitern die Kubernetes-API um eigene Ressourcentypen. Sie modellieren eine CRD mit Group, Version, Kind, Spec, Status und Subresources und registrieren sie im Cluster. In der Lernumgebung erzeugen und prüfen Sie Instanzen mit kubectl und untersuchen, wie Schema und API-Konventionen die folgenden Controller-Aufgaben begrenzen.
14:00–15:00Kubebuilder: Operator scaffolden und Struktur verstehen
Kubebuilder erzeugt die Grundstruktur für API, Controller, Konfiguration und Programmstart. Sie scaffolden ein Projekt, verfolgen die Registrierung von Scheme, Manager und Reconciler und unterscheiden generierten von eigenem Code. Im DevNinjas Dojo, unserer Cloud-Lernumgebung, ergänzen Sie API-Felder und prüfen, wie controller-runtime den Controller mit der Kubernetes-API verbindet.
15:00–16:00Der Reconciliation Loop: Architektur und erste Logik
Reconciliation nähert den beobachteten Clusterzustand wiederholt dem gewünschten Zustand an. Sie implementieren eine Reconcile-Funktion, lesen Custom Resources über den gecachten Client und lösen passende Änderungen aus. In der Lernumgebung verfolgen Sie Ereignisse, Requests und erneute Durchläufe und ordnen ein, warum Controllerlogik nicht von einem einmaligen Aufruf ausgehen darf.

