Si vous devez configurer le cluster AWS Elastic Kubernetes Service (Amazon EKS) avec Terraform, vous avez de la chance. En utilisant le module EKS Terraform et toutes les autres ressources nécessaires, vous pouvez créer une configuration Terraform et créer un cluster AKS avec du code.
Amazon EKS est un service géré pour exécuter Kubernetes sur AWS sans installer, exploiter et maintenir votre propre cluster Kubernetes. Construire un cluster EKS avec Terraform vous permet de créer des ressources rapidement, efficacement et de manière automatisée.
Dans ce tutoriel, vous apprendrez comment construire et exécuter une configuration Terraform pour construire un cluster EKS avec Terraform étape par étape. Commençons!
Prérequis
Cet article sera un tutoriel pas à pas. Si vous souhaitez suivre, assurez-vous d’avoir les éléments suivants en place:
- Un compte Amazon Web Service (AWS).
- A code editor – Even though you can use any text editor to work with Terraform configuration files, you should consider Visual Studio (VS) Code as it understands the HCL Terraform language well.
- Terraform – Ce tutoriel utilisera Terraform v0.14.9 fonctionnant sur Ubuntu 18.04.5 LTS, mais tout système d’exploitation avec Terraform devrait fonctionner.
Construction de la configuration Terraform pour un cluster AWS EKS
Terraform est un outil d’infrastructure en tant que code qui vous permet de construire, modifier et versionner l’infrastructure de manière sûre et efficace. Terraform utilise différents types de fichiers de configuration. Chaque fichier est écrit soit en format texte brut (.tf) ou en format JSON (.tfjson).
Commençons d’abord par créer une configuration Terraform qui créera un cluster AKS à partir de zéro lorsqu’elle sera appliquée.
1. Ouvrez un terminal.
2. Créez un dossier nommé ~/terraform-eks-cluster-demo, puis changez (cd
) le répertoire de travail vers ce dossier. Ce dossier contiendra tous les fichiers de configuration avec lesquels vous travaillerez.
3. Ensuite, ouvrez votre éditeur de code favori et copiez/collez la configuration suivante, et enregistrez-la dans un fichier main.tf à l’intérieur de ~/terraform-eks-cluster-demo. Ce fichier main.tf est la configuration Terraform pour le cluster AKS.
Le fichier main.tf contient toutes les ressources nécessaires pour provisionner un cluster EKS:
- Un rôle AWS Identity and Access Management (IAM) (
terraformekscluster
) – Cette ressource sera gérée par Amazon EKS et effectuera des appels à d’autres services AWS tels que AWS S3, CloudWatch, etc., en votre nom pour gérer les ressources que vous utilisez avec le service. - Un groupe de sécurité AWS EC2 (
resource "aws_security_group" "eks-cluster"
) – Permet le trafic réseau entrant et sortant depuis le cluster AWS EKS. Vous lancerez un groupe de sécurité nomméSG-eks-cluster
attaché via un ID VPC, permettant à tout le trafic de circuler entrant/sortant du cluster.0.0.0.0/0
est l’adresse IP d’Internet. - Cluster EKS (
terraformEKScluster
) – Ce cluster EKS sera enversion 1.19
. - Un rôle IAM pour les nœuds EKS pour effectuer des appels à d’autres services AWS (
eks-node-group
). Ce rôle est attaché à une stratégie qui permet de supposer les informations d’identification de sécurité temporaires sur l’instance pour accéder à d’autres ressources AWS. - Groupe de nœuds de cluster EKS (
node_group1
) – Cette ressource définit le nombre de nœuds qu’un cluster aura via l’attributscaling_config
.
4. Créez un autre fichier dans ~/terraform-eks-cluster-demo, nommez-le provider.tf et collez le contenu ci-dessous. Le fichier du fournisseur définit les fournisseurs tels que AWS, Oracle, ou Azure, etc., afin que Terraform puisse se connecter aux services cloud appropriés.
Le tutoriel créera des ressources dans la région us-east-2.
5. Vérifiez que tous les fichiers requis ci-dessous sont présents dans le dossier en exécutant la commande tree
.

Création du cluster AWS EKS avec un module Terraform EKS
Maintenant que vous avez le fichier de configuration Terraform et les fichiers de variables prêts, il est temps d’initialiser Terraform et de créer le cluster. Pour provisionner le cluster AKS, comme pour toutes les autres configurations Terraform, Terraform utilise trois commandes (terraform init → terraform plan → terraform apply).
Explorons maintenant chaque étape.
1. Ouvrez un terminal et naviguez vers le répertoire ~/terraform-eks-cluster-demo
. cd ~/terraform-eks-cluster-demo
2. Exécutez la commande terraform init
dans le même répertoire. La commande terraform init
initialise les plugins et les fournisseurs nécessaires pour travailler avec les ressources.
Si tout se passe bien, vous devriez voir le message Terraform a été initialisé avec succès dans la sortie, comme indiqué ci-dessous.

3. Maintenant, exécutez la commande terraform plan
. L’exécution de terraform plan
n’est pas nécessaire mais recommandée pour s’assurer que la syntaxe de vos fichiers de configuration est correcte et vous donne un plan des ressources qui seront provisionnées dans votre infrastructure.
Si réussi, vous devriez voir un message tel que Plan : « X » à ajouter, « Y » à modifier, ou « Z » à détruire dans la sortie.

4. Ensuite, exécutez terraform apply
pour retirer les stabilisateurs et invoquer Terraform pour créer le cluster AKS. L’invocation de terraform apply
lit chaque configuration (*.tf) dans le répertoire courant pour compiler un fichier d’état envoyé à AWS pour construire le cluster EKS et d’autres composants.
AWS facture 0,10 $ par heure pour chaque cluster EKS. Assurez-vous de détruire tous les clusters de test que vous avez créés une fois terminé!

Vérification du cluster AWS EKS
À ce stade, vous devriez avoir un cluster AKS fonctionnel, mais vérifions pour être sûr dans la Console de gestion AWS.
1. Ouvrez votre navigateur web préféré, accédez à la Console de gestion AWS et connectez-vous.
2. Cliquez sur la barre de recherche en haut, recherchez EKS, et cliquez sur l’élément de menu Elastic Kubernetes Service. Vous devriez voir le cluster EKS terraformEKScluster.


3. Cliquez sur Configuration, et vous devriez voir chaque composant créé avec succès tel que défini dans la configuration Terraform, comme illustré ci-dessous.



Conclusion
Dans ce tutoriel, vous avez appris comment utiliser Terraform pour déployer un cluster AWS EKS et ses composants. Vous êtes maintenant prêt(e) à utiliser ce cluster EKS et à déployer des applications !
Quelles applications prévoyez-vous de déployer sur votre nouveau cluster ?