GitOps

Continuous Deployment für Kubernetes: Der einzige Weg in den Cluster ist ein Commit.

Illustration of GitOps concept with a digital brain, laptop, charts, and logos of Git, Kubernetes, Flux, and GitLab.

copebit baut seit 2018 Container-Plattformen, mit Docker, Kubernetes und ECS. Mit wachsenden Clustern und steigender Anzahl Services liessen sich zwei Dinge nicht mehr skalieren: grosse Terraform-Stacks und Push-basierte CD-Pipelines, die Credentials mit Zugriff in den Cluster benötigten.

Deshalb haben wir Continuous Delivery und die Operationen im Cluster auf GitOps umgestellt. Deployments wurden schneller, inkrementell und risikoärmer, und dasselbe Modell bildet heute die Basis der Plattformen, die wir bauen.

So funktioniert es

Flux behandelt Git als einzige Quelle der Wahrheit für Infrastruktur- und Anwendungskonfiguration und gleicht den laufenden Cluster kontinuierlich damit ab. Änderungen erreichen Kubernetes deklarativ, und die Deployment-Historie schreibt sich von selbst.

Git-Hosting ist wichtiger, als Teams erwarten, denn ein stabiles Repository macht den Betrieb stabil. Wir nutzen GitLab.com oder GitHub.com, oder eine selbst gehostete Alternative. Secrets bleiben im AWS Secrets Manager oder in HashiCorp Vault, und der Flux-Status erscheint direkt in GitLab, wo Entwickler bereits arbeiten.

Sicherer Betrieb

Flux holt Änderungen ab, nichts wird in den Cluster gepusht. Cluster bleiben vollständig privat ohne exponierten Endpunkt, und DevOps-Engineers arbeiten mit reduzierten Berechtigungen, weil Git die Schnittstelle ist.

A stylized logo with the word "flux", featuring blue gears, a clock, a flowchart, and a shield with a checkmark in front.

Pull-basiert

Flux läuft als Kubernetes-Controller, der mit einem Git-Repository verbunden ist. Änderungen werden als native Kubernetes-Objekte über Standard-Manifeste angewendet, ohne zusätzliche Abstraktionsschicht dazwischen.

Infinity loop with Kubernetes, Git, and Flux logos, symbolizing a DevOps continuous integration and deployment process.

Vollständige Kontrolle

Der Cluster gleicht sich kontinuierlich mit dem Repository ab, und alles, was von Hand geändert wird, wird automatisch zurückgesetzt. Das ist die Immutability-Firewall: Der einzige Weg hinein ist ein Commit, sodass Configuration Drift sich nirgends verstecken kann.

Flux logo with a shield, Git and Kubernetes icons, and two user symbols interconnected by arrows, representing collaboration and DevOps.

Native Developer Tools

Entwickler committen, reviewen und mergen in den Tools, die sie bereits nutzen. Sobald der Review abgeschlossen ist, holt der Controller die Änderung in den Cluster. Es gibt keine neue Konsole zu lernen.

Flowchart of Docker to Kubernetes process, showing code, build container, publish to registry, review, deploy with Flux.

Deployment-Optionen

Kubernetes-Manifeste, Helm Charts und Kustomize-Dateien. Flux synchronisiert neben Git auch aus Helm-Registries und anderen OCI-konformen Repositories, und dieselben Artefakttypen funktionieren auch mit anderen GitOps-Controllern wie ArgoCD.

Flowchart of GitOps workflow using Flux, showing integration between Helm, Kubernetes, and deployment files.

Änderungen über Umgebungen hinweg befördern

Git-Branching-Strategien führen eine Änderung nacheinander durch Staging, dann prod-eu, dann prod-us. Jede Umgebung gleicht sich mit ihrem eigenen Branch ab, sodass sich eine Änderung in einer Umgebung bewährt, bevor sie die nächste erreicht, und ein Rollback ein Revert ist statt eines Incidents.

Diagram featuring the Flux logo centrally, with connections to three labeled boxes: "staging k8s," "prod-eu k8s," and "prod-us k8s," amidst tech icons.

Ändern Sie Cluster noch von Hand?

Die meisten GitOps-Reviews beginnen mit der Frage, was passiert, wenn jemand den Cluster direkt bearbeitet.