GitOps hat sich als Deployment-Paradigma für Kubernetes-Umgebungen durchgesetzt: Der gewünschte Cluster-Zustand wird im Git-Repository deklariert, und ein Operator synchronisiert ihn kontinuierlich mit der Realität. ArgoCD und Flux CD sind die beiden dominanten Open-Source-Implementierungen dieses Ansatzes — beide unter CNCF-Dach, beide produktionsreif, aber mit sehr unterschiedlicher Philosophie.
Dieser Artikel zeigt, wann du welches Tool wählen solltest.
Was ist GitOps?
GitOps basiert auf vier Prinzipien: Der gesamte System-Zustand ist deklarativ beschrieben, Git ist die Single Source of Truth, Änderungen werden automatisch angewendet, und Software-Agenten sorgen für Konvergenz bei Abweichungen. Der entscheidende Vorteil: Deployments werden auditierbar, reproduzierbar und sicher — ohne direkten kubectl apply-Zugriff in der CI/CD-Pipeline.
ArgoCD: UI-fokussiertes GitOps
ArgoCD (Argo Continuous Delivery) wurde 2017 von Intuit entwickelt und 2022 als CNCF Graduated Project eingestuft. Es verfolgt einen Application-zentrierten Ansatz mit eigenem CRD-Typ (Application und ApplicationSet).
Stärken von ArgoCD
- Web-UI: ArgoCD bietet ein ausgereiftes Dashboard, das Sync-Status, Resource-Trees und Health-Checks visuell darstellt — ideal für Teams, die Sichtbarkeit über Deployments brauchen
- ApplicationSet-Controller: Ermöglicht die automatische Generierung von Applications aus Templates — z.B. eine Application pro Git-Branch oder pro Cluster
- Multi-Tenancy mit Projects: ArgoCD-Projects erlauben die Trennung von Teams mit unterschiedlichen Berechtigungen auf Repository- und Cluster-Ebene
- RBAC: Feingranulare Rollen-Konfiguration via
argocd-rbac-cmConfigMap - Sync-Waves und Hooks: Ermöglicht komplexe Deployment-Reihenfolgen (z.B. Datenbank vor App starten)
Schwächen von ArgoCD
- Ressourcenverbrauch: ArgoCD-Server, Application Controller und Repo Server laufen als separate Pods — höherer Memory-Footprint als Flux
- Operator-Muster: Kein nativer Helm-Controller — Helm wird server-seitig getemplatest, was zu Drift-Problemen bei komplexen Charts führen kann
- Bootstrap: ArgoCD selbst muss initial manuell installiert werden ("Chicken-Egg-Problem")
Flux CD: GitOps-native und modular
Flux CD wurde von Weaveworks entwickelt und existiert heute in Version 2 (Flux v2) als komplettes Redesign. Flux v2 ist ebenfalls ein CNCF Graduated Project und verfolgt einen Controller-basierten Ansatz mit spezialisierten Controllern für verschiedene Aufgaben.
Stärken von Flux
- Modulare Architektur: Separate Controller für Git-Repos (
source-controller), Kustomize (kustomize-controller), Helm (helm-controller) und Benachrichtigungen (notification-controller) - Echter Helm-Controller: Flux verwaltet Helm Releases als CRDs (
HelmRelease) und führt Helm-Operationen nativ aus — weniger Drift-Probleme - Bootstrap-Selbst-Management:
flux bootstrapinstalliert Flux über GitOps in dein eigenes Repository — Flux verwaltet sich selbst - OCI-Support: Flux kann direkt aus OCI-Registries pullen (z.B. Helm-Charts als OCI-Artifacts)
- Geringerer Ressourcenverbrauch: Flux-Controller sind schlanker als ArgoCD-Komponenten
Schwächen von Flux
- Kein natives Web-Dashboard: Flux hat keine eigene UI — Teams müssen Weave GitOps (kommerziell) oder externe Tools wie Capacitor nutzen
- Steilere Lernkurve: Das Controller-Modell mit vielen CRD-Typen ist anfangs unübersichtlicher
- Alert-Konfiguration komplex: Benachrichtigungen erfordern mehrere YAML-Ressourcen (Provider, Alert, Receiver)
Direktvergleich: ArgoCD vs Flux CD
| Kriterium | ArgoCD | Flux CD |
|---|---|---|
| Web-UI | ✅ Ausgereift, built-in | ❌ Nur extern (Weave GitOps) |
| Helm-Support | ⚠️ Server-side Templating | ✅ Nativer Helm-Controller |
| Bootstrap | Manuell | GitOps-selbstverwaltend |
| Ressourcenverbrauch | Höher (~200MB RAM) | Geringer (~100MB RAM) |
| Multi-Tenancy | ✅ ArgoCD Projects | ⚠️ Via Namespaces |
| OCI-Registry | ✅ (ab v2.5) | ✅ Nativer Support |
| CNCF-Status | Graduated | Graduated |
| GitHub-Stars | ~18k | ~14k |
| Sync-Hooks | ✅ Waves + Hooks | ✅ Kustomize Patches |
| Self-Management | ❌ App-of-Apps Muster | ✅ flux bootstrap |
Performance bei großen Clustern
ArgoCD skaliert gut mit dem ApplicationSet-Controller, hat aber bei sehr vielen Applications (500+) höheren Speicherbedarf im Application Controller. Flux skaliert horizontal durch seinen Controller-Ansatz besser, da jeder Controller unabhängig skalierbar ist.
Für große Multi-Cluster-Setups mit 20+ Clustern empfiehlt sich ArgoCD mit dem Cluster-Bootstrap-Ansatz oder ein dedizierted Management-Cluster-Modell.
Mein Setup: ArgoCD im Monorepo
Auf typoniels.dev betreibe ich ArgoCD auf einem K3s-Cluster mit dem App-of-Apps-Pattern:
# root-app.yaml — installiert sich selbst
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: root
namespace: argocd
spec:
project: default
source:
repoURL: https://gitlab.typoniels.de/infra/cluster-apps
targetRevision: main
path: apps
destination:
server: https://kubernetes.default.svc
namespace: argocd
syncPolicy:
automated:
prune: true
selfHeal: true
Mit diesem Pattern verwaltet ArgoCD alle anderen Applications aus dem Git-Repo — und sich selbst.
Wann du ArgoCD wählen solltest
- Du brauchst eine Web-UI für Ops-Teams ohne Kubernetes-Expertise
- Du arbeitest mit komplexen, mehrstufigen Deployments (Sync-Waves)
- Multi-Tenancy-Anforderungen mit strengen Team-Grenzen
- Du migrierst von Spinnaker oder Jenkins X
Wann Flux CD die bessere Wahl ist
- Du willst eine vollständig GitOps-verwaltete Infrastruktur ohne externe Abhängigkeiten
- Helm-Charts sind dein primäres Packaging-Format
- Du baust ein Operator-Ökosystem auf (Flux integriert besser mit dem Controller-Runtime-Pattern)
- Ressourcen-Effizienz auf kleinen Clustern ist wichtig (Homelab, Edge)
Fazit
Beide Tools sind produktionsreif und empfehlenswert. ArgoCD gewinnt bei User Experience und Visualisierung — ideal für Unternehmen, die mehrere Teams auf einem Cluster betreiben. Flux CD gewinnt bei Architektur-Reinheit und Helm-Integration — ideal für Infrastructure Engineers, die GitOps "by default" in ihre Plattform einbauen.
Wenn du heute neu anfängst: Probiere ArgoCD zuerst wegen der Web-UI, und evaluiere Flux, wenn Helm-Releases oder Ressourcenverbrauch zum Thema werden.