Content slides
Qu'est-ce que le GitOps ?¶
Le GitOps est un modèle opérationnel pour Kubernetes utilisant Git comme Source Unique de Vérité
- L'infrastructure et les applications sont gérées comme du code (IaC)
- Tout changement d'état passe par une Merge Request / Pull Request
- Sépare strictement la CI (Build/Test) de la CD (Déploiement/Réconciliation)
- Favorise la collaboration et la traçabilité complète
Les 4 Principes de GitOps¶
Pour qu'un système soit considéré comme "GitOps", il doit être :
- Déclaratif : Le système est décrit par des fichiers (YAML, Helm, Kustomize)
- Versionné et Immuable : L'état désiré est stocké dans Git avec un historique complet
- Tiré automatiquement : L'agent récupère les changements sans intervention humaine
- Réconcilié en continu : Un agent assure en permanence que l'état réel = l'état désiré
Architecture : Modèle Pull vs Push¶
- Modèle Push (CI classique) :
- La CI possède les accès admin du cluster (Risque de sécurité)
- Le pipeline "pousse" les changements vers le cluster
- Modèle Pull (Argo CD/FluxCD) :
- L'agent tourne dans le cluster et surveille le dépôt Git
- Sécurité accrue : Le cluster n'expose aucun accès vers l'extérieur
- Détection automatique du Drift (dérive entre Git et le cluster)
Pourquoi Argo CD ?¶
Argo CD est l'outil leader pour implémenter le GitOps sur Kubernetes :
- Interface visuelle : Arborescence en temps réel de toutes les ressources K8s
- Self-Healing : Correction automatique des modifications manuelles non autorisées
- Multi-cluster : Pilotage de plusieurs clusters depuis une interface unique
- Sync Policy : Choix entre synchronisation manuelle ou automatique avec nettoyage (Pruning)
Statuts de Synchronisation et Santé¶
Argo CD fournit un feedback précis sur l'état de vos applications :
- Statuts de Synchronisation :
- Synced : Le cluster est identique à Git
- OutOfSync : Un changement attend dans Git ou une dérive a été détectée
- Statuts de Santé (Health) :
- Healthy : L'application est opérationnelle (Pods en cours d'exécution)
- Degraded : Problème technique (ex : CrashLoopBackOff)
- Progressing : Déploiement en cours (Rolling Update)
Conclusion¶
- Le GitOps apporte la rigueur du développement logiciel à l'exploitation (SRE)
- Argo CD devient le "gardien" de l'état de production
- Sécurité : Moins de privilèges accordés aux outils de CI
- Résilience : Capacité de restaurer un cluster entier en quelques minutes via Git