Flux installieren und einen Cluster bootstrappen
Installiere die Flux-CLI, führe Pre-Flight-Checks aus und bootstrappe Flux, sodass es sich selbst aus Git verwaltet.
Diese Anleitung installiert die Flux-CLI, bootstrapt Flux in einen Cluster und zeigt, was es in dein Git-Repository committet hat. Du brauchst kubectl, konfiguriert für einen Cluster, mit dem du frei experimentieren kannst. Ein lokaler kind- oder minikube-Cluster ist ideal, dazu ein GitHub-Konto, das das Repository hält.
Einen Cluster erstellen und die CLI installieren
Für einen lokalen Wegwerf-Cluster:
kind create cluster --name flux-demo
kubectl get nodes
Installiere die Flux-CLI mit Homebrew oder unter Linux mit dem Installationsskript:
brew install fluxcd/tap/flux
# oder
curl -s https://fluxcd.io/install.sh | sudo bash
Prüfe, ob sie funktioniert:
flux --version
Du kannst auch eine Binärdatei von der Releases-Seite herunterladen. Flux unterstützt die neuesten drei Kubernetes-Minor-Versionen, nutze also einen halbwegs aktuellen Cluster.
Die Pre-Flight-Checks ausführen
Mit kubectl auf deinen Cluster zeigend, frage Flux, ob der Cluster kompatibel ist:
flux check --pre
Du solltest die Kubernetes-Version und eine abschließende Zeile sehen, die besagt, dass die Voraussetzungen erfüllt sind.
Ein Personal Access Token erstellen
Bootstrap braucht ein Token, um das Repository anzulegen, Commits zu pushen und einen Deploy Key zu registrieren. Erstelle in GitHub ein klassisches Personal Access Token mit dem Scope repo oder ein feingranulares Token mit Lese- und Schreibzugriff auf Contents und Administration im Ziel-Repository. Exportiere es für die aktuelle Shell:
export GITHUB_TOKEN=<your-token>
Das Token wird nur von der CLI während des Bootstraps verwendet. Standardmäßig erstellt Flux für seinen langfristigen Zugriff einen SSH Deploy Key, und das Token wird nicht im Cluster gespeichert, daher ist eine kurze Gültigkeit (Tage, nicht Monate) in Ordnung.
Flux bootstrappen
Führe Bootstrap gegen ein persönliches Konto aus. Das Repository wird erstellt, falls es nicht existiert:
flux bootstrap github \
--owner=<your-github-user> \
--repository=fleet-infra \
--branch=main \
--path=clusters/dev \
--personal
Für eine Organisation lässt du --personal weg. Die wichtigen Flags:
--repositoryist der Ort, an dem Flux seine eigenen Manifeste und später deine Anwendungskonfiguration speichert.--pathist der Ordner im Repository, aus dem dieser Cluster synchronisiert. Nutze einen Pfad pro Cluster, etwaclusters/devundclusters/production, sodass ein Repository viele Cluster bedienen kann.--branchist der Branch, auf den Flux committet und dem es folgt.
Der Befehl verbindet sich mit GitHub, klont das Repository, erzeugt die Flux-Manifeste, committet und pusht sie, installiert Flux in den Cluster und wartet, bis die Controller bereit sind. Zwei Varianten, denen du später begegnest:
--token-authnutzt das Personal Access Token selbst über HTTPS statt einen SSH Deploy Key zu erzeugen.--read-write-keygibt dem Deploy Key Schreibzugriff. Du brauchst das, wenn Flux selbst Commits pusht, wie bei der Image-Automatisierung.
Bootstrap kann gefahrlos erneut ausgeführt werden. Mit einer neueren CLI ausgeführt, upgradet es die Controller und übernimmt alle zusätzlichen Optionen, die du angibst.
Die Installation prüfen
flux check
kubectl get pods -n flux-system
flux check meldet jeden Controller als gesund. Du solltest die laufenden Controller source, kustomize, helm und notification sehen. Sieh dir dann an, was Flux committet hat:
git clone https://github.com/<your-github-user>/fleet-infra.git
cd fleet-infra
tree clusters
clusters/
└── dev/
└── flux-system/
├── gotk-components.yaml # die Flux-Controller und CRDs
├── gotk-sync.yaml # ein GitRepository und eine Kustomization, die auf dieses Repo zurückzeigen
└── kustomization.yaml
gotk steht für GitOps Toolkit. Die zwei Objekte in gotk-sync.yaml sind das Herzstück des Setups:
flux get sources git
flux get kustomizations
Das GitRepository flux-system sagt dem source-controller, wo dein Repository liegt und welchem Branch er folgen soll. Die Kustomization flux-system sagt dem kustomize-controller, alles unter ./clusters/dev aus diesem Repository anzuwenden. Alles, was du unter diesem Pfad hinzufügst, wird automatisch aufgegriffen – so deployt die nächste Anleitung eine Anwendung.
Aufräumen
Um Flux aus dem Cluster zu entfernen:
flux uninstall
Das entfernt die Controller und CRDs sowie die Ressourcen, die Flux im Cluster verwaltet. Dein Git-Repository wird nicht gelöscht. Für ein lokales Experiment entfernt kind delete cluster --name flux-demo alles.
Beliebte Anleitungen
-
Push vs. Pull: Wie Flux auf Kubernetes ausliefert Warum pull-basierte, Git-gesteuerte Auslieferung verändert, wie du Cluster deployst, absicherst und wiederherstellst. -
Deine erste Anwendung mit GitRepository und Kustomization deployen Richte Flux mit einer Kustomization-Ressource auf Manifeste in Git aus und sieh dem Sync zu. -
Sync-Verhalten steuern: Intervalle, Prune, Drift-Korrektur und Rollback Entscheide, wann Flux Änderungen anwendet, was es löscht, wie du es pausierst und wie du ein fehlerhaftes Deployment rückgängig machst. -
Image-Updates mit Flux Image Automation automatisieren Lass Flux neue Container-Image-Tags erkennen und in Git zurückcommitten. -
Multi-Cluster mit Flux konfigurieren Mehrere Cluster aus einem Repository verwalten, mit gemeinsamer Infrastruktur und Unterschieden pro Cluster. -
Flux CD vs. Argo CD: Ein GitOps-Werkzeug wählen Vergleiche Architektur, UI, Helm, Secrets, Mandantenfähigkeit und Image-Automatisierung, um das richtige Werkzeug zu wählen.