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: cluster bei 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 ApplicationSet mit 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

  1. 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.

  2. 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.matchLabels als Freigabe-Hebel.

  3. Hands-on 1: hub + workload — automatische Application pro Cluster (35 min, Hands-on): zwei kind-Cluster aufbauen, workload als Cluster-Secret registrieren, live beobachten, wie ein ApplicationSet mit Cluster-Generator automatisch zwei Applications erzeugt.

  4. 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.

  5. 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.

  6. 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 (hub mit Argo CD, workload) und die gemeinsame Docker-Netzwerkzugehörigkeit prüfen
  • workload als Cluster-Secret mit dem Label argocd.argoproj.io/secret-type: cluster im Hub registrieren

Cluster-Generator live beobachten

  • Ein ApplicationSet mit generators: - clusters: {} anwenden und live sehen, wie automatisch zwei Applications entstehen – eine für den Hub-Cluster selbst, eine für workload
  • 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 prod registrieren und ein zweites ApplicationSet mit selector.matchLabels anwenden
  • Beobachten, dass trotz vollständiger Registrierung keine Application für prod entsteht, solange das passende Label fehlt

Kontrollierte Freigabe per Label

  • Das Cluster-Secret von prod labeln und live beobachten, wie die zugehörige Application entsteht
  • Bestätigen, dass workload weiterhin 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