Formation DevOps | Formation kubernetes : B - Mise en place d'un cluster Kubernetes sur AWS
Comment Kubernetes est géré coté AWS avec le service Amazon Elastic Kubernetes Service (Amazon EKS) ?
Amazon Elastic Kubernetes Service (Amazon EKS) est un service géré qui vous permet d’exécuter facilement Kubernetes sur AWS sans devoir installer ni gérer votre propre plan de contrôle Kubernetes.
Amazon EKS exécute les instances de plan de contrôle , les composants master de Kubernetes sur plusieurs zones de disponibilité afin de garantir une haute disponibilité.
Amazon EKS détecte et remplace automatiquement les instances de plan de contrôle défectueuses, et fournit des mises à niveau de version automatisées et des correctifs.
Amazon EKS est également intégré à de nombreux services AWS, ce qui permet d’offrir scalabilité et sécurité à vos applications, y compris :
• Amazon ECR pour les images de conteneur.
• Elastic Load Balancing pour la répartition des charges.
• IAM pour l’authentification (Indentity and Access managment).
• Amazon VPC pour l’isolement.

ENI* : Elastic Network interface .
VPC* :Virtual Private Cloud .
• Amazon EKS exécute les composants master (control plan) Kubernetes à un seul locataire pour chaque cluster, et l’infrastructure des composants master (control plan) n’est pas partagée entre les clusters ou les comptes AWS.
• les composants master (control plan) se compose d’au moins deux nœuds de serveur d’API et de trois nœuds etcd qui s’exécutent dans trois zones de disponibilité au sein d’une région.
• Amazon EKS détecte et remplace automatiquement les instances de plan de contrôle défectueuses, en les redémarrant dans les zones de disponibilité au sein de la région si nécessaire.
• Amazon EKS utilise l’architecture des régions AWS pour maintenir une haute disponibilité .
• Amazon EKS utilise des stratégies réseau Amazon VPC afin de restreindre le trafic entre les composants du plan de contrôle au sein d’un cluster unique. Les composants du plan de contrôle pour un cluster ne peuvent pas afficher ou recevoir des communications d’autres clusters ou d’autres comptes AWS, sauf en cas d’autorisation avec des stratégies RBAC Kubernetes.
Les applications s'exécutant sur Amazon EKS sont entièrement compatibles avec les applications s'exécutant sur n'importe quel environnement Kubernetes standard .
Cela signifie que vous pouvez facilement faire migrer n'importe quelle application Kubernetes standard vers Amazon EKS sans devoir modifier le code .
Déployer un cluster kubernetes Amazon EKS
Il est très simple de commencer à utiliser Amazon EKS :
-
Commencez par créer un cluster Amazon EKS dans la AWS Management Console, avec l’AWS CLI ou avec l’un des kits SDK AWS.
-
Lancez ensuite les nœuds de travail qui s’enregistrent auprès du cluster Amazon EKS.
-
Lorsque votre cluster est prêt, vous pouvez configurer vos outils Kubernetes préférés (la commande kubectl par exemple) afin qu’ils communiquent avec votre cluster.
-
Déployez et gérez les applications sur votre cluster Amazon EKS de la même manière qu’avec n’importe quel autre environnement Kubernetes.

Install Kubectl sur Linux
Installer le binaire de kubectl avec curl sur Linux
Téléchargez la dernière release avec la commande :
curl -LO https://dl.k8s.io/release/$(curl -Ls https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl
Pour télécharger une version spécifique, remplacez $(curl -s https://dl.k8s.io/release/stable.txt) avec la version spécifique.
Par exemple, pour télécharger la version 1.28.4 sur Linux, tapez :
curl -LO https://dl.k8s.io/release/v1.28.4/bin/linux/amd64/kubectl
Rendez le binaire kubectl exécutable.
chmod +x ./kubectl
Déplacez le binaire dans votre PATH.
sudo mv ./kubectl /usr/local/bin/kubectl
Testez pour vous assurer que la version que vous avez installée est à jour:
kubectl version --client
Création d’un cluster Amazon EKS
Command Line :
Installation de la CLI AWS : Lien de l’nstallation de la CLI aws .
aws help

Ensuite configuration de la CLI avec les credentiales de votre compte AMAZON :
aws configure
Faut bien configurer aws cli avec vos credentials pourque vous puissez deployer votre cluster sur aws avec vos ressourses :
Faut bien avoir tous les droits pour le deploiment sur votre master account , de mon coté je suis admin sur mon master account , on peut aussi profiter de l'offre Gratuite d'AWS pour deployer un premier cluster kubernetes sur AWS , si vous avez des difficultées vous pouvez nous contacter et je peux vous aider pour cette partie .
AWS Access Key ID : ********
AWS Secret Access Key : ******
Default region name : *****
Clicker sur My security credentials
Ensuite faut regarder dans Access Keys

aws configure

Pour mettre en place plus de sécurité
Si nécessaire, exécutez la commande suivante pour obtenir un nouveau token de sécurité pour l’AWS CLI.
Pour plus d’informations, consultez get-session-token dans la référence des commandes AWS CLI.
Par défaut, le token est valable 15 minutes. Pour modifier le délai d’expiration de session par défaut, transmettez l’indicateur –duration-seconds.
Par exemple:
Utilisation de la CLI EKS pour la mise en place d’un cluster kubernetes sur AWS

Dans un premier temps on va utiliser la CLI EKSCTL qui permet de manipuler le service EKS ,cette CLI récupére la config de AWS stocké dans
Je vous ai préparé un jolie avec toute la documentation dessus : gitlab eks
.aws/config qui était faite via la ligne de command de aws configure .
Installation de la command eksctl pour la création de cluster et aussi des nodes workers :
Pour Unix
# for ARM systems, set ARCH to: `arm64`, `armv6` or `armv7`
ARCH=amd64
PLATFORM=$(uname -s)_$ARCH
curl -sLO "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_$PLATFORM.tar.gz"
# (Optional) Verify checksum
curl -sL "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_checksums.txt" | grep $PLATFORM | sha256sum --check
tar -xzf eksctl_$PLATFORM.tar.gz -C /tmp && rm eksctl_$PLATFORM.tar.gz
sudo mv /tmp/eksctl /usr/local/bin

Docker
Pour chaque version et RC, une image de conteneur est poussée vers le référentiel ECR public.ecr.aws/eksctl/eksctl
. En savoir plus sur l’utilisation sur ECR Public Gallery - eksctl. Par exemple,
docker run --rm -it public.ecr.aws/eksctl/eksctl version
Pour Windows :
Lien pour l’installation ( meme si je suis pas super fun :p )
Direct download (latest release): AMD64/x86_64 - ARMv6 - ARMv7 - ARM64
Make sure to unzip the archive to a folder in the PATH
variable.
Optionally, verify the checksum:
- Download the checksum file: latest
- Use Command Prompt to manually compare
CertUtil
’s output to the checksum file downloaded.
REM Replace amd64 with armv6, armv7 or arm64
CertUtil -hashfile eksctl_Windows_amd64.zip SHA256
- Using PowerShell to automate the verification using the
-eq
operator to get aTrue
orFalse
result:
# Replace amd64 with armv6, armv7 or arm64
(Get-FileHash -Algorithm SHA256 .\eksctl_Windows_amd64.zip).Hash -eq ((Get-Content .\eksctl_checksums.txt) -match 'eksctl_Windows_amd64.zip' -split ' ')[0]
Using Git Bash
# for ARM systems, set ARCH to: `arm64`, `armv6` or `armv7`
ARCH=amd64
PLATFORM=windows_$ARCH
curl -sLO "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_$PLATFORM.zip"
# (Optional) Verify checksum
curl -sL "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_checksums.txt" | grep $PLATFORM | sha256sum --check
unzip eksctl_$PLATFORM.zip -d $HOME/bin
rm eksctl_$PLATFORM.zip
Mise en place d’un cluster K8S avec eksctl :
En utilisant Config Files:
Vous pouvez créer un cluster à l’aide d’un fichier de configuration (recommandé)
Ce cluster est un cluster de test et de formation , il y a un cours dédié au niveau la création
Tout d’abord, créez le fichier cluster.yaml
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: basic-cluster
region: eu-west-1
nodeGroups:
- name: ng-1
instanceType: t2.micro
desiredCapacity: 4
volumeSize: 8
ssh:
publicKeyName: eks-formations ### le nom de la clés ssh crée sur votre console
eksctl create cluster -f 00-cluster.yaml
ekctl utilise CloudFormation le service Infrastructure as a code d’AWS , pour la création du cluster .
kubectl config get-contexts
kubectl config get-nodes
1. Nous contactez
- Description: Besoin de Formation et des Solutions cloud complètes pour vos applications
- Links:
2. Infra as a Service
- Description: Infrastructure cloud évolutive et sécurisée
- Links:
3. Projets Développeurs
- Description: Découvrez des opportunités passionnantes pour les développeurs
- Links:
4. Développeurs
- Description: Rejoignez notre communauté de développeurs
- Links:
5. Formations Complètes
- Description: Accédez à des formations professionnelles de haute qualité
- Links:
6. Marketplace
- Description: Découvrez notre place de marché de services
- Links:
7. Blogs
- Description: Découvrez nos blogs
- Links:
- comment creer une application mobile ?
- Comment monitorer un site web ?
- Command Checkout in git ?
- Comment git checkout to commit ?
- supprimer une branche git
- dockercoin
- kubernetes c est quoi
- architecture kubernetes
- Installer Gitlab Runner ?
- .gitlab-ci.yml exemples
- CI/CD
- svelte 5 vs solid
- svelte vs lit
- solidjs vs qwik
- alpine vs vue
- Plateform Freelance 2025
- Creation d’un site Web gratuitement
This website is powered by ItGalaxy.io