Argo CD ist ein GitOps-Tool, das kontinuierliche Bereitstellungen von Anwendungen auf Kubernetes ermöglicht, indem es den Zustand einer Anwendung im Git-Repository mit dem tatsächlichen Zustand im Cluster synchronisiert. In diesem Blogbeitrag erkläre ich, wie eine CI/CD Pipeline auf einem Kubernetes Cluster mit Argo CD implementiert wird.
Voraussetzungen
- Ein Kubernetes Cluster – dies kann ein Cluster in der Cloud, on-premise oder ein einfaches Cluster sein, das du selbst eingerichtet hast, eine Anleitung findest Du in meinem Blog Beitrag zum CAS Clound and Platform Manager
- kubectl konfiguriert und mit dem Cluster verbunden
- Ein Git-Repository für deine Kubernetes-Manifestdateien
- Grundkenntnisse in Kubernetes und CI/CD
Was ist Argo CD?
Argo CD ist ein GitOps-Tool für die kontinuierliche Bereitstellung von Anwendungen auf Kubernetes. Du speicherst deine Kubernetes-Manifestdateien (wie Deployments, Services und ConfigMaps) in einem Git-Repository und Argo CD sorgt dafür, dass diese Konfiguration automatisch auf deinem Kubernetes-Cluster angewendet wird.
- GitOps bedeutet, dass du den gewünschten Zustand deines Systems (z. B. Kubernetes-Deployments) in einem Git-Repository deklarierst, und Argo CD stellt sicher, dass dein Cluster diesen Zustand immer widerspiegelt.
Vorbereitungen für den Kubernetes Cluster
Falls du das Cluster selbst eingerichtet hast, gehe sicher, dass dein kubectl richtig konfiguriert ist, um auf den Cluster zuzugreifen.
- Überprüfe den Cluster-Status:
kubectl get nodes
- Überprüfe die Kubernetes-API-Verbindung:
kubectl cluster-info
Argo CD auf dem Kubernetes Cluster installieren
Argo CD wird direkt auf deinem Kubernetes-Cluster installiert. Dazu verwenden wir eine YAML-Datei, die die Ressourcen von Argo CD bereitstellt.
- Namespace für Argo CD erstellen: Zuerst erstellen wir ein separates Namespace für Argo CD:
kubectl create namespace argocd
- Argo CD installieren: Wir verwenden
kubectl apply, um die Argo CD Ressourcen zu installieren:
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
- Überprüfen, ob die Argo CD-Pods laufen: Nach der Installation kannst du sicherstellen, dass die Argo CD-Pods erfolgreich laufen:
kubectl get pods -n argocd
Du solltest Ausgaben wie diese sehen:

Zugriff auf das Argo CD Dashboard
Um das Argo CD Dashboard zu nutzen, musst du Port-Forwarding verwenden, da Argo CD standardmässig über HTTPS (Port 443) zugänglich ist.
- Port-Forwarding einrichten:
kubectl port-forward svc/argocd-server -n argocd 8080:443
- Zugang zum Dashboard: Öffne deinen Browser und gehe zu http://{IPAddresse des Cluster}:8080. Du solltest das Argo CD Login-Formular sehen.
- Admin-Passwort abrufen:
kubectl get secret argocd-initial-admin-secret -n argocd -o jsonpath=“{.data.password}“ | base64 -d
Git-Repository für Kubernetes-Manifestdateien einrichten
Um Argo CD für den CI/CD-Prozess zu verwenden, musst du ein Git-Repository erstellen, das deine Kubernetes-Manifestdateien (z. B. deployment.yaml, service.yaml) enthält.
- Erstelle ein Git-Repository:
- Erstelle ein neues Repository (z. B. auf GitHub oder GitLab).
- Füge deine Kubernetes-Manifestdateien in diesem Repository hinzu. Ein Beispiel für eine
deployment.yamlkönnte so aussehen:

- Git-Repository in Argo CD einbinden:
- Melde dich im Argo CD Dashboard an.
- Gehe zu Settings > Repositories.
- Füge dein Git-Repository hinzu, indem du auf Add Repo klickst und die URL des Repositories sowie die Zugangsdaten (falls erforderlich) angibst.
Eine Argo CD Anwendung erstellen
Jetzt erstellen wir eine Argo CD Anwendung, die mit dem Git-Repository verbunden ist und die Kubernetes-Manifestdateien auf deinem Cluster anwendet.
- Argo CD Application erstellen:
- Gehe im Argo CD Dashboard zu Applications und klicke auf New App.
- Gib die folgenden Details ein:
- App Name:
mein-app - Project:
default - Sync Policy:
Automatic(so dass Änderungen im Git-Repository automatisch angewendet werden) - Repository URL: Deine Git-Repository-URL
- Revision: Der Branch, in dem die Manifestdateien gespeichert sind (z. B.
main) - Path: Der Ordner, der die Kubernetes-Manifestdateien enthält (z. B.
/deployments)
- App Name:
- Synchronisation und Bereitstellung: Klicke auf Create, um die Anwendung zu erstellen. Argo CD wird nun automatisch die Kubernetes-Ressourcen aus deinem Git-Repository auf deinem Kubernetes-Cluster anwenden und die Anwendung bereitstellen.
Testen und Verifizieren
Um zu überprüfen, ob die Pipeline funktioniert, kannst du folgende Schritte unternehmen:
- Änderungen im Git-Repository vornehmen (z. B. das Docker-Image oder eine Konfiguration in der
deployment.yaml). - Argo CD synchronisiert automatisch die Änderungen und wendet sie im Kubernetes-Cluster an.
- Überprüfe den Status der Pods:
kubectl get pods
Fazit
Herzlichen Glückwunsch! Du hast jetzt eine CI/CD-Pipeline mit Argo CD auf deinem Kubernetes Cluster installiert. Argo CD sorgt dafür, dass deine Anwendungen automatisch aus einem Git-Repository bereitgestellt und aktualisiert werden, wodurch du ein GitOps-Modell für die kontinuierliche Bereitstellung von Anwendungen auf deinem Cluster implementierst.
Mit dieser Einrichtung kannst du Git als „Single Source of Truth“ für deine Kubernetes-Deployments verwenden und alle Änderungen werden automatisch synchronisiert, wodurch dein Cluster immer im gewünschten Zustand bleibt.
