Introduction à Flux
Table des matières
1 - Qu'est-ce que Flux ?
Définition
Flux est un toolkit GitOps composé de contrôleurs Kubernetes qui synchronisent les configurations depuis Git vers le cluster.
Caractéristiques clés
| Caractéristique | Description |
|---|---|
| Modulaire | Composants séparés et indépendants |
| GitOps natif | Git comme source de vérité |
| CNCF Graduated | Projet mature (anciennement Weaveworks) |
| CLI-first | Pas d'UI native (Weave GitOps disponible) |
| Image Automation | Mise à jour automatique des images |
Historique
- 2016 : Flux v1 créé par Weaveworks
- 2019 : Réécriture complète (Flux v2)
- 2021 : Rejoint la CNCF comme projet Incubating
- 2022 : Devient CNCF Graduated
- 2023 : Weaveworks ferme, Flux continue indépendamment
🔝 Retour à la table des matières
2 - Architecture modulaire
Composants Flux
Rôle de chaque contrôleur
| Contrôleur | CRD | Rôle |
|---|---|---|
| Source Controller | GitRepository, HelmRepository, Bucket | Récupère les sources |
| Kustomize Controller | Kustomization | Applique les manifests Kustomize |
| Helm Controller | HelmRelease | Gère les releases Helm |
| Notification Controller | Alert, Provider | Envoie des notifications |
| Image Reflector | ImageRepository, ImagePolicy | Scanne les registries |
| Image Automation | ImageUpdateAutomation | Met à jour les images dans Git |
Flux est un toolkit
# Vous choisissez ce dont vous avez besoin
flux install --components=source-controller,kustomize-controller
# Ou tout installer
flux install
🔝 Retour à la table des matières
3 - Flux vs Argo CD
Tableau comparatif
| Critère | Flux | Argo CD |
|---|---|---|
| Architecture | Toolkit modulaire | Tout-en-un |
| UI Native | Non (Weave GitOps) | Oui, excellente |
| Image Automation | Native | Extension |
| Helm | HelmRelease CRD | Intégré |
| Multi-cluster | Distribué | Centralisé |
| Courbe d'apprentissage | Moyenne | Facile |
| CNCF Status | Graduated | Graduated |
Quand choisir Flux ?
- Préférence pour une approche CLI/GitOps pure
- Besoin d'image automation native
- Architecture modulaire souhaitée
- Équipe à l'aise avec Kubernetes CRDs
Quand choisir Argo CD ?
- Besoin d'une UI pour les équipes
- Gestion multi-cluster centralisée
- Équipe débutante en GitOps
- Onboarding rapide des développeurs
🔝 Retour à la table des matières
4 - Cas d'utilisation
Entreprises utilisant Flux
| Entreprise | Usage |
|---|---|
| Microsoft | Azure Arc, AKS GitOps |
| AWS | EKS Anywhere |
| D2iQ | Kubernetes platform |
| VMware | Tanzu |
Scénarios typiques
| Scénario | Description |
|---|---|
| Platform Team | Gestion centralisée des clusters |
| Image Automation | CD sans pipeline de déploiement |
| Multi-tenant | Isolation par namespace/repo |
| Edge | Déploiement sur clusters edge |
🔝 Retour à la table des matières
5 - Exercices pratiques
Quiz
Q1. Quelle est la principale différence architecturale entre Flux et Argo CD ?
Réponse
Flux est un toolkit modulaire avec des contrôleurs séparés et indépendants, tandis qu'Argo CD est une solution tout-en-un monolithique. Avec Flux, vous installez uniquement les composants dont vous avez besoin.
Q2. Quel contrôleur Flux permet la mise à jour automatique des images ?
Réponse
L'Image Automation Controller (avec Image Reflector Controller) permet de scanner les registries et de mettre à jour automatiquement les références d'images dans Git.
Q3. Flux a-t-il une UI native ?
Réponse
Non, Flux n'a pas d'UI native. Cependant, Weave GitOps (anciennement de Weaveworks) fournit une UI pour Flux. L'approche Flux est CLI-first.
🔝 Retour à la table des matières
Points clés à retenir
- Flux = toolkit GitOps modulaire
- Composants : Source, Kustomize, Helm, Notification, Image Controllers
- CLI-first, pas d'UI native
- Image Automation native (avantage sur Argo CD)
- CNCF Graduated : maturité et adoption