Introduction
Amazon EKS permet de gérer des clusters Kubernetes sans se soucier de l'infrastructure de contrôle. En 2026, les entreprises exigent des déploiements sécurisés, scalables et automatisés. Ce tutoriel vous guide pas à pas pour créer un cluster EKS prêt pour la production, configurer le networking VPC et déployer une application réelle. Vous apprendrez à utiliser eksctl pour le provisionnement rapide et Terraform pour l'infrastructure as code. Chaque étape inclut des exemples concrets et fonctionnels.
Prérequis
- Compte AWS avec permissions IAM administrateur
- AWS CLI v2 installé et configuré
- eksctl version 0.180+
- Terraform 1.7+
- kubectl et Docker
- Connaissances de base en Kubernetes et VPC AWS
Installation des outils
#!/bin/bash
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
curl -LO "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz"
tar -xzf eksctl_*.tar.gz
sudo mv eksctl /usr/local/bin
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectlCe script installe AWS CLI, eksctl et kubectl. Exécutez-le sur une machine Linux ou via WSL. Vérifiez les versions après installation pour éviter les incompatibilités avec les APIs EKS 2026.
Création du cluster avec eksctl
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: production-eks
region: eu-west-3
version: "1.31"
vpc:
cidr: 10.0.0.0/16
managedNodeGroups:
- name: general
instanceType: m6i.large
desiredCapacity: 3
minSize: 2
maxSize: 6
volumeSize: 100
privateNetworking: true
iam:
withAddonPolicies:
albIngress: true
cloudWatch: trueCe fichier YAML définit un cluster EKS 1.31 avec nodes privés et politiques IAM pour ALB et CloudWatch. Utilisez eksctl create cluster -f cluster.yaml pour le déployer.
Déploiement du cluster
eksctl create cluster -f cluster.yaml --verbose 4
# Vérification
aws eks update-kubeconfig --region eu-west-3 --name production-eks
kubectl get nodesLa commande eksctl provisionne le cluster, les subnets et les IAM roles. La mise à jour de kubeconfig permet de piloter le cluster depuis votre terminal.
Configuration Terraform du VPC
module "vpc" {
source = "terraform-aws-modules/vpc/aws"
version = "5.8.1"
name = "eks-vpc"
cidr = "10.0.0.0/16"
azs = ["eu-west-3a", "eu-west-3b", "eu-west-3c"]
private_subnets = ["10.0.1.0/24", "10.0.2.0/24", "10.0.3.0/24"]
public_subnets = ["10.0.101.0/24", "10.0.102.0/24", "10.0.103.0/24"]
enable_nat_gateway = true
single_nat_gateway = false
tags = {
"kubernetes.io/cluster/production-eks" = "shared"
}
}Ce module Terraform crée un VPC optimisé pour EKS avec subnets privés et NAT gateways. Il respecte les exigences de haute disponibilité.
Déploiement d'une application
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-app
spec:
replicas: 3
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
containers:
- name: nginx
image: nginx:1.25
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: web-service
spec:
selector:
app: web
ports:
- port: 80
targetPort: 80
type: ClusterIPCe manifest Kubernetes déploie 3 replicas Nginx avec un service ClusterIP. Appliquez-le avec kubectl apply -f deployment.yaml après avoir configuré le cluster.
Bonnes pratiques
- Utilisez des managed node groups avec des instances Graviton pour réduire les coûts
- Activez toujours le private networking et les security groups restrictifs
- Implémentez Pod Identity au lieu d'IAM roles pour les service accounts
- Activez les add-ons EKS (CoreDNS, kube-proxy, VPC CNI) via eksctl
- Configurez des budgets de disruption pour les workloads critiques
Erreurs courantes
- Oublier de taguer les subnets avec kubernetes.io/cluster/* provoque des échecs de création
- Utiliser des subnets publics sans NAT gateway bloque le pull d'images privées
- Négliger la mise à jour de la version kubectl compatible avec EKS 1.31
- Ne pas activer les politiques IAM pour les add-ons ALB et CloudWatch
Pour aller plus loin
Découvrez nos formations avancées sur Kubernetes et AWS : https://learni-group.com/formations. Explorez également les modules Terraform pour EKS et les stratégies de GitOps avec ArgoCD.