Was ist GitOps?
GitOps ist ein Konzept, das über einen deklarativen Ansatz Infrastrukturen und Anwendungen verwaltet und über Git kontrolliert. Die Ziele dieser Idee sind automatisierte Abläufe, Zeitersparnis sowie eine bessere und sicherere Zusammenarbeit einzelner Teams an den Repositorys.
Was ist GitOps?
GitOps ist ein Ansatz für die automatisierte Verwaltung von Anwendungen und Infrastruktur, bei dem Git als zentrale Steuerungsinstanz dient. Das Git-Repository ist dabei die Single Source of Truth: Es enthält den gewünschten Zustand eines Systems, zum Beispiel Kubernetes-Manifeste, Helm-Charts, Konfigurationsdateien oder Infrastrukturdefinitionen. Die tatsächliche Umgebung wird anschließend kontinuierlich mit diesem definierten Zielzustand abgeglichen.
GitOps baut auf bewährten Konzepten wie DevOps, Infrastructure as Code (IaC) und Continuous Delivery auf. Der entscheidende Unterschied: Änderungen werden nicht mehr manuell direkt auf einem Server oder Cluster ausgeführt. Stattdessen werden sie in Git versioniert, geprüft und anschließend automatisiert in die Zielumgebung übernommen. Dadurch entsteht ein nachvollziehbarer, reproduzierbarer und gut kontrollierbarer Deployment-Prozess.
Der Begriff GitOps etablierte sich ab 2017 im Cloud-Native-Umfeld. Inzwischen ist GitOps kein kurzfristiger Hype mehr, sondern ein fester Bestandteil moderner Kubernetes- und Cloud-Native-Architekturen. Das zeigt sich auch daran, dass zentrale GitOps-Werkzeuge wie Argo CD und Flux heute zur Cloud Native Computing Foundation (CNCF) gehören und dort den Reifegrad „Graduated“ erreicht haben.
Die ideale Plattform für performante und hochskalierbare Container-Anwendungen. Umfassend ins IONOS Cloud Ökosystem integriert und rund um die Uhr professionell betreut.
Die vier Prinzipien von GitOps
GitOps folgt klaren Grundprinzipien. Sie sorgen dafür, dass Deployments nicht nur automatisiert, sondern auch nachvollziehbar, überprüfbar und sicher umgesetzt werden können.
Prinzip 1: Der gewünschte Zustand ist deklarativ beschrieben
Bei GitOps wird nicht Schritt für Schritt festgelegt, wie ein System verändert werden soll. Stattdessen wird beschrieben, wie das System am Ende aussehen soll. Diese deklarative Beschreibung kann zum Beispiel festlegen, welche Container laufen, welche Version einer Anwendung genutzt wird, welche Services erreichbar sein sollen oder welche Ressourcen ein Kubernetes-Cluster bereitstellt.
Statt beispielsweise einem Server manuell mitzuteilen, dass ein neuer Container gestartet werden soll, wird in einer Konfigurationsdatei definiert, dass drei Instanzen einer bestimmten Anwendung in einer bestimmten Version laufen sollen. Das GitOps-System sorgt anschließend dafür, dass dieser Zustand erreicht wird.
Prinzip 2: Der Zustand ist versioniert und unveränderbar gespeichert
Alle relevanten Konfigurationen liegen in Git. Dadurch ist jede Änderung nachvollziehbar: Wer hat was geändert? Wann wurde die Änderung vorgenommen? Warum wurde die Änderung freigegeben? Durch Pull-Requests, Reviews und Commit-Historien entsteht ein vollständiger Verlauf.
Das hat einen wichtigen Vorteil für den Betrieb. Wenn ein Deployment fehlschlägt oder eine Änderung unerwartete Nebenwirkungen hat, kann ein vorheriger Zustand wiederhergestellt werden. Rollbacks werden dadurch deutlich einfacher, weil der ältere, funktionierende Zustand bereits im Repository dokumentiert ist.
Prinzip 3: Änderungen werden automatisch aus der versionierten Quelle gezogen
Ein zentrales Merkmal von GitOps ist das Pull-Prinzip. Ein GitOps-Operator wie Argo CD oder Flux läuft innerhalb der Zielumgebung, zum Beispiel in einem Kubernetes-Cluster. Dieser Operator beobachtet die definierte Quelle für den gewünschten Systemzustand und zieht freigegebene Änderungen automatisch in den Cluster.
In vielen GitOps-Setups ist diese Quelle ein Git-Repository. Moderne GitOps-Tools können jedoch auch andere versionierte oder nachvollziehbare Quellen wie OCI-Artefakte oder Helm-Repositorys einbinden. Entscheidend ist, dass der gewünschte Zustand nicht manuell in die Zielumgebung gepusht wird, sondern von einem Software-Agenten aus einer definierten Quelle abgerufen wird.
Dadurch muss die CI-Pipeline nicht direkt auf den Cluster zugreifen. Der Cluster holt sich die freigegebenen Änderungen selbst. Das reduziert die Anzahl sensibler Zugangsdaten außerhalb der Zielumgebung und macht den Deployment-Prozess sicherer.
Prinzip 4: Der tatsächliche Zustand wird kontinuierlich abgeglichen
GitOps endet nicht mit dem Deployment. Der GitOps-Operator prüft fortlaufend, ob der tatsächliche Zustand der Infrastruktur noch mit dem gewünschten Zustand in Git übereinstimmt. Gibt es Abweichungen, spricht man von „Drift“.
Ein solcher Drift kann entstehen, wenn jemand manuell Änderungen im Cluster vornimmt oder wenn ein Prozess fehlschlägt. GitOps erkennt diese Abweichungen und kann je nach Konfiguration eine Warnung ausgeben oder den gewünschten Zustand automatisch wiederherstellen.
Wie funktioniert GitOps in der Praxis?
Ein typischer GitOps-Workflow beginnt mit einer Änderung am Code oder an der Konfiguration einer Anwendung. Diese Änderung wird nicht direkt auf die Produktionsumgebung übertragen, sondern zunächst in Git eingereicht. In der Praxis läuft der Prozess häufig so ab:
- Eine Entwicklerin oder ein Entwickler nimmt eine Änderung vor.
- Die Änderung wird als Pull-Request in Git erstellt.
- Automatisierte Tests und Reviews prüfen die Änderung.
- Nach der Freigabe wird der Pull-Request gemergt.
- Die CI-Pipeline baut ein neues Container-Image und legt es in einer Container-Registry ab.
- Das Git-Repository mit den Deployment-Konfigurationen wird aktualisiert.
- Der GitOps-Operator im Kubernetes-Cluster erkennt die Änderung.
- Der Operator zieht den neuen Zielzustand aus Git und synchronisiert den Cluster.
Push- vs. Pull-basiertes Deployment
Der Unterschied zwischen Push und Pull ist einer der wichtigsten Punkte, um GitOps zu verstehen.
Beim klassischen Push-basierten Deployment stößt ein externer Prozess die Änderung aktiv an. Eine CI/CD-Pipeline erhält Zugriff auf die Zielumgebung und führt dort Befehle aus. Sie „pusht“ also ein neues Deployment in den Cluster. Dafür benötigt die Pipeline entsprechende Zugangsdaten, zum Beispiel Kubernetes-Credentials. Diese Zugangsdaten müssen geschützt, regelmäßig geprüft und sauber verwaltet werden.
Beim Pull-basierten Deployment funktioniert es umgekehrt. Der GitOps-Operator läuft in der Zielumgebung und fragt regelmäßig ab, ob sich der gewünschte Zustand in Git geändert hat. Ist das der Fall, zieht er die Änderung selbstständig in den Cluster. Die CI-Pipeline muss deshalb keinen direkten administrativen Zugriff auf den Cluster besitzen.
Das Pull-Prinzip gilt tendenziell als sicherer, weil weniger Systeme privilegierten Zugriff auf die Produktionsumgebung benötigen. Der CI-Server muss keine dauerhaften Cluster-Zugangsdaten speichern. Gleichzeitig bleibt Git der zentrale Ort, an dem Änderungen geprüft, dokumentiert und freigegeben werden.
Ein weiterer Vorteil: Die Zielumgebung entscheidet selbst, was übernommen wird. Der GitOps-Operator kann Richtlinien, Rollen und Synchronisationsregeln berücksichtigen. Dadurch lässt sich genauer steuern, welche Änderungen in welcher Umgebung landen.
GitOps, DevOps und Continuous Delivery
GitOps ersetzt DevOps oder DevSecOps nicht, sondern ergänzt diese Ansätze um einen konkreten technischen Workflow für Deployments und Infrastrukturverwaltung. Die Unterschiede lassen sich so zusammenfassen:
- DevOps: DevOps beschreibt eine Arbeitsweise, bei der Entwicklung und IT-Betrieb enger zusammenarbeiten. Ziel ist es, Software schneller, zuverlässiger und mit weniger Reibungsverlusten bereitzustellen.
- DevSecOps: DevSecOps erweitert DevOps um den Sicherheitsaspekt. Sicherheitsprüfungen werden nicht erst am Ende eines Projekts durchgeführt, sondern frühzeitig in Entwicklung, Tests und Betrieb integriert.
- GitOps: GitOps überträgt DevOps-Prinzipien auf den Betrieb moderner Cloud- und Kubernetes-Umgebungen. Git dient dabei als Single Source of Truth für den gewünschten Zustand von Anwendungen und Infrastruktur.
GitOps lässt sich problemlos mit DevSecOps verbinden. Sicherheitsprüfungen können bereits in Pull-Requests eingebunden werden. Richtlinien, Zugriffsrechte und Sicherheitskonfigurationen werden versioniert und überprüfbar. Dadurch werden Security-Aspekte früher im Prozess berücksichtigt und nicht erst nachträglich im Betrieb ergänzt.
GitOps und Kubernetes: Ein perfektes Match
Kubernetes eignet sich besonders gut für GitOps, weil beide Ansätze deklarativ funktionieren. In Kubernetes wird der gewünschte Zustand eines Systems über Ressourcen wie Deployments, Services, Ingress-Regeln, ConfigMaps oder Secrets beschrieben. Kubernetes sorgt anschließend dafür, diesen Zustand herzustellen und aufrechtzuerhalten.
GitOps ergänzt diesen Mechanismus um eine versionierte Steuerungsebene: Der gewünschte Zustand liegt in Git und wird von einem GitOps-Operator wie Argo CD oder Flux mit dem tatsächlichen Zustand des Clusters abgeglichen. Git wird damit zur zentralen Kontrollinstanz, während Kubernetes die technische Umsetzung übernimmt.
Für eine übersichtliche Struktur sollten Anwendungscode und Deployment-Konfiguration getrennt werden. Häufig liegt der Code in einem eigenen Repository, während Kubernetes-Manifeste, Helm-Charts oder Kustomize-Konfigurationen separat verwaltet werden. Bei mehreren Umgebungen wie Entwicklung, Staging und Produktion helfen eigene Verzeichnisse oder Repositorys, Konfigurationen sauber voneinander zu trennen.
Die wichtigsten GitOps-Tools im Überblick
Die GitOps-Landschaft hat sich in den vergangenen Jahren deutlich weiterentwickelt. Heute stehen vor allem Argo CD (Enterprise-Sektor) und Flux (Kubernetes-native Projekte) im Mittelpunkt.
Argo CD
Argo CD ist eines der bekanntesten GitOps-Tools für Kubernetes und gilt in vielen Teams als De-facto-Standard für visuell gesteuerte GitOps-Workflows. Die Lösung eignet sich besonders für Organisationen, die mehrere Anwendungen, Umgebungen oder Kubernetes-Cluster zentral verwalten möchten.
Ein großer Vorteil von Argo CD ist die grafische Benutzeroberfläche. Sie zeigt auf einen Blick, ob Anwendungen synchron mit dem gewünschten Zustand in Git sind, welche Ressourcen im Cluster laufen und wo Abweichungen oder Fehler auftreten. Dadurch wird GitOps nicht nur automatisiert, sondern auch visuell nachvollziehbar. Teams können Deployments, Synchronisationsstatus, Health-Checks und Rollbacks deutlich einfacher überwachen.
Auch beim Multi-Cluster-Management spielt Argo CD seine Stärken aus. Anwendungen können aus einer zentralen Argo-CD-Instanz heraus in unterschiedliche Kubernetes-Cluster und Umgebungen ausgerollt werden. Das ist besonders hilfreich, wenn Entwicklung, Staging und Produktion getrennt laufen oder wenn größere Organisationen viele Cluster parallel betreiben.
Argo CD unterstützt verschiedene Konfigurationsarten, darunter Kubernetes-Manifeste, Helm-Charts und Kustomize. In Kombination mit Funktionen wie RBAC, SSO, Health-Status-Analysen und ApplicationSets eignet sich Argo CD vor allem für Teams, die GitOps transparent, skalierbar und gut steuerbar umsetzen möchten.
Flux
Das Community-getragene Flux wurde für Kubernetes-native GitOps-Workflows aufgebaut. Die Lösung basiert auf dem GitOps Toolkit, einer Sammlung von APIs und Controllern, mit denen sich Continuous Delivery auf Kubernetes modular umsetzen lässt.
Flux eignet sich besonders für Teams, die GitOps stark automatisieren und eng in bestehende Kubernetes-Prozesse integrieren möchten. Es kann Git-Repositorys, Helm-Repositorys und OCI-Artefakte überwachen und Änderungen automatisch in den Cluster übernehmen. Auch automatisierte Image-Updates, Multi-Tenancy und die Synchronisation mehrerer Repositorys lassen sich damit abbilden.
Im Vergleich zu Argo CD steht bei Flux weniger die grafische Oberfläche im Vordergrund. Dafür punktet Flux mit einer schlanken, modularen Architektur und einer sehr guten Integration in automatisierte Plattform- und Infrastrukturprozesse.
Weitere Tools im GitOps-Umfeld
Neben Argo CD und Flux gibt es allerdings auch weitere Werkzeuge die eine Rolle spielen:
| Tool | Einsatzbereich |
|---|---|
| Helm | Paketmanager für Kubernetes-Anwendungen |
| Kustomize | Anpassung von Kubernetes-Manifesten ohne Templates |
| Sealed Secrets | Verschlüsselung von Kubernetes-Secrets für die Speicherung in Git |
| External Secrets Operator | Synchronisation von Secrets aus externen Secret Stores |
| SOPS | Verschlüsselung sensibler Konfigurationsdateien |
| Cluster API | Deklarative Verwaltung von Kubernetes-Clustern |
Gerade beim Secret Management ist die Tool-Auswahl wichtig. Passwörter, Tokens und Zertifikate dürfen nicht im Klartext in Git gespeichert werden. Stattdessen sollten sensible Daten verschlüsselt oder aus externen Secret Stores eingebunden werden.
Best Practice: GitOps mit IONOS Managed Kubernetes
Im Rahmen von IONOS Managed Kubernetes Hosting wird eine Kubernetes-Installation bereitgestellt und verwaltet. Teams können sich dadurch stärker auf Anwendungen, Konfigurationen und Deployments konzentrieren.
Schritt 1: Kubernetes-Cluster erstellen
Zunächst wird über IONOS Cloud ein Managed-Kubernetes-Cluster erstellt. Dazu gehören ein Cluster, ein oder mehrere Node-Pools sowie die passenden Netzwerk- und Zugriffsoptionen. Nach der Einrichtung wird die Kubeconfig-Datei heruntergeladen, damit Administrierende den Cluster mit kubectl oder anderen Kubernetes-Werkzeugen ansprechen können.
Schritt 2: Git-Repository vorbereiten
Anschließend wird ein Git-Repository für die Deployment-Konfigurationen angelegt. Dieses Repository enthält zum Beispiel:
- Kubernetes-Manifeste
- Helm-Charts
- Kustomize-Konfigurationen
- Umgebungsordner für Entwicklung, Staging und Produktion
- Richtlinien für Namespaces, Services und Ingress
Wichtig ist, dass dieses Repository den gewünschten Zustand der Anwendungen beschreibt. Es ist damit die „Single Source of Truth“ für den Cluster.
Schritt 3: Argo CD oder Flux installieren
Im nächsten Schritt wird ein GitOps-Operator im IONOS Kubernetes-Cluster installiert. Für Argo CD kann dies über die offiziellen Kubernetes-Manifeste oder über Helm erfolgen. Flux wird typischerweise über die Flux CLI eingerichtet und mit einem Git-Repository verbunden.
Nach der Installation läuft der Operator direkt im Cluster. Er beobachtet das konfigurierte Git-Repository und erkennt, wenn sich der gewünschte Zustand ändert.
Schritt 4: Repository mit dem Cluster verbinden
Nun wird definiert, welche Anwendung aus welchem Repository oder Verzeichnis in welchen Namespace ausgerollt werden soll. Bei Argo CD geschieht dies über sogenannte Applications. Bei Flux werden entsprechende Ressourcen wie GitRepository, Kustomization oder HelmRelease genutzt.
Ab diesem Punkt übernimmt der GitOps-Operator die Synchronisation. Wird eine Änderung in Git freigegeben, erkennt der Operator die neue Version und gleicht den Cluster mit dem Repository ab.
Schritt 5: Deployment kontrollieren und überwachen
Nach der Einrichtung sollte geprüft werden, ob Anwendungen korrekt synchronisiert werden. Bei Argo CD lässt sich der Status bequem über die Weboberfläche einsehen. Bei Flux erfolgt die Kontrolle meist über kubectl, die Flux CLI oder Monitoring-Systeme.
Für produktive Umgebungen empfiehlt es sich, zusätzlich Benachrichtigungen, Monitoring und klare Freigabeprozesse einzurichten. So wird GitOps nicht nur technisch umgesetzt, sondern auch organisatorisch sauber verankert.

Vorteile und Herausforderungen von GitOps
GitOps bringt viele Vorteile für Entwicklung, Betrieb und Sicherheit. Gleichzeitig entstehen neue Anforderungen an Teams, Prozesse und Tooling.
Vorteile
- Mehr Produktivität: Durch die Automatisierung können deutlich mehr Änderungen in kürzerer Zeit durchgeführt werden. Entwicklerinnen und Entwickler treiben dadurch Projekte effektiver voran.
- Bessere Nachvollziehbarkeit: Da alle Änderungen in Git dokumentiert sind, lässt sich jederzeit nachvollziehen, welche Anpassung wann und von wem vorgenommen wurde. Das erleichtert Audits, Fehleranalysen und interne Abstimmungen.
- Einfachere Rollbacks: Wenn eine Änderung Probleme verursacht, kann ein früherer Zustand aus Git wiederhergestellt werden. Dadurch sind Rollbacks planbarer und weniger fehleranfällig.
- Mehr Stabilität: Der kontinuierliche Abgleich zwischen Git und Cluster erkennt Abweichungen frühzeitig. Unbeabsichtigte manuelle Änderungen können gemeldet oder automatisch korrigiert werden.
- Bessere Zugriffskontrolle durch das Pull-Prinzip: Bei GitOps muss der CI-Server keine direkten Zugangsdaten zum Kubernetes-Cluster speichern. Der GitOps-Operator läuft innerhalb der Zielumgebung und zieht freigegebene Änderungen aus Git. Dadurch können Berechtigungen stärker nach dem Prinzip der minimalen Rechte vergeben und externe CI/CD-Systeme entlastet werden.
- Einheitliche Arbeitsabläufe: GitOps schafft klare Prozesse für Änderungen. Neue Teammitglieder können schneller verstehen, wie Anwendungen bereitgestellt und Konfigurationen verwaltet werden.
Herausforderungen
- Lernkurve: Teams, die bisher nur klassische CI/CD-Prozesse kennen, müssen sich zunächst an die GitOps-Arbeitsweise gewöhnen. Besonders das Pull-Prinzip, die Trennung von CI und CD sowie der Umgang mit deklarativen Konfigurationen erfordern Einarbeitung.
- Komplexität bei mehreren Umgebungen: Bei vielen Clustern, Anwendungen und Umgebungen kann die Repository-Struktur schnell unübersichtlich werden. Eine klare Ordnerstruktur, Namenskonventionen und Zuständigkeiten sind deshalb wichtig.
- Secret Management: Sensible Daten dürfen nicht unverschlüsselt in Git gespeichert werden. Für Passwörter, Tokens und Zertifikate sind zusätzliche Lösungen wie Sealed Secrets, SOPS oder der External Secrets Operator erforderlich. Ohne ein sauberes Secret-Konzept entstehen Sicherheitsrisiken.
- Trennung von CI und CD: Die Trennung von Build/Test und Deployment ist ein Vorteil, kann aber bestehende Prozesse verändern. Teams müssen festlegen, welche Aufgaben in der CI-Pipeline bleiben und welche durch GitOps übernommen werden.
- Abhängigkeit von Git-Prozessen: Wenn Git die „Single Source of Truth“ ist, müssen Pull-Requests, Reviews und Branch-Strategien zuverlässig funktionieren. Schlechte Git-Prozesse wirken sich direkt auf Deployments und Betrieb aus.
Fazit
GitOps ist heute ein zentraler Ansatz für moderne Cloud-native Deployments. Das Konzept verbindet Git, Infrastructure as Code, Kubernetes und Continuous Delivery zu einem klar nachvollziehbaren Betriebsmodell. Git wird dabei zur „Single Source of Truth“ für den gewünschten Zustand von Anwendungen und Infrastruktur.
Besonders stark ist GitOps in Kubernetes-Umgebungen. Tools wie Argo CD und Flux haben sich als wichtige Standards etabliert und ermöglichen automatisierte, versionierte und überprüfbare Deployments. Das Pull-Prinzip erhöht die Sicherheit, weil Änderungen aus Git gezogen werden und CI-Systeme keinen direkten Zugriff auf Produktionscluster benötigen.
Für den erfolgreichen Einsatz braucht es jedoch mehr als ein Tool. Entscheidend sind eine saubere Repository-Struktur, klare Review-Prozesse, ein durchdachtes Secret Management und ein gemeinsames Verständnis im Team. Wer diese Grundlagen schafft, kann mit GitOps Deployments beschleunigen, Fehler reduzieren und die Stabilität moderner IT-Infrastrukturen deutlich verbessern.
- 100 % DSGVO-konform und sicher in Deutschland gehostet
- Die leistungsstärksten KI-Modelle auf einer Plattform
- Kein Vendor Lock-in durch Open Source



