Flux CD
La boîte à outils GitOps pour garder les clusters Kubernetes synchronisés avec Git
Flux est un ensemble de contrôleurs de livraison continue qui gardent les clusters Kubernetes synchronisés avec des sources de configuration comme des dépôts Git, des dépôts Helm et des registres OCI. Déployer devient une affaire de fusion de pull request plutôt que d’exécution de commandes impératives sur un cluster.
Comment ça marche
Flux s’exécute sous la forme de quelques contrôleurs à l’intérieur de votre cluster. Chacun fait un seul travail : l’un récupère les sources, un autre applique les manifestes Kubernetes, un autre gère les releases Helm, et ainsi de suite. Ils communiquent via des ressources personnalisées Kubernetes, si bien que tout ce que vous configurez est lui-même du YAML que vous pouvez stocker dans Git. Flux peut même gérer sa propre installation : la commande flux bootstrap committe les manifestes de Flux dans votre dépôt, puis se synchronise depuis eux.
Concepts clés
- Source : l’endroit où est stocké l’état désiré : un
GitRepository,HelmRepository,OCIRepositoryouBucket. Les objets Source récupèrent et mettent en cache un artefact que les autres contrôleurs utilisent. - Kustomization : la ressource propre à Flux qui indique au cluster quel chemin d’une source appliquer, à quelle fréquence et avec quelles options (prune, contrôles de santé, dépendances). À ne pas confondre avec le
kustomization.yamlde Kustomize, que Flux sait aussi construire. - HelmRelease : installe et met à niveau un chart Helm depuis un dépôt Helm, un dépôt Git ou un registre OCI, avec une gestion complète du cycle de vie de la release.
- Réconciliation : la boucle dans laquelle un contrôleur compare ce que Git déclare avec ce qui tourne et corrige l’écart. Elle s’exécute selon un intervalle et à la demande.
- Bootstrap : installe Flux dans un cluster et le relie à un dépôt Git pour que Flux se gère lui-même.
- Contrôleurs : source, kustomize, helm, notification, ainsi que les contrôleurs optionnels image-reflector et image-automation.
Pourquoi les équipes adoptent GitOps avec Flux
- Auditable par défaut. Chaque changement du cluster a un commit et, en général, une pull request relue.
- Rollback facile. Annuler un déploiement est un
git revert, pas une intervention manuelle aveckubectlsous pression. - Composable. N’installez que les contrôleurs dont vous avez besoin et faites-les passer à l’échelle indépendamment.
- Conçu pour les équipes plateforme. Le déchiffrement natif de secrets SOPS, la multi-tenance via le RBAC Kubernetes, les artefacts OCI et les mises à jour d’images automatisées font partie de la boîte à outils.
- Correction de dérive. Les changements effectués directement sur un cluster sont annulés à la prochaine réconciliation.
Pour commencer
Installez la CLI flux, bootstrappez Flux dans un cluster sur un dépôt Git, et ajoutez un GitRepository et une Kustomization qui pointent vers vos manifestes (du YAML brut, un overlay Kustomize ou un chart Helm). Les guides ci-dessous présentent les configurations les plus courantes, d’une application unique jusqu’à plusieurs clusters et tenants. Ils ont été rédigés pour Flux 2.9 ; consultez la documentation de Flux pour la version que vous installez.