Argo CD
Das GitOps-Tool für Continuous Delivery auf Kubernetes
Argo CD ist ein deklaratives GitOps-Tool für Continuous Delivery auf Kubernetes. Es hält den Live-Zustand eines Clusters mit dem Soll-Zustand in einem Git-Repository synchron. Deployments werden so zum Merge eines Pull Requests statt zu imperativen Befehlen gegen einen Cluster.
So funktioniert es
Argo CD läuft als Controller in einem Kubernetes-Cluster. Es vergleicht fortlaufend, was in einem oder mehreren Git-Repositories deklariert ist, mit dem, was tatsächlich läuft, und kann Abweichungen entweder anzeigen oder automatisch korrigieren. Weil der Soll-Zustand in Git liegt, ist jede Änderung versioniert, nachvollziehbar und umkehrbar – über denselben Pull-Request-Workflow, den Teams bereits für Code nutzen.
Kernkonzepte
- Application — die Grundeinheit, die Argo CD verwaltet: ein Pfad in einem Git-Repository, zugeordnet zu einem Ziel-Cluster und Namespace.
- Sync-Policy — steuert, ob Argo CD Änderungen automatisch anwendet, sobald sich Git ändert, oder auf einen manuellen Sync wartet.
- Health- und Sync-Status — Argo CD verfolgt sowohl, ob Ressourcen gesund sind (z. B. laufende Pods), als auch, ob sie mit Git übereinstimmen (in sync, out of sync oder unbekannt).
- Projects — fassen Anwendungen zusammen und beschränken, welche Repositories, Cluster und Ressourcentypen sie verwenden dürfen.
Warum Teams GitOps mit Argo CD einsetzen
- Von Haus aus auditierbar. Jede Änderung am Cluster hat einen zugehörigen 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. - Konsistent über Umgebungen hinweg. Dasselbe Abgleichmodell gilt für einen einzelnen Namespace genauso wie für Dutzende Cluster.
- Drift-Erkennung. Änderungen, die direkt am Cluster vorgenommen werden, erscheinen sofort als „out of sync“, statt unbemerkt von dem abzuweichen, was in Git dokumentiert ist.
Erste Schritte
Installiere Argo CD in einem Kubernetes-Cluster, richte es auf ein Git-Repository mit deinen Manifesten aus – reines YAML, ein Helm-Chart oder ein Kustomize-Overlay funktionieren alle – und definiere eine Application-Ressource, die beides verbindet. Die folgenden Anleitungen führen durch die gängigsten Setups, von einer einzelnen Anwendung bis zur Verwaltung mehrerer Cluster.