Si vous êtes un développeur, vous voudrez généralement déployer des applications conteneurisées sur Kubernetes. Mais la question est, comment ? Pourquoi ne pas essayer AWS EKS CLI ?
Dans ce tutoriel, vous apprendrez comment configurer AWS EKS CLI pour créer un cluster Kubernetes, afin de vous concentrer sur votre code plutôt que sur la gestion de l’infrastructure.
Continuez à lire et commencez à créer votre cluster dès aujourd’hui !
Prérequis
Ce tutoriel sera une démonstration pratique. Si vous souhaitez suivre, assurez-vous d’avoir un PC et un compte AWS. Si vous n’avez pas de compte AWS, un compte gratuit est disponible.
Création d’un utilisateur administrateur
Avant de créer un cluster Kubernetes, vous allez créer un utilisateur administrateur. Un utilisateur administrateur vous permet de vous connecter à la console AWS pour configurer votre cluster. Démarrez ce tutoriel en créant un utilisateur disposant des autorisations administratives via la console AWS.
1. Connectez-vous à votre console AWS et accédez à votre tableau de bord IAM.
Cliquez sur Utilisateurs (panneau de gauche) -> Ajouter des utilisateurs (en haut à droite) comme indiqué ci-dessous pour commencer à ajouter des utilisateurs.

2. Ensuite, fournissez un nom d’utilisateur dans le champ Nom d’utilisateur, ici K8-Admin est utilisé, cochez l’option Clé d’accès – Accès programmatique, et cliquez sur Suivant : Autorisations.
Vous sélectionnez l’option Clé d’accès – Accès programmatique car elle est accessible de manière programmatique. En conséquence, vous pouvez utiliser une application pour communiquer directement avec AWS sur les actions à entreprendre.

3. Cliquez sur l’option Attacher directement des politiques existantes, cochez la politique AdministratorAccess, et cliquez sur Suivant : Balises.
La politique AdministratorAccess donne à l’utilisateur (K8-Admin) un accès complet à AWS, et plus encore comme suit :
- Permet à l’utilisateur d’utiliser CloudFormation
- Créer des instances EC2 et des journaux CloudWatch
- Configurer des équilibreurs de charge élastiques.

4. Cliquez sur Suivant : Examen pour passer l’ajout de balises.

5. Enfin, passez en revue les détails de l’utilisateur et cliquez sur Créer un utilisateur pour finaliser la création de l’utilisateur administrateur.

Une fois la création de l’utilisateur administrateur terminée, vous recevrez un message Succès en haut de l’écran, comme celui ci-dessous. Notez l’ID de clé d’accès et la clé d’accès secrète car vous utiliserez ces clés pour vous connecter ultérieurement.

Lancement d’une instance EC2
Maintenant que vous avez créé le K8-Admin, vous pouvez maintenant créer votre première instance EC2. Vous utiliserez cette instance comme votre nœud maître, où vous exécutez vos commandes pour créer le cluster.
1. Accédez à votre tableau de bord EC2, cliquez sur EC2, puis sur Lancer les instances à l’extrémité droite de la page. Cela redirige votre navigateur vers une page où vous pouvez choisir une Amazon Machine Image (AMI) (étape deux).

2. Ensuite, cliquez sur Sélectionner à côté (extrémité droite) de Amazon Linux 2 AMI (HVM) dans la liste, comme indiqué ci-dessous.
Amazon Linux 2 AMI (HVM) fournit le noyau Linux 5.10 optimisé pour des performances optimales de la dernière génération de matériel. Cette AMI possède également de nombreuses fonctionnalités requises par les clusters Kubernetes de niveau de production.

3. Conservez la valeur par défaut (t2.micro) pour le type d’instance et cliquez sur Suivant : Configurer les détails de l’instance pour configurer l’instance.

4. Activez l’option Auto-assign Public IP et Suivant : Ajouter du stockage. Cette option garantit que chacun de vos conteneurs peut accéder à l’IP publique de votre nœud maître Kubernetes et de vos instances EC2.

Gardez la valeur par défaut (Racine) dans la page Ajouter un stockage et cliquez sur Suivant : Ajouter des balises. Le volume Racine est nécessaire pour lire et écrire des données depuis l’instance.

6. Ignorez l’ajout de balises et cliquez sur Suivant : Configurer le groupe de sécurité.

7. Conservez les paramètres par défaut du groupe de sécurité, comme indiqué ci-dessous, et cliquez sur Examiner et lancer.

8. Examinez les détails du lancement de l’instance et cliquez sur Lancer pour démarrer l’instance. Une fenêtre contextuelle apparaîtra où vous pourrez choisir de sélectionner une paire de clés existante ou d’en créer une nouvelle (étape neuf).

9. Dans la fenêtre contextuelle, configurez la paire de clés comme suit :
- Sélectionnez Créer une nouvelle paire de clés dans la liste déroulante.
- Choisissez RSA comme Type de paire de clés.
- Indiquez le nom de votre paire de clés préféré Nom de la paire de clés. Mais pour ce tutoriel, le nom de la paire de clés est défini sur my-nvkp.
- Cliquez sur Télécharger la paire de clés, puis sur Lancer les instances.

Votre instance peut prendre une minute ou deux pour se lancer complètement. Une fois votre instance en cours d’exécution, vous la verrez répertoriée dans votre tableau de bord EC2, comme indiqué ci-dessous.

Configuration de l’outil AWS CLI
Maintenant que votre instance est en cours d’exécution, il est temps de configurer les outils en ligne de commande (CLI). Utiliser les outils CLI en conjonction avec votre compte AWS est essentiel pour créer votre cluster Kubernetes.
1. Depuis votre tableau de bord EC2, cochez la case pour sélectionner l’instance, comme indiqué ci-dessous. Cliquez sur Connecter pour initialiser la connexion à l’instance.

2. Ensuite, cliquez sur le bouton Connecter pour vous connecter à l’instance que vous avez sélectionnée précédemment à l’étape un.

Une fois connecté à votre instance EC2, votre navigateur est redirigé vers le terminal interactif affiché ci-dessous en tant que votre session SSH temporaire avec votre instance EC2.
Le terminal interactif vous permet de vous connecter à la ligne de commande et d’exécuter des commandes administratives sur votre nouvelle instance.

3. Exécutez la commande aws
ci-dessous pour vérifier votre version CLI.
Comme vous pouvez le voir dans la sortie ci-dessous, vous utilisez la version 1.18.147 sur votre instance Amazon Linux 2, qui est obsolète. Vous devez télécharger et installer AWS CLI version 2+ pour vous assurer que vous pouvez accéder à toutes les fonctionnalités de Kubernetes (étape trois).

4. Maintenant, exécutez la commande curl
ci-dessous pour télécharger l’outil CLI v2+ et enregistrez-le dans un fichier zip nommé awscliv2.zip
.

5. Exécutez les commandes suivantes pour décompresser le fichier téléchargé et déterminer où l’AWS CLI obsolète est installée.
Comme vous pouvez le voir dans la sortie ci-dessous, l’AWS CLI obsolète est installée à /usr/bin/aws. Vous devez mettre à jour ce chemin avec la version mise à jour.

6. Exécutez la commande ci-dessous pour effectuer les opérations suivantes et mettre à jour le chemin d’installation de l’AWS CLI sur votre instance :
- Installez les outils AWS CLI mis à jour sur votre instance Amazon Linux 2 (
sudo ./aws/install
). - Définissez le répertoire (
--install-dir /usr/bin/aws-cli
) où installer les outils CLI. Cela vous permet de transférer la AWS CLI mise à jour vers d’autres instances sans réinstaller les outils CLI. - Mettez à jour (
--update
) votre environnement shell actuel avec le nouveau chemin pour les outils AWS CLI s’il y en a un dans votre environnement actuel.

7. Relancez la commande aws --version
ci-dessous pour vérifier que la AWS CLI mise à jour est correctement installée.
La version de l’AWS CLI installée est 2.4.7, comme indiqué ci-dessous, qui est la dernière version de l’AWS CLI au moment de la rédaction.

8. Ensuite, exécutez la commande aws configure
pour configurer votre instance avec les nouveaux outils AWS CLI.
Entrez les valeurs appropriées dans les invites comme ci-dessous :
- Identifiant de clé d’accès AWS [Aucun] – Entrez l’ID de clé d’accès que vous avez noté dans la section précédente « Création de votre utilisateur administrateur ».
- Clé d’accès secrète AWS [Aucun] – Entrez la clé d’accès secrète que vous avez notée dans la section précédente « Création de votre utilisateur administrateur ».
- Nom de région par défaut [Aucun] – Sélectionnez une région prise en charge, comme us-east-1.
- Format de sortie par défaut [Aucun] – Entrez json, car le format JSON est le standard préféré pour une utilisation avec Kubernetes.

Configurer l’outil de ligne de commande Amazon EKS (eksctl)
Étant donné que votre objectif est de créer un cluster Kubernetes avec AWS EKS CLI, vous allez également configurer l’outil de ligne de commande Amazon EKS (eksctl). Cet outil vous permet de créer et de gérer des clusters Kubernetes sur Amazon EKS.
1. Installez la dernière version de l’outil de ligne de commande Kubernetes (kubectl) sur votre instance EC2. Cet outil vous permet d’exécuter des commandes sur des clusters Kubernetes.
2. Ensuite, exécutez la commande curl
ci-dessous pour récupérer la dernière version de la publication eksctl
depuis GitHub vers votre répertoire /tmp sous la forme d’un fichier .tar.gz, puis extrayez le contenu de l’archive dans le répertoire /tmp.
Exécutez les commandes ci-dessous pour effectuer les opérations suivantes:
- Récupérez la dernière version de la publication
eksctl
depuis GitHub (--location
) sous la forme d’une archive .tar.gz ("<https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$>(uname -s)_amd64.tar.gz"
) - Extrayez le contenu de l’archive dans le répertoire /tmp (
tar xz -C /tmp
), tandis que le drapeau--silent
supprime la sortie de progression de la commande. - Déplacez (
sudo mv
) le binaire eksctl (/tmp/eksctl
) vers le chemin où vous avez installé AWS CLI (/usr/bin
)
3. Enfin, exécutez la commande ci-dessous pour confirmer que vous avez installé avec succès eksctl
.
La sortie ci-dessous confirme que vous avez installé avec succès eksctl.

Si vous êtes nouveau à eksctl
, vous pouvez exécuter la commande ci-dessous pour obtenir une liste de toutes les commandes eksctl
supportées et leur utilisation.

Approvisionnement de votre cluster EKS
Maintenant que vous avez configuré eksctl, vous pouvez maintenant provisionner votre premier cluster EKS avec les commandes eksctl
.
Exécutez la commande eksctl
ci-dessous pour créer votre premier cluster et effectuer les actions suivantes:
- Créez un cluster Kubernetes à 3 nœuds nommé
dev
avec un type de nœudt3.micro
et une régionus-east-1
. - Définissez un minimum d’un nœud (
--nodes-min 1
) et un maximum de quatre nœuds (--nodes-max 4
) pour ce groupe de nœuds géré par EKS. Le groupe de nœuds est nomméstandard-workers
. - Créez un groupe de nœuds avec le nom
standard-workers
et sélectionnez un type de machine pour le groupe de nœudsstandard-workers
.

2. Accédez à votre tableau de bord CloudFormation pour voir les actions effectuées par la commande. La commande eksctl create cluster
utilise CloudFormation pour approvisionner l’infrastructure dans votre compte AWS.
Comme vous pouvez le voir ci-dessous, une pile CloudFormation eksctl-dev-cluster est en cours de création. Ce processus peut prendre 15 minutes ou plus pour se terminer.

3. Maintenant, accédez à votre tableau de bord EKS, et vous verrez un cluster nommé dev provisionné. Cliquez sur le lien hypertexte dev pour accéder au tableau de bord du cluster EKS de dev.

Ci-dessous, vous pouvez voir les détails du cluster EKS de dev, tels que Nom du nœud, Type d’instance, Groupe de nœuds, et Statut.

4. Passez à votre tableau de bord EC2, et vous verrez que quatre nœuds sont en cours d’exécution, dont trois ont le rôle t3.micro dans votre compte AWS (trois nœuds de travail et un nœud maître).

5. Enfin, exécutez la commande ci-dessous pour mettre à jour votre configuration kubectl (update-kubeconfig
) avec l’endpoint, le certificat et les informations d’identification de votre cluster.

Déploiement d’une application sur le cluster EKS
Vous avez créé votre cluster EKS et confirmé qu’il fonctionne parfaitement. Mais pour l’instant, le cluster EKS est simplement là. Pour cette démonstration, vous allez utiliser le cluster EKS en déployant une application NGINX.
1. Exécutez la commande yum
ci-dessous pour installer
git
tout en acceptant automatiquement toutes les invites (-y
) pendant l’installation.

2. Ensuite, exécutez la commande git clone
ci-dessous pour cloner les fichiers de configuration depuis le dépôt GitHub vers votre répertoire actuel. Vous utiliserez ces fichiers pour créer un déploiement NGINX sur vos pods et créer un équilibreur de charge (ELB).

3. Exécutez les commandes suivantes pour vous déplacer dans le répertoire ata-elk
et créer (kubectl apply
) un service pour NGINX (./nginx-svc.yaml
).

4. Ensuite, exécutez la commande kubectl get service
pour vérifier l’état de votre service NGINX.
Comme vous le voyez ci-dessous, le type de service est un équilibreur de charge, et Kubernetes a créé un service (nginx-svc), qui est votre déploiement NGINX. Vous pouvez également voir le nom de domaine externe DNS de l’équilibreur de charge créé par EKS sous la colonne IP EXTERNE.
Prenez note du nom de domaine externe DNS de l’équilibreur de charge car vous en aurez besoin plus tard pour tester l’équilibreur de charge.

5. Exécutez la commande kubectl
ci-dessous pour déployer les pods NGINX.

6. Exécutez les commandes kubectl get
suivantes pour vérifier l’état de votre déploiement NGINX et de votre pod NGINX.
Comme vous pouvez le voir dans la sortie ci-dessous, il y a trois pods de votre déploiement, et tous fonctionnent.

7. Ensuite, exécutez la commande kubectl get node
pour vérifier l’état de vos nœuds de travail.

8. Maintenant, exécutez la commande curl
ci-dessous pour tester votre équilibreur de charge. Remplacez <LOAD_BALANCER_DNS_HOSTNAME>
par le nom DNS que vous avez précédemment noté (étape cinq).
Vous verrez la page de bienvenue de NGINX à partir du service NGINX créé par EKS, comme indiqué ci-dessous. La sortie ci-dessous confirme que votre équilibreur de charge fonctionne correctement et que vous pouvez accéder à vos pods NGINX.

9. Enfin, pour vérification, copiez et collez le nom DNS de l’équilibreur de charge dans un nouvel onglet du navigateur.
Vous obtiendrez également une page de bienvenue de NGINX, ce qui indique que votre application fonctionne.

Tester le Contrôle de Kubernetes Hautement Disponible
Maintenant que vous avez un cluster en cours d’exécution, vous testerez si le plan de contrôle de Kubernetes est hautement disponible. La disponibilité de votre application dépend de cette fonctionnalité. Si le plan de contrôle ne fonctionne pas, vos applications seront hors service et ne pourront pas servir les utilisateurs.
Avec la fonctionnalité de contrôle de Kubernetes hautement disponible, vous augmentez la disponibilité de votre application. Vous testerez cette fonctionnalité en arrêtant vos nœuds de travail EKS et en voyant si Kubernetes met en place de nouveaux nœuds pour remplacer ceux qui ont échoué.
1. Dans votre tableau de bord EC2, arrêtez toutes vos instances de nœuds de travail EKS, comme indiqué ci-dessous.

2. Ensuite, exécutez la commande suivante pour vérifier l’état du nœud de travail.
Vous obtiendrez un mélange d’états, comme En attente, En cours d’exécution, et En cours de terminaison. Pourquoi ? Parce qu’en essayant d’arrêter tous les nœuds de travail, Kubernetes détecte la défaillance et déploie rapidement un autre nœud.

3. Exécutez maintenant la commande kubectl get pod
pour tester la fonctionnalité de contrôle Kubernetes hautement disponible.
Vous pouvez voir dans la sortie qu’il y a trois nouveaux pods (identifiés par leur âge) dans l’état En cours d’exécution. Ces nouveaux pods indiquent que la fonctionnalité de contrôle Kubernetes hautement disponible fonctionne comme prévu.

4. Exécutez la commande kubectl get service
ci-dessous pour lister tous les services disponibles.
Vous pouvez voir ci-dessous que Kubernetes a créé un nouveau service, et le nom DNS du répartiteur de charge est maintenant différent. kubectl get service

5. Enfin, copiez et collez le nom DNS du répartiteur de charge dans votre navigateur. Vous obtiendrez la page de bienvenue de NGINX comme vous l’avez fait à la dernière étape de la section « Déploiement d’une application sur le cluster EKS ».
Conclusion
Tout au long de ce tutoriel, vous avez appris comment créer un cluster EKS, déployer un service NGINX à partir de votre conteneur et tester la fonctionnalité de plan de contrôle hautement disponible.
À ce stade, vous devriez avoir une bonne compréhension de la création de clusters EKS dans votre environnement AWS.
Quelle est la prochaine étape pour vous ? Peut-être apprendre à déployer une application NodeJS à l’aide de Docker et de K8s sur AWS?