Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Flux
Flux ist ein weiteres Tool für Kubernetes, das GitOps Prinzipien auf einzigartige Weise implementiert.
GitOps Unterstützung
| Flächen | Funktionen des Tools |
|---|---|
Git als zentrale Informationsquelle |
Flux verwendet Git-Repositorys als endgültige Quelle für die Definition des gewünschten Systemstatus. Die gesamte Konfiguration für Anwendungen und Infrastruktur wird in Git gespeichert. |
Deklarative Konfiguration |
Flux arbeitet mit deklarativen Beschreibungen des gewünschten Zustands Ihres Clusters. Bei diesen Beschreibungen handelt es sich in der Regel um Kubernetes-Manifeste, Helm-Diagramme oder Kustomize-Overlays. |
Automatisierte Synchronisation |
Flux überwacht das Git-Repository kontinuierlich auf Änderungen. Wenn es Änderungen erkennt, wendet es sie automatisch auf den Cluster an. |
Kubernetes-nativ |
Flux besteht aus einer Reihe von Kubernetes-Controllern und benutzerdefinierten Ressourcen. Es nutzt die Erweiterungsmechanismen in Kubernetes, um Funktionen bereitzustellen. GitOps |
Pull-basiertes Bereitstellungsmodell |
Im Gegensatz zu herkömmlichen Push-basierten CI/CD Systemen verwendet Flux ein Pull-basiertes Modell. Der Cluster ruft den gewünschten Status aus Git ab, anstatt ein externes System zu verwenden, um Änderungen zu übertragen. |
Kontinuierlicher Abgleich |
Flux vergleicht ständig den aktuellen Zustand des Clusters mit dem gewünschten Zustand in Git. Es korrigiert automatisch jede Abweichung, die zwischen diesen Zuständen erkannt wird. |
Mehrmandantenfähigkeit |
Flux unterstützt Mehrmandantenfähigkeit durch seine Konzepte für Anpassungen und. HelmReleases Verschiedene Teams können ihre eigenen Teile der Konfiguration unabhängig voneinander verwalten. |
Progressive Lieferung |
Flux unterstützt mit seiner Flagger-Komponente fortschrittliche Bereitstellungsstrategien wie Veröffentlichungen und A/B Tests auf Canary. |
Helmintegration |
Flux bietet native Unterstützung für Helm, sodass Sie Helm-Versionen einfach verwalten können GitOps. |
Automatisierung der Image-Aktualisierung |
Flux kann Container-Images in Git automatisch aktualisieren, wenn neue Versionen in der Container-Registry verfügbar sind. |
Unterstützung anpassen |
Sie können die native Unterstützung von Flux für Kustomize verwenden, um Kubernetes-Manifeste anzupassen und zu patchen. |
Sicherheit und RBAC |
Flux lässt sich zur Zugriffskontrolle in Kubernetes RBAC integrieren. Es unterstützt die Verwaltung von Geheimnissen über verschiedene Backends. |
Beobachtbarkeit |
Flux bietet Statusinformationen und Kennzahlen zu Abstimmungen und Vorgängen. Es lässt sich in Überwachungstools integrieren, um die Beobachtbarkeit zu verbessern. |
Ereignisgesteuerte Architektur |
Flux verwendet einen ereignisgesteuerten Ansatz zur Implementierung von Abstimmungen und Aktualisierungen. |
Erweiterbarkeit |
Das Tool ist so konzipiert, dass es erweiterbar ist, sodass Sie benutzerdefinierte Controller und Ressourcen hinzufügen können. |
Clusterübergreifende Synchronisation |
Flux unterstützt die Verwaltung mehrerer Cluster aus einem einzigen Satz von Repositorys. |
Abhängigkeitsmanagement |
Es ermöglicht die Definition von Abhängigkeiten zwischen verschiedenen Teilen Ihres Systems und stellt die korrekte Reihenfolge der Operationen sicher. |
Webhook-Empfänger |
Sie können Flux so konfigurieren, dass es Webhooks von Git-Anbietern oder anderen Systemen empfängt, um den sofortigen Abgleich zu starten. |
Durch die Implementierung dieser GitOps Prinzipien bietet Flux ein robustes und flexibles System für die Verwaltung von Kubernetes-Clustern und -Anwendungen. Es stellt sicher, dass Ihre Infrastruktur und Anwendungen immer mit Ihren Git-Repositorys synchronisiert sind, und sorgt für Konsistenz, Zuverlässigkeit und einfache Verwaltung in komplexen Kubernetes-Umgebungen. Durch den Kubernetes-nativen Ansatz und den Fokus auf Automatisierung eignet sich das Tool besonders gut für Cloud-native Umgebungen.
Szenarien und Anforderungen, die Flux erfüllen kann, finden Sie weiter unten in diesem Handbuch unter Flux-Anwendungsfälle. Einen Vergleich zwischen Argo CD und Flux finden Sie weiter unten in diesem Handbuch unter Funktionsvergleich.
Weitere Informationen finden Sie in der Flux-Dokumentation
Architektur
Das folgende Diagramm zeigt einen GitOps CD-gesteuerten Workflow, der Flux innerhalb eines EKS-Clusters verwendet. Detaillierte Informationen finden Sie in der Flux-Dokumentation
Wobei:
-
Schritt 1: Zusammenführung von Pull-Requests (PR). Ein Entwickler überträgt Änderungen an Kubernetes-Manifesten oder Helm-Diagrammen, die in einem Git-Repository gespeichert sind. Wenn der PR überprüft und mit dem Hauptzweig zusammengeführt wurde, wird der gewünschte Status der Anwendung in der Quellcodeverwaltung aktualisiert.
-
Schritt 2: Repository-Synchronisierung. Flux läuft in einem dedizierten Namespace im EKS-Cluster und überwacht kontinuierlich das konfigurierte Git-Repository. Wenn es Änderungen erkennt, ruft es die neuesten Updates ab, um den deklarierten Status abzugleichen.
-
Schritt 3: Bereitstellung im Ziel-Namespace. Flux vergleicht den gewünschten Status von Git mit dem Live-Status im Cluster. Anschließend werden die erforderlichen Änderungen auf den Ziel-Workload-Namespace angewendet, sodass die Anwendung entsprechend bereitgestellt oder aktualisiert wird.