Kubernetes au service de l'intégration et du déploiement continus

Introduction : Kubernetes comme plateforme CI/CD
Kubernetes n'est pas qu'un orchestrateur de conteneurs : c'est la plateforme idéale pour le CI/CD. Il fournit l'environnement d'exécution, le networking, le scaling et la résilience dont les pipelines de déploiement ont besoin. Voici comment je l'exploite au quotidien.
La conteneurisation avec Docker : le prérequis
Avant de parler Kubernetes, il faut parler Docker. La conteneurisation est le prérequis à tout déploiement K8s. Chez Bloomflow, la migration vers les conteneurs a été le premier chantier : chaque application a reçu son Dockerfile, optimisé avec des multi-stage builds pour réduire la taille des images et éliminer les outils de build de l'image finale.
Pour WizOps.fr, le Dockerfile du frontend produit une image Nuxt optimisée, et celui du backend une image Django avec Gunicorn. Les deux images font moins de 200 Mo grâce au multi-stage build.
Kubernetes comme plateforme de déploiement
Kubernetes apporte des primitives puissantes pour le déploiement :
- Deployments : rolling updates avec zero downtime
- Services : load balancing et service discovery
- Ingress : routing HTTP avec TLS automatique (cert-manager)
- HPA : scaling automatique basé sur les métriques
Chez Coopengo, ces primitives sont utilisées pour une infrastructure Kubernetes HA sur AWS certifiée HDS. Le cluster est réparti sur 3 AZ, avec des PodDisruptionBudgets qui garantissent la disponibilité pendant les mises à jour de nodes.
Ansible pour le bootstrapping
Dans mes architectures, Ansible joue un rôle complémentaire à Kubernetes. Il gère le bootstrapping des nodes (configuration OS, sysctl, limites kernel) et les composants hors-cluster (bases de données, load balancers externes). Chez Metronome, Ansible configurait les nodes OVH avant que Kubernetes ne prenne le relais pour l'orchestration applicative.
Le pipeline CI/CD complet
Le pipeline que je mets en place sur chaque projet Kubernetes :
- Développeur : ouvre une PR avec ses changements
- GitHub Actions CI : lint, tests, build Docker, scan Trivy, push GHCR
- Mise à jour du Helm Chart : le tag d'image est mis à jour dans le repo des manifests
- ArgoCD CD : détecte le changement, déploie sur K8s
- Prometheus/Grafana : monitoring post-déploiement
Chez Padam Mobility, ce pipeline est enrichi d'environnements éphémères : chaque PR crée automatiquement un namespace Kubernetes avec l'application complète, permettant de tester bout-en-bout avant le merge.
Le futur : GitOps et beyond
La tendance actuelle va vers le GitOps pur : tout est dans Git, rien n'est fait manuellement. ArgoCD est le fer de lance de cette approche. Chez Earny SA, la migration GCP vers AWS a été gérée intégralement via Git : les manifests Kubernetes dans un repo, la configuration Terraform dans un autre, et ArgoCD qui orchestre le tout.
Conclusion
Kubernetes, Docker, Ansible et ArgoCD forment un écosystème cohérent pour le CI/CD. Chaque outil a sa zone de responsabilité : Docker pour le packaging, Ansible pour la configuration OS, Kubernetes pour l'orchestration, ArgoCD pour le déploiement GitOps. Cette séparation des responsabilités est la clé d'une architecture maintenable et évolutive.