Training Module
Kubernetes GitOps mit Flux — Abgrenzung und Umstieg von ArgoCD
Drei Kurse dieses Repos haben eine Abgrenzung zu
Flux angekündigt und sie bewusst nicht vertieft – dieses
110-Minuten-Modul löst genau dieses Versprechen ein. Statt Flux nebenbei
in einer Zeile zu erwähnen, seziert ihr die
Flux-Architektur strukturell gegen das bereits bekannte
ArgoCD-Modell: Wo ArgoCD eine einzige Application-CRD für
Quelle, Ziel und Sync-Policy verwendet, trennt Flux das in eigenständige
Controller und Custom Resources –
source-controller für Herkunft (
GitRepository, HelmRepository,
OCIRepository), kustomize-controller für
reine Kubernetes-Manifeste über die
Kustomization-CRD, und helm-controller für
Helm-Releases über die HelmRelease-CRD. Im ersten Hands-on
installiert ihr Flux ohne Git-Bootstrap-Assistenten per
kubectl apply gegen das offizielle Install-Manifest,
registriert eine GitRepository gegen dasselbe eigene
Git-Repo, mit dem ihr schon im ArgoCD-Kurs gearbeitet habt, und darauf
aufbauend eine Kustomization, die dieses Repo tatsächlich
in Cluster-Ressourcen übersetzt – und beobachtet die Reconciliation live
per flux get kustomizations. Danach seziert ihr das
Dependency-Modell: Die Kustomization
-Eigenschaft dependsOn erzwingt eine Reihenfolge – aber
zwischen ganzen Kustomization-Objekten, deren
Ready-Bedingung erfüllt sein muss, nicht zwischen
einzelnen Ressourcen innerhalb eines Objekts wie bei ArgoCDs
Sync-Wave-Annotation. Im zweiten Hands-on baut ihr genau das nach: zwei
getrennte Kustomization-Objekte, eines mit
dependsOn auf das andere, und beobachtet, wie Flux
nachweislich wartet, bis die referenzierte Kustomization
Ready ist, bevor die abhängige angewendet wird. Ein kurzer
Ausblick ohne eigenes Hands-on rundet ab: das
Umstiegs- und Koexistenz-Szenario – Flux und ArgoCD
können denselben Cluster parallel bedienen, solange beide nur disjunkte
Ressourcen reconcilen, und ein Umstieg lässt sich Anwendung für
Anwendung durchführen –, sowie HelmRelease als
Flux-Pendant zum ArgoCD-Ausblick auf Helm-Chart-als-Application-Source.
Ausdrücklich NICHT Teil dieses Kurses: eine erneute
Erklärung von Reconciliation-Loop und Pull-Prinzip – das gilt aus dem
ArgoCD-Kurs als bekannt –, Progressive Delivery, ein eigenständiger
Multi-Cluster-Hands-on und eine allgemeine GitOps-Einführung (die gibt
es bereits als frei zugänglichen Artikel). Pflicht ist das Modul
“Kubernetes GitOps — Deklaratives Deployment mit ArgoCD”; empfohlen,
aber keine Pflicht, sind “Kubernetes GitOps at Scale — App-of-Apps &
Sync-Waves” und “Kubernetes GitOps at Scale — ApplicationSet &
Generators” – wer sie kennt, erlebt den direkten Vergleich
dependsOn gegen Sync-Wave bzw. Flux gegen ApplicationSet
aus erster Hand. Die Session läuft komplett lokal über Minikube (
–driver=docker) oder kind – Flux selbst läuft
rein containerisiert im Cluster, ohne Cloud-Account und ohne
Kostenwirkung.
Format
110 Minuten, live (remote oder vor Ort), Input & zwei Hands-on-Übungen
Teilnehmende
Absolvent:innen von “Kubernetes GitOps — Deklaratives Deployment mit ArgoCD”, die Flux strukturiert gegen ArgoCD abgrenzen oder einen Umstieg/eine Koexistenz vorbereiten wollen
Voraussetzungen
Abgeschlossenes Modul “Kubernetes GitOps — Deklaratives Deployment mit ArgoCD” (Pflicht) – Reconciliation-Loop und Application-CRD gelten als bekannt; “Kubernetes GitOps at Scale — App-of-Apps & Sync-Waves” und “… ApplicationSet & Generators” empfohlen, aber keine Pflicht; lauffähige lokale Docker-Umgebung für Minikube oder kind
Warum dieses Training für deine Organisation wirkt
Kein Bauchgefühl mehr bei “ArgoCD oder Flux?”
Statt einer Zeile Ausblick bekommt ihr die strukturelle
Gegenüberstellung: getrennte Controller und CRDs bei Flux gegen
eine monolithische Application bei ArgoCD – als
Grundlage für eine begründete Werkzeugentscheidung.
Reihenfolge erzwingen, zwei Wege verglichen
dependsOn zwischen Kustomization
-Objekten und sync-wave zwischen Ressourcen einer
Application lösen dieselbe Aufgabe auf zwei strukturell
unterschiedlichen Ebenen – live gegenübergestellt statt nur
behauptet.
Umstieg ohne Big-Bang-Risiko
Flux und ArgoCD können denselben Cluster parallel bedienen. Wer weiß, wie beide koexistieren, kann Anwendung für Anwendung umstellen, statt an einem Stichtag den ganzen Cluster umzuschalten.
Was Teilnehmende mitnehmen
- Die Flux-Architektur benennen und gegen ArgoCD abgrenzen:
source-controller,kustomize-controllerundhelm-controllerals getrennte Controller statt einer monolithischenApplication-CRD. - Die CRDs
GitRepository(Source) undKustomization(Reconciliation-Ziel) lesen und einordnen, im direkten Vergleich zu ArgoCDsApplication, die beide Rollen in einem Objekt bündelt. - Flux ohne Git-Bootstrap-Assistenten per
kubectl applyinstallieren, eineGitRepositoryund eineKustomizationgegen ein eigenes Git-Repo registrieren und die Reconciliation live perflux get kustomizationsbestätigen. - Das Dependency-Modell
dependsOnzwischen zweiKustomization-Objekten aufsetzen und live beobachten, wie Flux auf dieReady-Bedingung der referenzierten Kustomization wartet, bevor die abhängige angewendet wird. dependsOnstrukturell vonsync-waveabgrenzen können: Objekt-Granularität zwischenKustomization-Objekten gegen Ressourcen-Granularität innerhalb einer einzigen ArgoCD-Application.- Das Umstiegs- und Koexistenz-Szenario sowie
HelmRelease/helm-controllerkonzeptionell einordnen – bewusst ohne eigenes Hands-on zu diesen Punkten. - Benennen, was dieses Modul bewusst nicht behandelt: eine erneute Herleitung von Reconciliation-Loop und Pull-Prinzip, Progressive Delivery, ein eigenständiger Multi-Cluster-Hands-on und eine allgemeine GitOps-Einführung.
Für wen dieses Modul ideal ist
- • Absolvent:innen von “Kubernetes GitOps — Deklaratives Deployment mit ArgoCD” oder gleichwertigen Vorkenntnissen
- • Teams, die in einer Werkzeugentscheidung zwischen ArgoCD und Flux stehen und eine begründete statt eine gefühlte Antwort brauchen
- • Alle, die einen bestehenden ArgoCD-Cluster schrittweise auf Flux umstellen oder beide dauerhaft parallel betreiben wollen
Rahmendaten
- • Dauer: 110 Minuten live (remote oder vor Ort)
- • Format: Input, Live-Demo, zwei Hands-on-Übungen (Flux-Installation & erste GitRepository/Kustomization, dependsOn zwischen zwei Kustomizations)
- • Voraussetzungen: abgeschlossenes Modul “Kubernetes GitOps — Deklaratives Deployment mit ArgoCD” (Pflicht), “Kubernetes GitOps at Scale — App-of-Apps & Sync-Waves” und “… ApplicationSet & Generators” empfohlen, lauffähige lokale Docker-Umgebung für Minikube oder kind, keine Cloud-Kostenwirkung
Modulaufbau & Agenda
GitOps-Recap & Rahmen (10 min): kurzer Rückblick auf Reconciliation-Loop und
Application-CRD aus dem ArgoCD-Kurs – als bekannt vorausgesetzt, nicht neu hergeleitet. Die heutige Frage: Wie sieht dasselbe Grundprinzip bei einem strukturell anderen Operator aus?Flux-Architektur im Vergleich zu ArgoCD (20 min):
source-controller,kustomize-controllerundhelm-controllerals getrennte Controller statt einer monolithischenApplication-CRD;GitRepository(Source) undKustomization(Reconciliation-Ziel) als die beiden zentralen CRDs für den Hands-on-Teil.Hands-on 1: Flux installieren, GitRepository & Kustomization (30 min, Hands-on): Flux-CLI installieren,
flux check –pre, Flux perkubectl applyohne Git-Bootstrap installieren,GitRepositoryundKustomizationgegen das eigene Git-Repo registrieren, Reconciliation perflux get kustomizationslive beobachten.Dependency-Modell: dependsOn vs. Sync-Waves (15 min): die
Kustomization-EigenschaftdependsOnim direkten Vergleich zursync-wave-Annotation – Objekt-Granularität zwischenKustomization-Objekten gegen Ressourcen-Granularität innerhalb einer Application.Hands-on 2: dependsOn zwischen zwei Kustomizations (25 min, Hands-on): zwei getrennte
Kustomization-Objekte anlegen, eines mitdependsOnauf das andere, live beobachten, wie Flux wartet, bis die referenzierte KustomizationReadyist, bevor die abhängige angewendet wird.Umstiegsszenario, Koexistenz & Abschluss (10 min): wie Flux und ArgoCD denselben Cluster parallel bedienen können, ohne sich gegenseitig zu stören, woran ein schrittweiser Umstieg Anwendung für Anwendung ansetzt, sowie ein Ausblick auf
HelmRelease/helm-controllerohne eigenes Hands-on; Progressive Delivery, Multi-Cluster-Hands-on und allgemeine GitOps-Einführung ausdrücklich nicht Teil dieses Kurses.
Dieses Modul setzt das Aufbaumodul
Kubernetes GitOps — Deklaratives Deployment mit ArgoCD
zwingend voraus. Reconciliation-Loop, Push- vs. Pull-based
Deployment und die Application-CRD gelten als bekannt
und werden hier nicht erneut hergeleitet – Hands-on 1 registriert
Flux gegen dasselbe eigene Git-Repo, mit dem dort bereits
gearbeitet wurde.
Empfohlen, aber keine Pflicht, sind die Module
Kubernetes GitOps at Scale — App-of-Apps & Sync-Waves
und
Kubernetes GitOps at Scale — ApplicationSet & Generators.
Wer sie bereits abgeschlossen hat, erlebt in Block 4 und 5 den
direkten Vergleich dependsOn gegen sync-wave
aus erster Hand, statt ihn nur beschrieben zu bekommen; wer sie
noch nicht hat, kann diesem Kurs trotzdem vollständig folgen – die
Sync-Wave-Mechanik wird in Block 4 in dem Umfang eingeführt, der
für die Abgrenzung nötig ist, ohne den Sync-Waves-Kurs zu
wiederholen.
Was dieses Modul bewusst nicht behandelt: eine erneute Erklärung von Reconciliation-Loop und Pull-Prinzip – das steht vollständig im Modul Kubernetes GitOps — Deklaratives Deployment mit ArgoCD und gilt hier als bekannt. Ebenfalls nicht Thema: Progressive Delivery mit Argo Rollouts (Canary/Blue-Green) – dafür gibt es das eigenständige Aufbaumodul Kubernetes Progressive Delivery — Canary & Blue-Green mit Argo Rollouts. Kein eigenständiger Multi-Cluster-Hands-on: Flux’ Cluster-übergreifende Nutzung wird nicht selbst als zweiter Cluster aufgebaut – wer das ArgoCD-seitige Pendant sucht, findet es im Aufbaumodul Kubernetes GitOps at Scale — Multi-Cluster mit dem ApplicationSet Cluster-Generator. Und keine allgemeine GitOps-Einführung – Push vs. Pull, die vier OpenGitOps-Prinzipien und ein erster Werkzeugüberblick stehen bereits im frei zugänglichen Artikel Was ist GitOps?.
Hands-on Inhalte (Auszug)
Flux ohne Git-Bootstrap installieren
- Flux-CLI installieren, mit
flux check –predie Cluster-Voraussetzungen prüfen - Flux per
kubectl applygegen das offizielle Install-Manifest installieren – ohne den interaktiven Git-Provider-Bootstrap-Assistenten
GitRepository & Kustomization registrieren
- Eine
GitRepositorygegen das eigene, aus dem ArgoCD-Kurs bekannte Git-Repo anwenden - Eine
KustomizationmitsourceRefauf dieseGitRepositoryanwenden und mitflux get kustomizationsaufReadyprüfen
Zwei Kustomizations ohne Kopplung
- Eine
Kustomizationfür Namespace und Secret, eine zweite unabhängigeKustomizationfür das Deployment anlegen - Beide Objekte reconcilen unabhängig voneinander – ohne
dependsOngibt es keine Garantie für die Reihenfolge zwischen ihnen
Reihenfolge mit dependsOn erzwingen
- Die Deployment-
Kustomizationumspec.dependsOnmit dem Namen der Namespace/Secret-Kustomizationergänzen - Live per
flux get kustomizations –watchbestätigen, dass die abhängige Kustomization erst angewendet wird, wenn die referenzierteReadyist
Dieses Modul ist Teil unserer Pilotphase. Gemeinsam mit euch definieren wir passende Metriken (z. B. Zeit von der Flux-Installation bis beide Kustomizations bestätigt Ready sind) 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