Was ist ArgoCD?

ArgoCD ist ein deklaratives, GitOps-basiertes Continuous-Delivery-Tool für Kubernetes. Es automatisiert den Anwendungs-Deployment, indem es den in einem Git-Repository definierten Sollzustand kontinuierlich mit dem Kubernetes-Cluster synchronisiert – das Git-Repository wird zur einzigen Quelle der Wahrheit.

Voraussetzungen

  • Ein laufender Kubernetes-Cluster (oder kind für lokale Tests)
  • kubectl konfiguriert für den Cluster-Zugriff
  • Ein Git-Repository mit Kubernetes-Manifesten

ArgoCD installieren

Erstellen Sie den ArgoCD-Namespace und wenden Sie das offizielle Installationsmanifest an:

kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

Warten Sie, bis alle Pods bereit sind:

kubectl wait --for=condition=Ready pod --all -n argocd --timeout=120s

Zugriff auf die ArgoCD-Oberfläche

Standardmäßig ist der ArgoCD-Server nicht extern erreichbar. Verwenden Sie Port-Forwarding für den lokalen Zugriff:

kubectl port-forward svc/argocd-server -n argocd 8080:443

Öffnen Sie https://localhost:8080 in Ihrem Browser und rufen Sie das initiale Admin-Passwort ab:

kubectl -n argocd get secret argocd-initial-admin-secret \
  -o jsonpath="{.data.password}" | base64 -d

Melden Sie sich mit dem Benutzer admin und dem abgerufenen Passwort an.

ArgoCD CLI installieren

# macOS
brew install argocd

# Linux
curl -sSL -o argocd https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64
chmod +x argocd && sudo mv argocd /usr/local/bin/

CLI authentifizieren:

argocd login localhost:8080 --username admin --password <ihr-passwort> --insecure

Erste Anwendung deployen

Erstellen Sie eine Anwendung, die auf das offizielle ArgoCD-Beispiel-Repository zeigt:

argocd app create guestbook \
  --repo https://github.com/argoproj/argocd-example-apps.git \
  --path guestbook \
  --dest-server https://kubernetes.default.svc \
  --dest-namespace default

Lösen Sie die erste Synchronisierung aus:

argocd app sync guestbook

Status überprüfen:

argocd app get guestbook

Automatische Synchronisierung aktivieren

Standardmäßig wendet ArgoCD Änderungen aus Git nicht automatisch an. Aktivieren Sie Auto-Sync mit Self-Healing, damit der Cluster immer den Repository-Zustand widerspiegelt:

argocd app set guestbook --sync-policy automated --self-heal --auto-prune

Mit --auto-prune werden Ressourcen, die aus Git entfernt wurden, auch aus dem Cluster gelöscht.

ArgoCD aktualisieren

Wenden Sie das Installationsmanifest der Zielversion an:

kubectl apply -n argocd \
  -f https://raw.githubusercontent.com/argoproj/argo-cd/<neue-version>/manifests/install.yaml

Die neueste Version finden Sie auf der Releases-Seite. Wenden Sie nach einem Upgrade individuelle ConfigMaps (argocd-cm) erneut an, um Ihre Konfiguration beizubehalten.


Wenn Sie mich unterstützen möchten, kaufen Sie mir einen Kaffee.