Einstieg in ArgoCD
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)
kubectlkonfiguriert 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.