Training Module
Kubernetes GitOps at Scale — Multi-Cluster mit dem ApplicationSet Cluster-Generator
Dieses 115-Minuten-Modul holt genau das nach, was der Vorgängerkurs
bewusst nur als Ausblick genannt hat: den
Cluster-Generator. Dort habt ihr gelernt, dass ein
List- oder ein Git-Directory-Generator automatisch mehrere
Application-Objekte aus einer Liste oder einem
Verzeichnismuster erzeugt. Der Cluster-Generator tut dasselbe, aber
auf einer anderen Achse: Er erzeugt automatisch eine
Application pro Cluster, der bei Argo
CD registriert ist – als Kubernetes-Secret mit dem Label
argocd.argoproj.io/secret-type: cluster im Namespace
argocd. Registriert ihr einen zweiten Cluster, entsteht
ohne jede Änderung am ApplicationSet-Manifest
automatisch eine zweite Application – genau das qualitative
Prinzip, das ihr beim Git-Directory-Generator schon für
Verzeichnisse gesehen habt, hier übertragen auf ganze Cluster. Im
ersten Hands-on baut ihr zwei eigenständige
kind-Cluster (hub mit Argo CD und
workload) auf und registriert workload als
Cluster-Secret im Hub. Ein einziges ApplicationSet mit
Cluster-Generator erzeugt daraufhin automatisch zwei Applications –
eine für den Hub-Cluster selbst (der ohne eigenes Secret
automatisch mitzählt) und eine für workload. Im
zweiten Hands-on geht ihr einen Schritt weiter: Ein dritter Cluster,
prod, wird ebenfalls registriert, aber ein
selector.matchLabels-Label-Selector im
Cluster-Generator ignoriert ihn zunächst – erst als ihr das
Cluster-Secret explizit labelt, erscheint die zugehörige
Application. Genau der Hebel für einen kontrollierten Rollout: erst
registrieren, dann bewusst pro Cluster freigeben. Technischer
Rahmen: Statt mehrerer Minikube-Profile (ungeprüftes
Docker-Netzwerk-Risiko zwischen Profilen) läuft dieses Modul über
drei eigenständige kind-Cluster – kind-Cluster
landen laut kind-Quellcode automatisch im selben Docker-Netzwerk
kind, ohne dass ihr dafür etwas konfigurieren müsst.
Zwei Grenzen dieses Kurses werden ausdrücklich benannt: Die
Docker-Netzwerk-Erreichbarkeit zwischen den Cluster-Containern
bedeutet nicht, dass sich die in den Clustern
laufenden Pods gegenseitig über Service-DNS erreichen können –
echtes Cross-Cluster-Workload-Networking ist nicht Teil dieses
Kurses. Und die verwendeten Zugangsdaten (
cluster-admin-Rechte, übersprungene TLS-Prüfung) sind
eine bewusste Trainings-Vereinfachung, keine produktionsreife
Absicherung. Ein kurzer Ausblick ohne eigenes Hands-on rundet ab:
der Matrix-Generator (Cluster- mit
Git-Directory-Generator kombiniert) sowie das
values-Feld für Pro-Cluster-Parameter – beide jetzt im
eigenständigen Aufbaumodul
Kubernetes GitOps at Scale — Matrix-Generator: Cluster × Verzeichnis kombiniert
als echtes Hands-on.
Ausdrücklich NICHT Teil dieses Kurses: produktive
Multi-Cluster-Topologien mit mehr als drei Clustern samt
Zugangsdaten-Rotation und engerem RBAC-Scoping, sowie der
Matrix-Generator als eigenes Hands-on. Pflicht ist das Modul
“Kubernetes GitOps at Scale — ApplicationSet & Generators” – dieses
Modul setzt dessen ApplicationSet-Grundlagen und die
dort schon deployte Anwendung services/frontend direkt
fort. Die Session läuft komplett lokal über kind (
Kubernetes-in-Docker) – kein Cloud-Account, keine Kostenwirkung.
Format
115 Minuten, live (remote oder vor Ort), Input & zwei Hands-on-Übungen
Teilnehmende
Absolvent:innen von “Kubernetes GitOps at Scale — ApplicationSet & Generators”, die wissen wollen, wie der Cluster-Generator mehrere Cluster tatsächlich automatisch bespielt
Voraussetzungen
Abgeschlossenes Modul “Kubernetes GitOps at Scale — ApplicationSet & Generators” (Pflicht) – ApplicationSet-Aufbau und List-/Git-Directory-Generator gelten als bekannt, lauffähige lokale Docker-Umgebung für kind – spürbar höherer Ressourcenbedarf als bei Einzel-Cluster-Modulen, weil drei Cluster parallel laufen
Warum dieses Training für deine Organisation wirkt
Ein Generator, beliebig viele Cluster
Statt für jeden Cluster eine eigene Application-Datei zu pflegen, registriert ihr einen Cluster einmal als Secret – der ApplicationSet-Controller erzeugt die passende Application automatisch dazu.
Registrieren ≠ sofort bespielen
Mit einem Label-Selector registriert ihr einen Cluster, ohne dass er automatisch bespielt wird – die Freigabe ist ein bewusster, separater Schritt per Label.
Grenzen ehrlich benannt statt verschwiegen
Der Kurs zeigt nicht nur den Mechanismus, sondern auch klar, was er NICHT löst – Cross-Cluster-Netzwerk zwischen Pods und produktionsreife Zugangsdaten bleiben eigene Aufgaben.
Was Teilnehmende mitnehmen
- Den Cluster-Generator als dritten Generator-Typ neben List und Git-Directory einordnen: eine Application pro registriertem Cluster statt pro Listenelement oder Verzeichnis.
- Einen Cluster über ein Kubernetes-Secret mit dem Label
argocd.argoproj.io/secret-type: clusterbei Argo CD registrieren und dabei benennen können, warum der lokale Hub-Cluster ohne eigenes Secret trotzdem automatisch mitzählt. - Zwei eigenständige
kind-Cluster (statt eines Mehrknoten-Clusters) aufbauen und erklären, warum sie sich automatisch dasselbe Docker-Netzwerk teilen. - Live beobachten, wie ein
ApplicationSetmit Cluster-Generator ohne weitere Änderung automatisch eine zweite Application erzeugt, sobald ein zweiter Cluster registriert ist. - Einen Label-Selector (
selector.matchLabels) einsetzen, um einen registrierten Cluster gezielt von der automatischen Bespielung auszuschließen, bis sein Cluster-Secret das passende Label trägt. - Benennen können, warum diese Registrierung (
cluster-admin, übersprungene TLS-Prüfung) eine bewusste Trainings-Vereinfachung ist und was in Produktion stattdessen nötig wäre. - Den Matrix-Generator sowie das
values-Feld für Pro-Cluster-Parameter konzeptionell einordnen – bewusst ohne eigenes Hands-on zu diesen Punkten. - Benennen, was dieses Modul bewusst nicht behandelt: echtes Cross-Cluster-Workload-Networking und produktive Multi-Cluster-Topologien mit mehr als drei Clustern.
Für wen dieses Modul ideal ist
- • Absolvent:innen von “Kubernetes GitOps at Scale — ApplicationSet & Generators” oder gleichwertigen Vorkenntnissen
- • Teams, die Argo CD bereits für einen Cluster einsetzen und vor der Frage stehen, wie derselbe GitOps-Workflow mehrere Cluster (Staging, mehrere Regionen, mehrere Kunden-Cluster) automatisch bespielt
- • Alle, die vor einer Multi-Cluster-Einführung wissen wollen, wie sich ein kontrollierter, labelbasierter Rollout pro Cluster strukturell abbilden lässt
Rahmendaten
- • Dauer: 115 Minuten live (remote oder vor Ort)
- • Format: Input, Live-Demo, zwei Hands-on-Übungen (hub + workload mit Cluster-Generator; prod mit Label-Selector für kontrollierten Rollout)
- • Voraussetzungen: abgeschlossenes Modul “Kubernetes GitOps at Scale — ApplicationSet & Generators” (Pflicht), lauffähige lokale Docker-Umgebung für
kind, keine Cloud-Kostenwirkung
Modulaufbau & Agenda
Recap: Multi-Cluster als offene Lücke aus dem Vorgängerkurs (10 min): kurzer Rückblick auf den Cluster-Generator als bislang nur konzeptionell genannten Ausblick, und die Frage, was passiert, wenn dieselbe Anwendung auf mehreren Clustern laufen soll.
Konzept: Cluster-Generator, Cluster-Secrets & Label-Selector (20 min): Cluster-Registrierung als Secret mit dem Label
argocd.argoproj.io/secret-type: cluster, automatische Mit-Erfassung des lokalen Clusters,selector.matchLabelsals Freigabe-Hebel.Hands-on 1: hub + workload — automatische Application pro Cluster (35 min, Hands-on): zwei
kind-Cluster aufbauen,workloadals Cluster-Secret registrieren, live beobachten, wie einApplicationSetmit Cluster-Generator automatisch zwei Applications erzeugt.Hands-on 2: prod + Label-Selector für kontrollierten Rollout (35 min, Hands-on): einen dritten Cluster registrieren, mit einem Label-Selector zunächst gezielt ausschließen, dann per Label-Vergabe kontrolliert freigeben.
Grenzen: was dieses Modul bewusst nicht zeigt (10 min): kein echtes Cross-Cluster-Workload-Networking zwischen Pods, keine produktive Multi-Cluster-Topologie jenseits von drei lokalen Clustern, Zugangsdaten als bewusste Trainings-Vereinfachung.
Ausblick ohne Hands-on & Abschluss (5 min): Matrix-Generator (Cluster- mit Git-Directory-Generator kombiniert) sowie das
values-Feld für Pro-Cluster-Parameter, jeweils ohne eigenes Hands-on.
Dieses Modul setzt das Aufbaumodul
Kubernetes GitOps at Scale — ApplicationSet & Generators
zwingend voraus. Der ApplicationSet-Grundaufbau
(generators/template) sowie List- und
Git-Directory-Generator gelten als bekannt und werden hier
nicht erneut hergeleitet – Hands-on 1 verwendet direkt dieselbe
Anwendung services/frontend, die im Vorgängerkurs
bereits über einen List- und einen Git-Directory-Generator
deployt wurde, diesmal automatisch verteilt auf mehrere
Cluster statt auf mehrere Verzeichnisse.
Was dieses Modul bewusst nicht behandelt:
echtes Cross-Cluster-Workload-Networking zwischen den Pods der
einzelnen Cluster (die gemeinsame Docker-Netzwerk-Erreichbarkeit
gilt für die Cluster-Container, in denen Argo CD den
jeweiligen API-Server erreichen muss – nicht automatisch für
Pods innerhalb dieser Cluster), produktive
Multi-Cluster-Topologien mit mehr als drei Clustern
(Zugangsdaten-Rotation, engeres RBAC-Scoping als
cluster-admin, echtes Cloud-Netzwerk-Peering).
Für den Matrix-Generator selbst gibt es dafür das
eigenständige Aufbaumodul
Kubernetes GitOps at Scale — Matrix-Generator: Cluster × Verzeichnis kombiniert
, das direkt auf diesem Kurs aufsetzt und dieselben drei
kind-Cluster weiterverwendet. Kein CI/Image-Build
(das leistet das Modul
CI: Continuous Integration & der Build-Prozess
). Und keine Progressive Delivery – dafür gibt es das
eigenständige Aufbaumodul
Kubernetes Progressive Delivery — Canary & Blue-Green mit Argo Rollouts.
Hands-on Inhalte (Auszug)
hub + workload aufbauen und registrieren
- Zwei
kind-Cluster erzeugen (hubmit Argo CD,workload) und die gemeinsame Docker-Netzwerkzugehörigkeit prüfen workloadals Cluster-Secret mit dem Labelargocd.argoproj.io/secret-type: clusterim Hub registrieren
Cluster-Generator live beobachten
- Ein
ApplicationSetmitgenerators: - clusters: {}anwenden und live sehen, wie automatisch zwei Applications entstehen – eine für den Hub-Cluster selbst, eine fürworkload - Per Kontextwechsel bestätigen, dass tatsächlich zwei getrennte Cluster bespielt wurden, nicht derselbe Cluster zweimal
prod registrieren, aber zunächst ausschließen
- Einen dritten Cluster
prodregistrieren und ein zweitesApplicationSetmitselector.matchLabelsanwenden - Beobachten, dass trotz vollständiger Registrierung keine Application für
prodentsteht, solange das passende Label fehlt
Kontrollierte Freigabe per Label
- Das Cluster-Secret von
prodlabeln und live beobachten, wie die zugehörige Application entsteht - Bestätigen, dass
workloadweiterhin ausgeschlossen bleibt, solange sein Secret das Label nicht trägt
Dieses Modul ist Teil unserer Pilotphase. Gemeinsam mit euch definieren wir passende Metriken (z. B. Zeit von der Cluster-Secret-Registrierung bis zur automatisch erzeugten, bestätigt Synced/Healthy Application) und werten sie im Anschluss transparent aus. Ergebnisse veröffentlichen wir, sobald sie belastbar sind.
Bereit, das Modul zu buchen?
Wir passen die Hands-on-Übung auf euren Erfahrungsstand und eure Zielumgebung an.
Academy Briefing anfragen