Skip to content
Learni
View all tutorials
Cloud & DevOps

Comment déployer un cluster Amazon EKS en 2026

18 minINTERMEDIATE

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

install-tools.sh
#!/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/kubectl

Ce 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

cluster.yaml
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: true

Ce 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

deploy-cluster.sh
eksctl create cluster -f cluster.yaml --verbose 4

# Vérification
aws eks update-kubeconfig --region eu-west-3 --name production-eks
kubectl get nodes

La 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

vpc.tf
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

deployment.yaml
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: ClusterIP

Ce 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.

Comment déployer un cluster Amazon EKS en 2026 | Learni