GitOps ist aktuell ein großes Thema – als Konzept aber eben reine Theorie. Schaut man sich aber mal ein konkretes Tool an, wird GitOps greifbar. Und dafür eignet sich die Open-Source-Software Argo CD sehr gut.
Ein vollständig synchrones GitOps Repository unter Argo CD.
(Bild: Lang / Argo CD)
Einen ausführlichen Einblick in das GitOps-Konzept haben wir bereits gegeben. Für diesen Artikel ist vor allem der technische Part relevant: GitOps stellt Git-Repositories in das Zentrum von Entwicklung einerseits und Continuous Delivery/Deployment (CD) andererseits.
Da es im Wesentlichen um Cloud-native Anwendungen geht, findet der CD-Part in einem Kubernetes-Cluster statt. Nun wird Kubernetes deklarativ über simple YAML-Dateien gesteuert – und diese werden aus dem Git-Repository bezogen.
Die Repo fungiert also gewissermaßen als Ausgabedatei für die Entwickler/Betreiber und als Eingabedatei für das Cluster. Und Argo CD setzt diesen Prozess klar strukturiert in die Praxis um.
Argo CD
Argo CD aktualisiert Cluster über ein Git-Repository – die Grundfunktion von GitOps.
(Bild: Lang / Argo CD)
Argo CD schaltet sich zwischen ein vorhandenes Git-Repo und ein vorhandenes Kubernetes-Cluster. Im Repo liegen YAML-Dateien, die unter anderem Deployments und Services beschreiben, die Anzahl der Pods bestimmen, Namensräume festlegen und so weiter. Repos lassen sich in Argo CD einfach über ihre URLs registrieren und anschließend per Klick synchronisieren.
Argo CD selbst läuft auch auf dem lokalen oder einem externen Kubernetes-Cluster. Zur Steuerung dienen das Kommandozeilen-Tool „argocd” und eine Weboberfläche. Letztere steht standardmäßig zur Verfügung, ist komfortabel und bekommt daher hier den Vorzug.
Über die GUI lassen sich anschließend relativ einfach „Apps” aus den Inhalten des Git-Repos anlegen. Wird nun eine neu angelegte App synchronisiert, triggert Argo CD das Update für das Cluster über die YAML-Dateien. Pods werden angelegt und verteilt, die Anwendung steht zur Nutzung bereit.
Was noch fehlt? Genau, die Anwendung! Die Anwendung selbst wird Kubernetes-üblich als Docker-Container aus einer Registry geladen und spielt im Argo-CD-Kontext im Grunde keine Rolle. Für einen kompletten GitOps-Workflow müssten natürlich auch die weiteren Bereiche auf Git-Repos zentriert werden, etwa Testing, Image-Erstellung, die Hauptentwicklung und so weiter.
Das ist also das recht simple Kerngeschäft von Argo CD: Konfigurationsdateien, also den Soll-Zustand, im Auge behalten und einen abweichenden Ist-Zustand entsprechend zu korrigieren. Natürlich lässt sich die Synchronisierung komplett automatisieren. Einige weitere Features:
Konfigurationsdateien als YAML, Kustomize, Helm, Ksonnet, Jsonnet
Verwaltung mehrerer Cluster
Single Sign On (OAuth2, LDAP, GitHub, Microsoft etc.)
Diff-Werkzeug
Webhook-Integration (GitHub, GitLab, BitBucket)
Automatisierungs-Token
Vorher-/Nachher-Scripting
Argo CD einrichten
Ein komplettes GitOps-Testlabor lässt sich nicht ohne weiteres aufsetzen, aber über das Test-Repo von Argo CD können Sie binnen einer Stunde verstehen, wie das Tool funktioniert. Allerdings unter einer Voraussetzung: Es muss ein Kubernetes-Cluster vorhanden sein.
Eine relativ simple Variante, um lokal mit einem richtigen Cluster zu testen, bietet das bereits von uns beleuchtete Tool Rancher. Das Schöne daran: Sie können direkt in der Weboberfläche von Rancher auch mit dem Standard-Kubernetes-Werkzeug „kubectl” arbeiten, ohne sich erst um Konfigurationsdateien und dergleichen kümmern zu müssen.
Öffnen Sie also einen Terminal mit eingerichtetem kubectl und installieren Sie Argo CD auf dem gewünschten Cluster über
Standardmäßig wird kein Port exponiert, daher müssen Sie zunächst für den (Web-)Zugriff auf Argo CD sorgen. Das offizielle Tutorial spricht an dieser Stelle von Auswahlmöglichkeiten, hier hat aber die Kombination zweier „Alternativen” zum Erfolg geführt: Zunächst wird der Service-Typ auf „Load Balancer” geändert, dann die Portweiterleitung aufgesetzt:
Bei der Installation ist automatisch ein Passwort für den Nutzer „admin” angelegt worden. Lesen Sie dieses mit folgendem Befehl aus:
kubectl get pods -n argocd -l app.kubernetes.io/name=argocd-server -o name | cut -d'/' -f 2
Jetzt können Sie sich im Browser unter „localhost:8080” als Nutzer „admin” mit dem ausgelesenen Passwort an der Argo-CD-Oberfläche anmelden. Tipp: Wenn Sie die Shell der Rancher-GUI nutzen und keine Seite zu Gesicht bekommen, schauen Sie mal mit „ip a” nach, ob der aktuelle Rechner auch wirklich der „localhost” ist!
Test-Repo einrichten
In der Weboberfläche rufen Sie zunächst mal aus der Hauptnavigation links die Einstellungen auf und fügen dann unter „Repositories/Connect Repo Using HTTPS” folgende URL hinzu: https://github.com/argoproj/argocd-example-apps.git
Wechseln Sie dann wieder oben in den Bereich Apps, weiter geht es über „+ New App”. Im folgenden Dialog geben Sie nun einige Daten an – nicht erwähnte Felder können Sie ignorieren:
Erstellen Sie die App anschließend über „Create”. Auf der Apps-Startseite bekommen Sie nun eine Box zur App mit Statusdaten – weitere Details gibt es per Klick auf die Box. Über „Refresh” wird nun der Abgleich mit der Quelle/dem Repo durchgeführt – gibt es Abweichungen, ist die App „Out of Sync”. Über „Sync” wird das Cluster dann entsprechend der Konfigurationsdateien im Reop aktualisiert.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel Communications Group GmbH & Co. KG, Max-Planckstr. 7-9, 97082 Würzburg einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von redaktionellen Newslettern nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung, Abschnitt Redaktionelle Newsletter.
Das war nun der schnellste und einfachste Weg, um mit Argo CD interagieren zu können. Wenn Sie einen GitHub-Account haben, lohnt es sich, das Test-Repo mit der guestbook-Anwendung zunächst zu forken – Sie müssten dann nur oben in der URL „https://github.com/ARGOPROJ/argocd-example-apps.git” den Teil „ARGOPROJ” durch Ihren Nutzernamen ersetzen.
Anschließend können Sie mal einen ganz praktischen Anwendungsfall testen: Rufen Sie im Repo die Datei „/guestbook/guestbook-ui-deployment.yaml” und setzen Sie den Wert für die Anzahl der Pods von 1 auf 2:
replicas: 2
Committen – und gegebenenfalls pushen – Sie die Änderung und führen Sie in Argo CD einen „Refresh” durch – die App ist „Out of Sync”. Nach einer erneuten Synchronisierung sehen Sie einen weiteren Pod – die Aktualisierung kann dann einige Zeit dauern.
Sieht man Argo CD und somit GitOps hier mal in der Praxis, fällt schnell auf, wie simpel der Urgedanke dahinter ist – es werden lediglich Aktualisierungen von Konfigurationsdateien über ein Git-Repo im laufenden Betrieb eingespielt.
Argo CD erledigt hier in einem simplen Testaufbau alles sehr zuverlässig und ist recht einfach zu bedienen – dazu ein Beispiel: Natürlich taucht die guestbook-Anwendung auch in der Rancher-Oberfläche auf. Und da stellt sich doch die Frage, wie Argo CD reagiert, wenn die Anzahl der Pods hier erhöht wird, statt im Repo.
Die Erwartungshaltung wird erfüllt: Argo CD meldet umgehend „Out of Sync” und die Synchronisierung lässt ebenso umgehend den dritten Pod in der Rancher-Oberfläche verschwinden. Dass mehrere Verwaltungswerkzeuge so reibungslos zusammenwirken, ist nun wirklich nicht alltäglich.
Es lohnt sich, Argo CD im Auge zu behalten: GitOps-Erfinder Weaveworks hat Ende 2019 eine Integration von Argo CD mit dem hauseigenen Flux CD angekündigt. Wenn es „nur” um das automatische Bereitstellen von Anwendungen via Kubernetes geht, ist Argo CD aber auch in der jetzigen Form spannend.