Dans cet article, nous allons apprendre à déployer un cluster Kubernetes sur AWS avec Amazon EKS et comment installer et configurer AWS CLI et Kubectl pour interagir avec le cluster EKS à partir de la ligne de commande sous Linux.
Avant de déployer le cluster Kubernetes sur le cloud AWS à l'aide d'Amazon Elastic Kubernetes Service, assurez-vous de disposer d'un compte AWS. Si vous n'avez pas de compte AWS, consultez notre Introduction à Amazon Web Services (AWS) article pour savoir comment en créer un.
1. Configurer le cluster EKS (nœud maître)
Pour créer un cluster EKS dans AWS, vous devez avoir un rôle IAM créé en main.
1.1. Créer un rôle IAM
Les clusters Kubernetes gérés par Amazon EKS effectuent des appels en votre nom vers d'autres services AWS pour gérer les ressources que vous utilisez avec le service.
Vous devez d'abord créer un rôle IAM avec la stratégie IAM suivante avant de pouvoir construire des clusters Amazon EKS :
AmazonEKSClusterPolicy
Connectez-vous à votre console AWS et recherchez « IAM ». Sélectionnez le service IAM pour accéder à la console IAM.
Choisissez Rôles dans les options de gauche, puis cliquez sur Créer un rôle.
Sélectionnez Services AWS et sélectionnez « EKS – Cluster » dans les options de cas d'utilisation. Une fois sélectionné, cliquez sur "Suivant" pour continuer.
Assurez-vous que 'AmazonEKSClusterPolicy' est ajouté, par défaut, il sera ajouté car nous avons sélectionné EKS-Cluster dans les cas d'utilisation. Cliquez sur Suivant pour continuer.
À l'étape suivante, définissez le nom du rôle. Ici, nous nommons le rôle 'ostechnix_eks'. Passez en revue tous les paramètres et cliquez sur "créer" à la fin pour créer le rôle.
Ici, nous n'ajoutons aucune balise pour ce rôle. Si nous avons affaire à plusieurs ressources, il sera utile d'avoir des balises pour gérer, identifier et filtrer les ressources.
Un nouveau rôle nommé 'ostechnix_eks' vient d'être créé.
1.2. Créer un cluster EKS
Accédez à la console AWS et recherchez avec « EKS ». Sélectionnez 'Elastic Kubernetes Service' pour accéder à la console EKS.
Dans la liste déroulante "Ajouter un cluster", choisissez l'option "Créer" un cluster.
Vous obtiendrez la page "Configurer le cluster" où vous pourrez nommer le cluster, sélectionner la version de Kubernetes et sélectionner le rôle de service de cluster que nous avons créé à l'étape précédente.
Ici, nous avons nommé le cluster "ostechnix" et sélectionné la version 1.21 de Kubernetes.
Si vous n'avez pas trouvé le rôle, actualisez les rôles. Sélectionnez le rôle et cliquez sur "Suivant" pour continuer.
Dans ce "Spécifier la mise en réseau", vous devez configurer la mise en réseau. Ici, nous procédons avec les options par défaut.
Sélectionnez le VPC existant, VPC est Virtual Private Cloud où vous pouvez créer des ressources AWS dans le réseau virtuel que vous avez défini. Continuez avec les sous-réseaux par défaut disponibles dans le VPC par défaut.
Choisissez IPv4 comme famille d'adresses IP de cluster. C'est celui par défaut.
Choisissez « Public » pour l'accès au point de terminaison du cluster, ce qui permet uniquement l'accès public à votre cluster. Si vous choisissez "Privé", cela active uniquement l'accès privé à votre cluster. Ici, nous procédons avec Public qui est celui par défaut.
Vous pouvez continuer avec les "modules complémentaires de mise en réseau" par défaut et cliquer sur "Suivant".
Vous obtiendrez la page "Configurer la journalisation" où vous pourrez sélectionner les types de journaux que vous souhaitez activer. Par défaut, tous les types sont désactivés. Cliquez sur "Suivant" pour continuer.
Vous obtiendrez la page "Revoir et créer". Passez en revue tous les détails que nous avons configurés et cliquez sur "Créer" en bas.
La création du cluster sera en cours. Cela prendra quelques minutes pour être créé.
Un nouveau cluster EKS nommé 'ostechnix' est créé. Vous pouvez vérifier dans AWS Console🡪Amazon EKS🡪Clusters.
Ensuite, nous devons installer et configurer AWS CLI et Kubectl pour interagir avec le cluster EKS à partir de la ligne de commande.
Pour configurer les informations d'identification de l'AWS CLI, vous devez créer des informations d'identification de sécurité dans AWS IAM.
2. Créer des identifiants de sécurité
Connectez-vous à la console AWS et effectuez une recherche avec IAM. Sélectionnez IAM pour accéder à la console IAM.
Sélectionnez l'option "Mes informations d'identification de sécurité" disponible à droite pour créer et gérer vos informations d'identification de sécurité.
Cliquez sur la liste déroulante "Clés d'accès" et cliquez sur l'option "Créer une nouvelle clé d'accès".
Une fois que vous avez cliqué sur l'option "Créer une nouvelle clé d'accès", la clé sera créée. Téléchargez la clé pour configurer l'AWS CLI sur la machine Linux. Vous pouvez afficher la clé en cochant "Afficher la clé d'accès".
Dans cette démonstration, la clé est,
- ID de la clé d'accès : AKIAV7XU2AIJBX4EYKUO
- Clé d'accès secrète : jicg/UZyZfb92zuYNnEAE0MVSJisHb0Mlgac2Doe
3. Installer l'AWS CLI
AWS CLI est une interface de ligne de commande qui rassemble tous les services AWS dans un seul terminal, vous permettant d'exploiter de nombreux services AWS avec un seul outil.
Utilisez la curl
ci-dessous commande pour télécharger le fichier d'installation. Ici, nous utilisons 'CentOS Stream' pour installer et configurer AWS CLI.
[[email protected] ~]# curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
Décompressez le fichier d'installation à l'aide de la commande ci-dessous.
[[email protected] ~]# unzip awscliv2.zip
Installez l'AWS CLI à l'aide de la commande ci-dessous.
[[email protected] ~]# ./aws/install
You can now run: /usr/local/bin/aws --version
Vérifiez la version à l'aide de la commande mentionnée ci-dessus.
[[email protected] ~]# /usr/local/bin/aws --version
aws-cli/2.4.17 Python/3.8.8 Linux/4.18.0-358.el8.x86_64 exe/x86_64.centos.8 prompt/off
4. Configurer l'AWS CLI
Utilisez la commande ci-dessous pour configurer l'AWS CLI. Il demandera l'ID de clé d'accès et la clé d'accès secrète que nous avons générés dans la section 2.
[[email protected] ~]# /usr/local/bin/aws configure AWS Access Key ID [None]: AKIAV7XU2AIJBX4EYKUO AWS Secret Access Key [None]: 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 Default region name [None]: Default output format [None]: [[email protected] ~]#
5. Installer Kubectl
Kubernetes communique avec le serveur d'API du cluster via l'utilitaire de ligne de commande kubectl.
Utilisez la commande curl ci-dessous pour télécharger le binaire kubectl vendu par Amazon EKS à partir d'Amazon S3.
[[email protected] ~]# curl -o kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.21.2/2021-07-05/bin/linux/amd64/kubectl
Ajoutez l'autorisation d'exécution au binaire à l'aide de la commande ci-dessous.
[[email protected] ~]# chmod +x ./kubectl
Copiez ce binaire dans le dossier de votre chemin et exportez le $PATH
.
[[email protected] ~]# mkdir -p $HOME/bin && cp ./kubectl $HOME/bin/kubectl && export PATH=$PATH:$HOME/bin
Exportez le PATH vers ~/.bashrc
:
[[email protected] ~]# echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc
Kubectl est installé, vous pouvez vérifier la version à l'aide de la commande ci-dessous.
[[email protected] ~]# kubectl version --short --client
Client Version: v1.21.2-13+d2965f0db10712
6. Configurer Kubectl
À l'heure actuelle, kubectl ne sait pas où se trouve le nœud maître EKS dans AWS. Nous devons faire savoir à kubectl où se trouve le serveur maître en mentionnant la région nom et groupe r nom.
Utilisez la commande ci-dessous pour vérifier l'état du cluster EKS.
[[email protected] ~]# /usr/local/bin/aws eks --region ap-south-1 describe-cluster --name ostechnix --query cluster.status "ACTIVE"
Mettez à jour le fichier kubeconfig pour utiliser kubectl pour interagir avec le cluster EKS. Il récupérera toutes les configurations du nœud maître dans le fichier kubeconfig.
[[email protected] ~]# /usr/local/bin/aws eks --region ap-south-1 update-kubeconfig --name ostechnix Added new context arn:aws:eks:ap-south-1:411756528146:cluster/ostechnix to /root/.kube/config
Vérifiez le kubectl en vérifiant le service à l'aide de la commande ci-dessous. Vous pouvez vous assurer que Kubectl est capable de se connecter au cluster EKS.
[[email protected] ~]# kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 105m
Conclusion
Dans cet article, nous avons appris comment provisionner le cluster Amazon EKS et comment configurer l'AWS CLI et Kubectl pour le cluster EKS sur la plate-forme Linux.
J'ai déployé avec succès le cluster Kubernetes sur le cloud AWS, et maintenant ? Vous pourriez vous demander. Veuillez consulter notre prochain guide pour savoir comment ajouter des groupes de nœuds et configurer les nœuds de travail dans le cluster AWS EKS.
- Comment ajouter des nœuds de travail au cluster Amazon EKS