ORCHESTRATION KUBERNETES
Déploiement d'un cluster EKS managé via Terraform avec auto-scaling et Ingress Controller Nginx.
Contexte
Après avoir conteneurisé plusieurs apps avec Docker, je voulais comprendre comment orchestrer des dizaines de conteneurs en production. Kubernetes était inévitable mais sa complexité m'intimidait. J'ai décidé de l'apprendre en construisant un cluster complet : du local (Minikube) à AWS (EKS), en passant par toute l'infrastructure as code.
Méthodologie d'Apprentissage
- 1
Fondamentaux Kubernetes via la doc officielle et le cours CKA de Mumshad Mannambeth
- 2
Lab progressif : Minikube local pour comprendre Pod → Deployment → Service → Ingress
- 3
Écriture manuelle de chaque manifest YAML (pas de copier-coller) pour maîtriser la syntaxe
- 4
Migration vers AWS EKS avec provisionnement via Terraform (modules réutilisables)
- 5
Intégration Prometheus + Grafana pour monitorer le cluster en temps réel
Défis Techniques
Networking inter-pods et Services ClusterIP
Les Services ne routaient pas correctement. Après debug avec tcpdump et kubectl logs, découverte d'un conflit CNI entre Calico et VPC natif AWS. Solution : documentation AWS + compréhension du model réseau K8s (iptables, kube-proxy).
Terraform state management en environnement partagé
Perte de state lors de déploiements parallèles. Apprentissage : backend S3 + DynamoDB pour state locking, structuration modulaire pour éviter dépendances circulaires.
HPA réactif vs prédictif sous charge
Auto-scaling réagissait trop tard aux pics. Implémentation de custom metrics avec Prometheus Adapter pour une montée en charge anticipée.
Résultats
Cluster EKS production-ready avec auto-scaling 3→15 pods en <90s
Infrastructure entièrement reproductible via Terraform (un terraform apply suffit)
Compréhension interne : CNI, kube-proxy, networking Kubernetes, diagnostique avec kubectl debug
Capacité : déployer et monitorer une infra K8s autonomement
Explore More