GitOps à grande échelle : ArgoCD, Flux et la réalité du terrain
Operators, ApplicationSets, Kustomize, drift detection : retour d'expérience sur l'industrialisation de Kubernetes en multi-cluster avec GitOps.
Pourquoi GitOps n'est plus optionnel
Quand votre plateforme dépasse la dizaine de clusters Kubernetes — bord, dev, staging, plusieurs régions de production, clusters clients — le kubectl apply manuel devient un risque opérationnel. GitOps n'est pas une mode : c'est la seule approche qui réconcilie auditabilité (chaque changement est un commit signé), reproductibilité (le cluster est une projection de Git) et vitesse (revert = git revert).
Chez nos clients, deux outils dominent : ArgoCD et Flux v2. Ils partagent les mêmes principes (réconciliation continue, source de vérité Git, support Helm/Kustomize) mais divergent sur la philosophie. Voici un comparatif issu de mises en production réelles.
ArgoCD vs Flux v2 : choisir en connaissance de cause
| Critère | ArgoCD | Flux v2 | |---|---|---| | UX | UI riche, vue topologique | CLI-first, pas d'UI native | | Multi-tenant | Projects + RBAC fin | Tenants via namespaces + Kustomization | | Multi-cluster | Hub-and-spoke (1 ArgoCD → N clusters) | Modèle pull par cluster | | Image automation | ArgoCD Image Updater (séparé) | Image Reflector + Automation natifs | | Empreinte | ~500 Mo RAM en charge | ~150 Mo RAM par contrôleur | | Courbe | Plus rapide à démarrer | Plus modulaire, plus K8s-native |
Notre recommandation : ArgoCD quand les équipes applicatives ont besoin d'une UI partagée, Flux quand vous gérez une flotte hétérogène avec un modèle pull strict (zones air-gapped, edge).
Patterns qui passent à l'échelle
1. ApplicationSets et générateurs de clusters
Déployer la même stack observabilité sur 40 clusters ne doit pas demander 40 manifests. L'ApplicationSet d'ArgoCD avec un générateur clusters résout le problème :
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: platform-observability
namespace: argocd
spec:
generators:
- clusters:
selector:
matchLabels:
env: production
template:
metadata:
name: '{{name}}-observability'
spec:
project: platform
source:
repoURL: git@github.com:dct/platform.git
targetRevision: HEAD
path: 'overlays/{{metadata.labels.region}}'
destination:
server: '{{server}}'
namespace: observability
syncPolicy:
automated:
prune: true
selfHeal: true
Un label env=production sur un nouveau cluster déclenche automatiquement le déploiement complet. Onboarding d'un cluster : minutes au lieu de jours.
2. Operators : au-delà du Helm chart
Un Helm chart décrit un état initial. Un Operator encode le savoir opérationnel : sauvegardes, rolling upgrades, gestion des pannes. Pour les bases de données et systèmes stateful, c'est devenu la norme.
Nos choix de production en 2025 :
- CloudNativePG pour PostgreSQL (failover, PITR, monitoring intégré)
- Strimzi pour Kafka
- Cert-Manager pour les certificats X.509 (DNS-01 avec Let's Encrypt et Route53)
- External Secrets Operator pour synchroniser Vault/AWS Secrets Manager vers K8s
L'Operator SDK et Kubebuilder restent les frameworks de référence pour développer le vôtre, mais avant d'écrire un CRD, vérifiez sur OperatorHub que la roue n'existe pas déjà.
3. Service mesh : utile, mais pas gratuit
Istio s'est simplifié avec le mode ambient (sidecar-less, basé sur ztunnel et waypoints), divisant la consommation mémoire par 3 sur nos benchmarks. Linkerd reste imbattable en simplicité opérationnelle. Cilium Service Mesh mérite un POC sérieux si vous êtes déjà sur Cilium pour le CNI : le plan de données eBPF supprime un saut réseau.
Question à se poser avant l'adoption : avez-vous réellement besoin de mTLS automatique, de traffic shifting fin et d'observabilité L7 partout ? Si la réponse est non sur un cluster, restez avec NetworkPolicy + Cilium.
Sécurité : la checklist de production
Un cluster « par défaut » n'est pas sûr. Notre liste minimale avant tout passage en prod :
- [ ] Pod Security Admission en mode
restrictedsur tous les namespaces applicatifs - [ ] CNI avec NetworkPolicy par défaut deny-all (Cilium ou Calico)
- [ ] Images signées avec Cosign et vérifiées par Kyverno ou Sigstore Policy Controller
- [ ] Scan des manifests Git (Checkov, Kubescape) en CI, échec bloquant
- [ ] Aucun secret en clair : External Secrets Operator + Vault/KMS
- [ ] Falco ou Tetragon pour la détection runtime (syscalls, exec inattendus)
- [ ] Audit logs activés et exportés vers un SIEM hors cluster
- [ ] RBAC : interdiction des
ClusterRoleBindingàcluster-adminhors break-glass - [ ] Mise à jour automatique des nodes via Karpenter ou cluster-autoscaler avec drain progressif
- [ ] CIS Benchmark vérifié mensuellement (kube-bench)
Scaling : les vraies limites
Les 5 000 nodes documentés par Kubernetes sont théoriques. En pratique, les murs apparaissent ailleurs :
- etcd : au-delà de ~8 Go de données, latences imprévisibles. Solution : sharder par cluster plutôt que grossir.
- API server : les watch coûtent cher. Limitez les controllers tiers et utilisez
resourceVersioncorrectement. - Karpenter vs cluster-autoscaler : sur AWS, Karpenter réduit le coût de 20-40 % grâce au bin-packing direct et au choix dynamique du type d'instance.
- DNS : CoreDNS sature avant le control plane. Activez NodeLocal DNSCache dès 100 nodes.
À retenir
- GitOps n'est pas un outil, c'est un contrat opérationnel : tout passe par Git, sinon le drift gagne.
- ApplicationSet (ArgoCD) ou Kustomization récursive (Flux) sont indispensables au-delà de 5 clusters.
- Les Operators encapsulent le run : préférez CloudNativePG, Strimzi, cert-manager à des Helm charts artisanaux pour le stateful.
- Sécurité par défaut deny-all : PSA restricted, NetworkPolicy, images signées, secrets externalisés — non négociable.
- Scalez par multiplication de clusters, pas par gigantisme : un cluster de 200 nodes bien tenu vaut mieux qu'un monstre de 2 000.
Lire aussi
- Kubernetes & Cloud Native23 avril 2026
GitOps à l'échelle : ArgoCD, Operators et sécurité K8s
Retour d'expérience sur les patterns qui tiennent la charge : ArgoCD ApplicationSets, Operators maison, service mesh et durcissement du control plane.
Lire l'article - DevSecOps14 mai 2026
DevSecOps : industrialiser le shift-left sans freiner la CI
SBOM, gestion des secrets, SAST/DAST : comment intégrer la sécurité dès le commit sans transformer votre pipeline en goulot d'étranglement.
Lire l'article - Agents IA & automatisation11 mai 2026
Agents IA en production : MCP, tool use et orchestration
Au-delà du POC : comment structurer des agents IA fiables en entreprise avec MCP, le tool use structuré et l'orchestration multi-agents.
Lire l'article