Aller au contenu

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 :

  1. Déclaratif : Le système est décrit par des fichiers (YAML, Helm, Kustomize)
  2. Versionné et Immuable : L'état désiré est stocké dans Git avec un historique complet
  3. Tiré automatiquement : L'agent récupère les changements sans intervention humaine
  4. 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

☕️ Si tu souhaites soutenir mon travail, tu peux m'offrir un café ici.