Flux CD
Das GitOps-Toolkit, um Kubernetes-Cluster mit Git synchron zu halten
Flux ist eine Reihe von Continuous-Delivery-Controllern, die Kubernetes-Cluster mit Konfigurationsquellen wie Git-Repositories, Helm-Repositories und OCI-Registries synchron halten. Deployments werden so zum Merge eines Pull Requests statt zu imperativen Befehlen gegen einen Cluster.
So funktioniert es
Flux läuft als eine Handvoll Controller in deinem Cluster. Jeder erledigt genau eine Aufgabe: einer holt Sources, einer wendet Kubernetes-Manifeste an, einer verwaltet Helm-Releases und so weiter. Sie kommunizieren über Kubernetes Custom Resources, sodass alles, was du konfigurierst, selbst YAML ist, das du in Git ablegen kannst. Flux kann sogar seine eigene Installation verwalten: Der Befehl flux bootstrap committet Fluxs Manifeste in dein Repository und synchronisiert dann daraus.
Kernkonzepte
- Source — wo der Soll-Zustand gespeichert ist: ein
GitRepository,HelmRepository,OCIRepositoryoderBucket. Source-Objekte holen ein Artefakt und halten es für andere Controller vor. - Kustomization — Fluxs eigene Ressource, die dem Cluster sagt, welchen Pfad einer Source er anwenden soll, wie oft und mit welchen Optionen (Prune, Health Checks, Abhängigkeiten). Nicht zu verwechseln mit Kustomizes
kustomization.yaml, die Flux ebenfalls bauen kann. - HelmRelease — installiert und upgradet ein Helm-Chart aus einem Helm-Repository, Git-Repository oder einer OCI-Registry, mit vollständiger Behandlung des Release-Lebenszyklus.
- Reconciliation (Abgleich) — die Schleife, in der ein Controller vergleicht, was Git deklariert, mit dem, was läuft, und die Differenz korrigiert. Sie läuft in einem Intervall und bei Bedarf.
- Bootstrap — installiert Flux in einem Cluster und verbindet es mit einem Git-Repository, sodass Flux sich selbst verwaltet.
- Controller — source, kustomize, helm, notification und die optionalen image-reflector- und image-automation-Controller.
Warum Teams GitOps mit Flux einsetzen
- Von Haus aus auditierbar. Jede Änderung am Cluster hat einen Commit und in der Regel einen geprüften Pull Request.
- Einfaches Rollback. Ein Deployment zurückzunehmen ist ein
git revertund kein manuellerkubectl-Eingriff unter Druck. - Kombinierbar. Installiere nur die Controller, die du brauchst, und skaliere sie unabhängig.
- Gebaut für Plattform-Teams. Native SOPS-Secret-Entschlüsselung, Mandantenfähigkeit über Kubernetes RBAC, OCI-Artefakte und automatisierte Image-Updates sind Teil des Toolkits.
- Drift-Korrektur. Änderungen, die direkt am Cluster vorgenommen werden, werden beim nächsten Abgleich zurückgesetzt.
Erste Schritte
Installiere die flux-CLI, bootstrappe Flux in einen Cluster gegen ein Git-Repository und füge ein GitRepository und eine Kustomization hinzu, die auf deine Manifeste zeigen (reines YAML, ein Kustomize-Overlay oder ein Helm-Chart). Die folgenden Anleitungen führen durch die gängigsten Setups, von einer einzelnen Anwendung bis zu mehreren Clustern und Mandanten. Sie wurden gegen Flux 2.9 geschrieben; prüfe die Flux-Dokumentation für die Version, die du installierst.