Flux CD Flux CD

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.

10 min Anfänger

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:

  • --repository ist der Ort, an dem Flux seine eigenen Manifeste und später deine Anwendungskonfiguration speichert.
  • --path ist der Ordner im Repository, aus dem dieser Cluster synchronisiert. Nutze einen Pfad pro Cluster, etwa clusters/dev und clusters/production, sodass ein Repository viele Cluster bedienen kann.
  • --branch ist 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-auth nutzt das Personal Access Token selbst über HTTPS statt einen SSH Deploy Key zu erzeugen.
  • --read-write-key gibt 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