Flux - AWS Präskriptive Leitlinien

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.

Flux-Architektur und Workflow auf AWS.

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.