Passer au contenu principal
Menu
DevOps

ORCHESTRATION KUBERNETES

Déploiement d'un cluster EKS managé via Terraform avec auto-scaling et Ingress Controller Nginx.

Dépôt bientôt disponible
KubernetesTerraformAmazon Web ServicesHelm
Phase 1

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.

Phase 2

Méthodologie d'Apprentissage

  1. 1

    Fondamentaux Kubernetes via la doc officielle et le cours CKA de Mumshad Mannambeth

  2. 2

    Lab progressif : Minikube local pour comprendre Pod → Deployment → Service → Ingress

  3. 3

    Écriture manuelle de chaque manifest YAML (pas de copier-coller) pour maîtriser la syntaxe

  4. 4

    Migration vers AWS EKS avec provisionnement via Terraform (modules réutilisables)

  5. 5

    Intégration Prometheus + Grafana pour monitorer le cluster en temps réel

Phase 3

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.

Phase 4

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

All Projects