Installer Flux et bootstrapper un cluster
Installez la CLI Flux, lancez les vérifications préalables et bootstrappez Flux pour qu'il se gère lui-même depuis Git.
Ce guide installe la CLI Flux, bootstrappe Flux dans un cluster et montre ce qu’il a committé dans votre dépôt Git. Il vous faut kubectl configuré sur un cluster avec lequel vous pouvez expérimenter librement. Un cluster local kind ou minikube est idéal, ainsi qu’un compte GitHub pour héberger le dépôt.
Créer un cluster et installer la CLI
Pour un cluster local jetable :
kind create cluster --name flux-demo
kubectl get nodes
Installez la CLI Flux avec Homebrew, ou avec le script d’installation sous Linux :
brew install fluxcd/tap/flux
# ou
curl -s https://fluxcd.io/install.sh | sudo bash
Vérifiez qu’elle fonctionne :
flux --version
Vous pouvez aussi télécharger un binaire depuis la page des releases. Flux prend en charge les trois dernières versions mineures de Kubernetes, utilisez donc un cluster raisonnablement récent.
Lancer les vérifications préalables
Avec kubectl pointant vers votre cluster, demandez à Flux si le cluster est compatible :
flux check --pre
Vous devriez voir la version de Kubernetes et une dernière ligne indiquant que les prérequis sont satisfaits.
Créer un jeton d’accès personnel
Le bootstrap a besoin d’un jeton pour créer le dépôt, pousser des commits et enregistrer une deploy key. Dans GitHub, créez un jeton d’accès personnel classic avec le scope repo, ou un jeton fine-grained avec un accès en lecture et en écriture à Contents et Administration sur le dépôt cible. Exportez-le pour le shell courant :
export GITHUB_TOKEN=<your-token>
Le jeton n’est utilisé que par la CLI pendant le bootstrap. Par défaut, Flux crée une deploy key SSH pour son accès à long terme, et le jeton n’est pas stocké dans le cluster, une courte durée de validité (des jours, pas des mois) convient donc.
Bootstrapper Flux
Lancez le bootstrap sur un compte personnel. Le dépôt est créé s’il n’existe pas :
flux bootstrap github \
--owner=<your-github-user> \
--repository=fleet-infra \
--branch=main \
--path=clusters/dev \
--personal
Pour une organisation, omettez --personal. Les options qui comptent :
--repositoryest l’endroit où Flux stocke ses propres manifestes et, plus tard, la configuration de vos applications.--pathest le dossier du dépôt à partir duquel ce cluster se synchronise. Utilisez un chemin par cluster, commeclusters/devetclusters/production, pour qu’un même dépôt puisse servir plusieurs clusters.--branchest la branche sur laquelle Flux committe et qu’il suit.
La commande se connecte à GitHub, clone le dépôt, génère les manifestes de Flux, les committe et les pousse, installe Flux dans le cluster et attend que les contrôleurs soient prêts. Deux variantes que vous rencontrerez plus tard :
--token-authutilise le jeton d’accès personnel lui-même via HTTPS au lieu de générer une deploy key SSH.--read-write-keydonne un accès en écriture à la deploy key. Vous en avez besoin quand Flux pousse lui-même des commits, comme pour l’automatisation d’images.
Le bootstrap peut être relancé sans risque. L’exécuter avec une CLI plus récente met à niveau les contrôleurs, et il prendra en compte toutes les options supplémentaires que vous passez.
Vérifier l’installation
flux check
kubectl get pods -n flux-system
flux check indique que chaque contrôleur est sain. Vous devriez voir les contrôleurs source, kustomize, helm et notification en cours d’exécution. Regardez ensuite ce que Flux a committé :
git clone https://github.com/<your-github-user>/fleet-infra.git
cd fleet-infra
tree clusters
clusters/
└── dev/
└── flux-system/
├── gotk-components.yaml # les contrôleurs et les CRD de Flux
├── gotk-sync.yaml # un GitRepository et une Kustomization qui pointent vers ce dépôt
└── kustomization.yaml
gotk signifie GitOps Toolkit. Les deux objets de gotk-sync.yaml sont le cœur de la configuration :
flux get sources git
flux get kustomizations
Le GitRepository flux-system indique à source-controller où se trouve votre dépôt et quelle branche suivre. La Kustomization flux-system indique à kustomize-controller d’appliquer tout ce qui se trouve sous ./clusters/dev de ce dépôt. Tout ce que vous ajoutez sous ce chemin est pris en compte automatiquement, et c’est ainsi que le guide suivant déploie une application.
Nettoyer
Pour retirer Flux du cluster :
flux uninstall
Cela supprime les contrôleurs, les CRD et les ressources que Flux gère dans le cluster. Cela ne supprime pas votre dépôt Git. Pour une expérience locale, kind delete cluster --name flux-demo supprime tout.
Guides populaires
-
Push ou pull : comment Flux livre sur Kubernetes Pourquoi une livraison pilotée par Git et basée sur le pull change la façon de déployer, de sécuriser et de restaurer les clusters. -
Déployer votre première application avec un GitRepository et une Kustomization Pointez Flux vers des manifestes dans Git à l'aide d'une ressource Kustomization et regardez la synchronisation se faire. -
Contrôler le comportement de synchronisation : intervalles, prune, correction de dérive et rollback Décidez quand Flux applique les changements, ce qu'il supprime, comment le mettre en pause et comment annuler un mauvais déploiement. -
Automatiser les mises à jour d'images avec Flux Image Automation Laissez Flux détecter les nouveaux tags d'images de conteneurs et les committer dans Git. -
Configurer le multi-cluster avec Flux Gérez plusieurs clusters depuis un seul dépôt, avec une infrastructure partagée et des différences propres à chaque cluster. -
Flux CD ou Argo CD : choisir un outil GitOps Comparez l'architecture, l'interface, Helm, les secrets, la multi-tenance et l'automatisation d'images pour choisir le bon outil.