Argo CD
Technologie

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 revert und kein manueller kubectl-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.