Amazon EKS Guide de l'utilisateur - AWS Documentation
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
Amazon EKS Guide de l'utilisateur Amazon EKS: Guide de l'utilisateur Copyright © 2018 Amazon Web Services, Inc. and/or its affiliates. All rights reserved. Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's, in any manner that is likely to cause confusion among customers, or in any manner that disparages or discredits Amazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored by Amazon.
Amazon EKS Guide de l'utilisateur Table of Contents Présentation d'Amazon EKS ................................................................................................................. 1 Comment fonctionne Amazon EKS ? ............................................................................................. 2 Démarrez .......................................................................................................................................... 3 Prérequis pour Amazon EKS ........................................................................................................ 3 Création de votre rôle de service Amazon EKS ....................................................................... 3 Création du VPC de cluster Amazon EKS .............................................................................. 3 Installation et configuration de kubectl pour Amazon EKS ......................................................... 4 (Facultatif) Télécharger et installer la dernière AWS CLI ........................................................... 7 Étape 1 : Créer votre cluster Amazon EKS ..................................................................................... 7 Étape 2 : Configurer kubectl pour Amazon EKS ........................................................................... 9 Étape 3 : Lancer et configurer les nœuds de travail Amazon EKS ..................................................... 11 Étape 4 : Lancer une application Livre d'or ................................................................................... 13 Étape 5 : Nettoyer des objets de Livre d'or ................................................................................... 16 Clusters ........................................................................................................................................... 18 Création d'un cluster ................................................................................................................. 18 Suppression d'un cluster ............................................................................................................ 21 Versions de plateforme .............................................................................................................. 22 Nœuds de travail .............................................................................................................................. 24 AMI optimisée pour Amazon EKS ............................................................................................... 24 Scripts de génération d'AMI optimisée pour Amazon EKS ....................................................... 25 AMI optimisée pour Amazon EKS avec prise en charge GPU .................................................. 26 AMI partenaires ........................................................................................................................ 28 Lancement des nœuds de travail Amazon EKS ............................................................................. 28 Classes de stockage ......................................................................................................................... 32 Equilibrage de charge ........................................................................................................................ 34 Mise en réseau ................................................................................................................................ 35 Considérations relatives au VPC de cluster ................................................................................... 35 Exigence de balisage VPC ................................................................................................. 35 Exigence de balisage du sous-réseau .................................................................................. 36 Exigence de balisage du sous-réseau privé pour les équilibreurs de charge internes .................... 36 Considérations relatives aux groupes de sécurité de cluster ............................................................ 36 Mise en réseau des pods ........................................................................................................... 38 Mises à niveau CNI .................................................................................................................. 40 Installation de Calico sur Amazon EKS ........................................................................................ 41 Démonstration de stratégie Stars ........................................................................................ 41 Gestion de l'authentification du cluster ................................................................................................. 46 Installation de kubectl ............................................................................................................. 46 MacOS ............................................................................................................................ 47 Linux ............................................................................................................................... 48 Windows .......................................................................................................................... 49 Configuration de la commande kubectl pour Amazon EKS .............................................................. 50 Création d'un fichier kubeconfig pour Amazon EKS .................................................................... 52 Gestion des utilisateurs ou des rôles IAM pour votre cluster ............................................................ 55 Limites de service ............................................................................................................................. 59 Stratégies, rôles et autorisations IAM ................................................................................................... 60 Structure d'une stratégie ............................................................................................................ 60 Syntaxe d'une stratégie ..................................................................................................... 60 Actions pour Amazon EKS ................................................................................................. 61 Test des autorisations ....................................................................................................... 61 Création de stratégies IAM ......................................................................................................... 62 Rôle IAM de service Amazon EKS .............................................................................................. 63 Recherchez un rôle AWSServiceRoleForAmazonEKS existant ............................................... 63 Création du rôle AWSServiceRoleForAmazonEKS ............................................................... 64 Didacticiel : Déploiement du tableau de bord Kubernetes ........................................................................ 66 iii
Amazon EKS Guide de l'utilisateur Prérequis ................................................................................................................................. 67 Étape 1 : Déployer le tableau de bord .......................................................................................... 68 Étape 2 : Créer un compte de service eks-admin et une liaison de rôle de cluster .............................. 69 Étape 3 : Se connecter au tableau de bord ................................................................................... 70 Étape 4 : Étapes suivantes ......................................................................................................... 71 Didacticiel : Création d'un VPC pour Amazon EKS ................................................................................. 72 Étape 1 : Choisissez une adresse IP Elastic pour votre passerelle NAT ............................................. 72 Étape 2 : Exécutez l'assistant VPC .............................................................................................. 72 Étape 3 : Créez des sous-réseaux supplémentaires ........................................................................ 73 Étape 4 : Baliser vos sous-réseaux privés .................................................................................... 73 Étape 5 : Créer un groupe de sécurité de plan de contrôle .............................................................. 74 Étapes suivantes ...................................................................................................................... 74 CloudTrail ........................................................................................................................................ 75 Informations Amazon EKS dans CloudTrail ................................................................................... 75 Présentation des entrées des fichiers journaux Amazon EKS ........................................................... 76 Responsabilité partagée ..................................................................................................................... 78 Dépannage ...................................................................................................................................... 79 Capacité insuffisante ................................................................................................................. 79 aws-iam-authenticator Introuvable ....................................................................................... 79 Les nœuds de travail ne parviennent pas à joindre le cluster ........................................................... 79 hostname doesn't match .................................................................................................... 79 Outil de collecte de journaux CNI ................................................................................................ 80 Historique du document ..................................................................................................................... 81 Glossaire AWS ................................................................................................................................. 83 iv
Amazon EKS Guide de l'utilisateur Présentation d'Amazon EKS Amazon Elastic Container Service for Kubernetes (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. Kubernetes est un système open source conçu pour l'automatisation du déploiement, la mise à l'échelle et la gestion des applications de conteneur. Amazon EKS exécute les instances de plan de contrôle 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 : • Elastic Load Balancing pour la répartition des charges • IAM pour l'authentification • Amazon VPC pour l'isolement Amazon EKS exécute des versions à jour du logiciel open source Kubernetes. Vous pouvez ainsi utiliser tous les plug-ins et outils existants de la communauté 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, qu'elles s'exécutent sur les centres de données locaux ou dans les clouds publics. Cela signifie que vous pouvez facilement faire migrer n'importe quelle application Kubernetes standard vers Amazon EKS sans devoir modifier le code. 1
Amazon EKS Guide de l'utilisateur Comment fonctionne Amazon EKS ? Comment fonctionne Amazon EKS ? Il est très simple de commencer à utiliser Amazon EKS : 1. 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. 2. Lancez ensuite les nœuds de travail qui s'enregistrent auprès du cluster Amazon EKS. Nous vous fournissons un modèle AWS CloudFormation qui configure automatiquement vos nœuds. 3. 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. 4. 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. Pour plus d'informations sur la création de vos ressources requises et de votre premier cluster Amazon EKS, reportez-vous à Mise en route sur Amazon EKS (p. 3). 2
Amazon EKS Guide de l'utilisateur Prérequis pour Amazon EKS Mise en route sur Amazon EKS Ce guide de démarrage vous permet de créer toutes les ressources nécessaires pour commencer à utiliser Amazon EKS. Prérequis pour Amazon EKS Avant de pouvoir créer un cluster Amazon EKS, vous devez créer un rôle IAM que Kubernetes peut endosser pour créer des ressources AWS. Par exemple, lorsqu'un équilibreur de charge est créé, Kubernetes endosse le rôle qui consiste à créer un équilibreur de charge Elastic Load Balancing dans votre compte. Cette opération ne doit être effectuée qu'une seule fois et peut être utilisée pour plusieurs clusters EKS. Vous devez également créer un VPC et un groupe de sécurité qui sera utilisé par votre cluster. Bien que le VPC et les groupes de sécurité puissent être utilisés pour plusieurs clusters EKS, nous vous recommandons d'utiliser un VPC distinct pour chaque cluster EKS afin de profiter d'une meilleure isolation réseau. Cette section vous aide également à installer le fichier binaire kubectl et à le configurer de manière à ce qu'il fonctionne avec Amazon EKS. Création de votre rôle de service Amazon EKS Pour créer votre rôle de service Amazon EKS dans la console IAM 1. Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/. 2. Choisissez Roles (Rôles), puis Create role (Créer un rôle). 3. Choisissez EKS dans la liste des services, puis Allows Amazon EKS to manage your clusters on your behalf (Permet à Amazon EKS de gérer vos clusters en votre nom) pour votre cas d'utilisation, puis Next: Permissions (Suivant : Autorisations). 4. Choisissez Next: Review. 5. Pour Role name (Nom du rôle), saisissez un nom unique pour votre rôle, par exemple eksServiceRole, puis choisissez Create role (Créer un rôle). Création du VPC de cluster Amazon EKS Pour créer le VPC du cluster 1. Ouvrez la console AWS CloudFormation à l'adresse https://console.aws.amazon.com/cloudformation. 2. Dans la barre de navigation, sélectionnez une région prenant en charge Amazon EKS. Note Actuellement, Amazon EKS est disponible dans les régions suivantes : • USA Ouest (Oregon) (us-west-2) • USA Est (Virginie du Nord) (us-east-1) 3. Choisissez Créer une pile. 4. Dans Choisir un modèle, sélectionnez Spécifier une URL de modèle Amazon S3. 3
Amazon EKS Guide de l'utilisateur Installation et configuration de kubectl pour Amazon EKS 5. Collez l'URL suivante dans la zone de texte, puis choisissez Next (Suivant) : https://amazon-eks.s3-us-west-2.amazonaws.com/cloudformation/2018-08-30/amazon-eks-vpc- sample.yaml 6. Sur la page Specify Details (Spécifier les détails), renseignez les paramètres en conséquence, puis choisissez Next (Suivant). • Nom de la pile : Choisissez un nom pour votre pile AWS CloudFormation. Par exemple, vous pouvez l'appeler eks/vpc. • VpcBlock : Choisissez une plage CIDR pour votre VPC. Vous pouvez conserver la valeur par défaut. • Subnet01Block : Choisissez une plage CIDR pour le sous-réseau 1. Vous pouvez conserver la valeur par défaut. • Subnet02Block : Choisissez une plage CIDR pour le sous-réseau 2. Vous pouvez conserver la valeur par défaut. • Subnet03Block : Choisissez une plage CIDR pour le sous-réseau 3. Vous pouvez conserver la valeur par défaut. 7. (Facultatif) Dans la page Options, balisez les ressources de votre pile. Choisissez Suivant. 8. Sur la page Review, choisissez Create. 9. Lorsque votre pile est créée, sélectionnez-la dans la console et choisissez Outputs (Sorties). 10. Notez la valeur de SecurityGroups pour le groupe de sécurité qui a été créé. Vous en aurez besoin lors de la création de votre cluster EKS ; ce groupe de sécurité est appliqué aux interfaces réseau Elastic entre comptes qui sont créées dans vos sous-réseaux et qui permettent au plan de contrôle Amazon EKS de communiquer avec vos nœuds de travail. 11. Notez la valeur VpcId pour les sous-réseaux qui ont été créés. Vous en aurez besoin lors du lancement du modèle de groupe de votre nœud de travail. 12. Notez la valeur SubnetIds pour les sous-réseaux qui ont été créés. Vous en aurez besoin lors de la création de votre cluster EKS ; il s'agit des sous-réseaux dans lesquels vos nœuds de travail sont lancés. Installation et configuration de kubectl pour Amazon EKS Kubernetes utilise un utilitaire de ligne de commande appelé kubectl pour communiquer avec le serveur de l'API du cluster. Les clusters Amazon EKS nécessitent également l'authentificateur AWS IAM pour Kubernetes pour autoriser l'authentification IAM pour votre cluster Kubernetes. À partir de la version Kubernetes 1.10, vous pouvez configurer le client kubectl afin qu'il utilise Amazon EKS en installant l'authentificateur AWS IAM pour Kubernetes et en modifiant votre fichier de configuration kubectl afin de l'utiliser pour l'authentification. Amazon EKS vend des fichiers binaires aws-iam-authenticator que vous pouvez utiliser et qui sont identiques aux fichiers binaires aws-iam-authenticator en amont avec la même version. Vous pouvez également utiliser la commande go get pour extraire le fichier binaire à partir du projet authentificateur AWS IAM pour Kubernetes sur GitHub. Pour installer kubectl pour Amazon EKS • Vous disposez de plusieurs options pour télécharger et installer la commande kubectl pour votre système d'exploitation. • Le fichier binaire kubectl est disponible dans de nombreux gestionnaires de packages de système d'exploitation et cette option est souvent plus facile qu'un processus d'installation et de téléchargement manuel. Vous pouvez suivre les instructions pour votre gestionnaire de packages ou système d'exploitation spécifique dans la documentation Kubernetes à installer. 4
Amazon EKS Guide de l'utilisateur Installation et configuration de kubectl pour Amazon EKS • Amazon EKS vend également des commandes binaires kubectl que vous pouvez utiliser et qui sont identiques aux commandes binaires kubectl en amont avec la même version. Pour installer le fichier binaire acheté auprès d'Amazon EKS pour votre système d'exploitation, veuillez consulter Installation de kubectl (p. 46). Pour installer aws-iam-authenticator pour Amazon EKS • Téléchargez et installez le fichier binaire aws-iam-authenticator. Amazon EKS vend des fichiers binaires aws-iam-authenticator que vous pouvez utiliser. Vous pouvez aussi utiliser la commande go get pour récupérer le fichier binaire à partir du projet authentificateur AWS IAM pour Kubernetes sur GitHub pour d'autres systèmes d'exploitation. • Pour télécharger et installer le fichier binaire Amazon EKS acheté auprès d'aws-iam- authenticator : a. Téléchargez la commande binaire aws-iam-authenticator achetée auprès d'Amazon EKS à partir d'Amazon S3 : • Linux : https://amazon-eks.s3-us-west-2.amazonaws.com/1.10.3/2018-07-26/bin/linux/ amd64/aws-iam-authenticator • MacOS : https://amazon-eks.s3-us-west-2.amazonaws.com/1.10.3/2018-07-26/bin/darwin/ amd64/aws-iam-authenticator • Windows: https://amazon-eks.s3-us-west-2.amazonaws.com/1.10.3/2018-07-26/bin/ windows/amd64/aws-iam-authenticator.exe Utilisez la commande ci-dessous pour télécharger le fichier binaire, en remplaçant l'URL par l'URL correcte pour votre plateforme. L'exemple ci-dessous s'applique aux clients macOS. curl -o aws-iam-authenticator https://amazon-eks.s3-us- west-2.amazonaws.com/1.10.3/2018-07-26/bin/darwin/amd64/aws-iam-authenticator b. (Facultatif) Vérifiez le fichier binaire téléchargé avec la somme SHA-256 fournie dans le même préfixe de compartiment, en remplaçant l'URL par l'URL correcte pour votre plateforme. i. Téléchargez la somme SHA-256 pour votre système. L'exemple ci-dessous illustre le téléchargement de la somme SHA-256 pour les clients macOS. curl -o aws-iam-authenticator.sha256 https://amazon-eks.s3-us- west-2.amazonaws.com/1.10.3/2018-07-26/bin/darwin/amd64/aws-iam- authenticator.sha256 ii. Vérifiez la somme SHA-256 pour votre fichier binaire téléchargé. L'exemple de commande openssl ci-dessous a été testé pour les clients macOS et Ubuntu. Votre système d'exploitation peut utiliser une commande ou une syntaxe différente pour vérifier les sommes SHA-256. Consultez la documentation de votre système d'exploitation, le cas échéant. openssl sha -sha256 aws-iam-authenticator iii. Comparez la somme SHA-256 générée dans la sortie de commande à votre fichier aws- iam-authenticator.sha256 téléchargé. Les deux doivent correspondre. c. Appliquez les autorisations d'exécution au fichier binaire. 5
Amazon EKS Guide de l'utilisateur Installation et configuration de kubectl pour Amazon EKS chmod +x ./aws-iam-authenticator d. Copiez le fichier binaire dans un dossier de votre $PATH. Nous vous recommandons de créer un fichier $HOME/bin/aws-iam-authenticator et de vous assurer que $HOME/bin figure en premier dans votre $PATH. cp ./aws-iam-authenticator $HOME/bin/aws-iam-authenticator && export PATH= $HOME/bin:$PATH e. Ajoutez $HOME/bin à votre variable d'environnement PATH. • Pour les shells Bash sur macOS : echo 'export PATH=$HOME/bin:$PATH' >> ~/.bash_profile • Pour les shells Bash sur Linux : echo 'export PATH=$HOME/bin:$PATH' >> ~/.bashrc f. Vérifiez que le fichier binaire aws-iam-authenticator fonctionne. aws-iam-authenticator help • Ou, pour installer le fichier binaire aws-iam-authenticator à partir de GitHub à l'aide de la commande go get : a. Installez le langage de programmation Go pour votre système d'exploitation si la commande go n'est pas encore installée. Pour plus d'informations, consultez Install the Go tools (Installation des outils Go) dans la documentation Go. b. Utilisez la commande go get pour installer le fichier binaire aws-iam-authenticator . go get -u -v github.com/kubernetes-sigs/aws-iam-authenticator/cmd/aws-iam- authenticator Note Si vous recevez l'erreur suivante, vous devez mettre à niveau votre langage Go vers la version 1.7 ou supérieure. Pour plus d'informations, consultez Install the Go tools (Installation des outils Go) dans la documentation Go. package context: unrecognized import path "context" (import path does not begin with hostname) c. Ajoutez $HOME/go/bin à votre variable d'environnement PATH. • Pour les shells Bash sur macOS : export PATH=$HOME/go/bin:$PATH && echo 'export PATH=$HOME/go/bin:$PATH' >> ~/.bash_profile • Pour les shells Bash sur Linux : export PATH=$HOME/go/bin:$PATH && echo 'export PATH=$HOME/go/bin:$PATH' >> ~/.bashrc d. Vérifiez que le fichier binaire aws-iam-authenticator fonctionne. 6
Amazon EKS Guide de l'utilisateur (Facultatif) Télécharger et installer la dernière AWS CLI aws-iam-authenticator help (Facultatif) Télécharger et installer la dernière AWS CLI Bien que l'AWS CLI n'est pas explicitement requise pour utiliser Amazon EKS, la commande update- kubeconfig simplifie grandement le processus de création kubeconfig. Pour utiliser l'AWS CLI avec Amazon EKS, vous devez avoir au moins la version 1.16.18 de l'AWS CLI installée. Pour installer ou mettre à niveau l'AWS CLI, consultez Installation de l'interface de Ligne de Commande AWS dans le AWS Command Line Interface Guide de l'utilisateur. Important Les gestionnaires de package, par exemple yum, apt-get ou Homebrew pour macOS sont souvent derrière plusieurs versions de l' AWS CLI. Pour vous assurer d'avoir la dernière version, consultez Installation de l'interface de ligne de commande AWS dans le AWS Command Line Interface Guide de l'utilisateur. Vous pouvez vérifier votre version de l'AWS CLI avec la commande suivante : aws --version Note La version de votre système Python doit être Python 3, ou Python 2.7.9 ou supérieure. Sinon, vous recevez des erreurs hostname doesn't match avec les appels de l'AWS CLI vers Amazon EKS. Pour plus d'informations, consultez Que sont les erreurs « hostname doesn't match » ? dans le Forum Aux Questions (FAQ) relatif aux demandes Python. Étape 1 : Créer votre cluster Amazon EKS Vous pouvez désormais créer votre cluster Amazon EKS. Important Lorsqu'un cluster Amazon EKS est créée, l'entité IAM (utilisateur ou rôle) qui crée le cluster est ajouté à la table d'autorisation RBAC Kubernetes en tant qu'administrateur. Initialement, seul cet utilisateur IAM peut effectuer des appels vers le serveur d'API Kubernetes à l'aide de kubectl. De plus, l'authentificateur AWS IAM pour Kubernetes utilise le Kit SDK AWS pour Go pour s'authentifier auprès de votre cluster Amazon EKS. Si vous utilisez la console pour créer le cluster, vous devez vous assurer que les mêmes informations d'identification IAM sont dans la chaîne d'informations d'identification du kit SDK AWS lorsque vous exécutez des commandes kubectl sur votre cluster. Si vous installez et configurez l'AWS CLI, vous pouvez configurer les informations d'identification IAM pour votre utilisateur. Elles fonctionnent également pour l'authentificateur AWS IAM pour Kubernetes. Si l'AWS CLI est correctement configurée pour votre utilisateur, l'authentificateur AWS IAM pour Kubernetes peut également trouver ces informations d'identification. Pour plus d'informations, consultez Configuration de l'AWS CLI dans le AWS Command Line Interface Guide de l'utilisateur. Pour créer votre cluster avec la console 1. Open the Amazon EKS console at https://console.aws.amazon.com/eks/home#/clusters. 7
Amazon EKS Guide de l'utilisateur Étape 1 : Créer votre cluster Amazon EKS 2. Choisissez Créer un cluster. Note Si votre utilisateur IAM ne dispose pas de privilèges d'administration, vous devez explicitement ajouter des autorisations pour que cet utilisateur appelle les opérations d'API Amazon EKS. Pour plus d'informations, consultez Création de stratégies IAM Amazon EKS (p. 62). 3. Sur la page Create cluster (Créer un cluster), remplissez les champs suivants, puis choisissez Create (Créer) : • Cluster name (Nom du cluster) : Nom unique pour votre cluster. • Kubernetes version (Version Kubernetes) : Version de Kubernetes à utiliser pour votre cluster. Par défaut, la dernière version disponible est sélectionnée. • Role ARN (ARN de rôle) : sélectionnez le rôle IAM que vous avez créé avec Création de votre rôle de service Amazon EKS (p. 3). • VPC : VPC que vous avez créé avec Création du VPC de cluster Amazon EKS (p. 3). Vous pouvez trouver le nom de votre VPC dans la liste déroulante. • Subnets (Sous-réseaux) : les valeurs SubnetIds (séparées par des virgules) de la sortie AWS CloudFormation que vous avez générée avec Création du VPC de cluster Amazon EKS (p. 3). Par défaut, les sous-réseaux disponibles dans le VPC ci-dessus sont présélectionnés. • Security Groups (Groupes de sécurité) : la valeur SecurityGroups de la sortie AWS CloudFormation que vous avez générée avec Création du VPC de cluster Amazon EKS (p. 3). ControlPlaneSecurityGroup est affiché dans le nom du menu déroulant de ce groupe de sécurité. Important Le modèle AWS CloudFormation de nœud de travail modifie le groupe de sécurité que vous spécifiez ici. Nous vous recommandons donc d'utiliser un groupe de sécurité dédié pour le plan de contrôle du cluster. Si vous le partagez avec d'autres ressources, vous pouvez bloquer ou perturber les connexions vers ces ressources. Note Vous pouvez recevoir un message d'erreur indiquant que l'une des zones de disponibilité de votre demande ne dispose pas d'une capacité suffisante pour créer un cluster Amazon EKS. Si cela se produit, la sortie de l'erreur contient les zones de disponibilité qui peuvent prendre en charge un nouveau cluster. Essayez à nouveau de créer votre cluster avec au moins deux sous-réseaux situés dans les zones de disponibilité prises en charge pour votre compte. 4. Sur la page Clusters, choisissez le nom du cluster que vous venez de créer afin d'afficher les informations relatives au cluster. 5. Le champ Status (Statut) affiche CREATING jusqu'à la fin du processus de mise en service du cluster. Pour créer votre cluster à l'aide de l'AWS CLI 1. Créez votre cluster à l'aide de la commande suivante. Remplacez les valeurs par le nom de votre cluster, l'Amazon Resource Name (ARN) du rôle de service Amazon EKS que vous avez créé dans Création de votre rôle de service Amazon EKS (p. 3), et les ID de sous-réseau et de groupe de sécurité pour le VPC que vous avez créés dans Création du VPC de cluster Amazon EKS (p. 3). aws eks create-cluster --name devel --role-arn arn:aws:iam::111122223333:role/ eks-service-role-AWSServiceRoleForAmazonEKS-EXAMPLEBKZRQR --resources-vpc-config subnetIds=subnet-a9189fe2,subnet-50432629,securityGroupIds=sg-f5c54184 8
Amazon EKS Guide de l'utilisateur Étape 2 : Configurer kubectl pour Amazon EKS Important Si vous recevez une erreur de syntaxe similaire à la suivante, vous utilisez peut-être une version préliminaire de l'AWS CLI pour Amazon EKS. La syntaxe de nombreuses commandes Amazon EKS a changé depuis le lancement des services publics. Veuillez mettre à jour votre version d'AWS CLI vers la dernière disponible et veillez à supprimer le répertoire de modèle de service personnalisé dans ~/.aws/models/eks. aws: error: argument --cluster-name is required Note Si votre utilisateur IAM ne dispose pas de privilèges d'administration, vous devez explicitement ajouter des autorisations pour que cet utilisateur appelle les opérations d'API Amazon EKS. Pour plus d'informations, consultez Création de stratégies IAM Amazon EKS (p. 62). Sortie : { "cluster": { "name": "devel", "arn": "arn:aws:eks:us-west-2:111122223333:cluster/devel", "createdAt": 1527785885.159, "version": "1.10", "roleArn": "arn:aws:iam::111122223333:role/eks-service-role- AWSServiceRoleForAmazonEKS-AFNL4H8HB71F", "resourcesVpcConfig": { "subnetIds": [ "subnet-a9189fe2", "subnet-50432629" ], "securityGroupIds": [ "sg-f5c54184" ], "vpcId": "vpc-a54041dc" }, "status": "CREATING", "certificateAuthority": {} } } 2. La mise en service du cluster dure généralement moins de 10 minutes. Vous pouvez vérifier le statut de votre cluster avec la commande suivante. Lorsque le statut de votre cluster est ACTIVE, vous pouvez continuer. aws eks describe-cluster --name devel --query cluster.status Étape 2 : Configurer kubectl pour Amazon EKS Dans cette section, vous créez un fichier kubeconfig pour votre cluster avec la commande AWS CLI update-kubeconfig. Si vous ne souhaitez pas installer l'AWS CLI, ou si vous préférez créer ou mettre à jour votre kubeconfig manuellement, consultez Création d'un fichier kubeconfig pour Amazon EKS (p. 52). 9
Amazon EKS Guide de l'utilisateur Étape 2 : Configurer kubectl pour Amazon EKS Pour créer votre fichier kubeconfig à l'aide de l'AWS CLI 1. Assurez-vous d'avoir au moins la version 1.16.18 de l'AWS CLI installée. Pour installer ou mettre à niveau l'AWS CLI, consultez Installation de l'interface de Ligne de Commande AWS dans le AWS Command Line Interface Guide de l'utilisateur. Note La version de votre système Python doit être Python 3, ou Python 2.7.9 ou supérieure. Sinon, vous recevez des erreurs hostname doesn't match avec les appels de l'AWS CLI vers Amazon EKS. Pour plus d'informations, consultez Que sont les erreurs « hostname doesn't match » ? dans le Forum Aux Questions (FAQ) relatif aux demandes Python. Vous pouvez vérifier votre version de l'AWS CLI avec la commande suivante : aws --version Important Les gestionnaires de package, par exemple yum, apt-get ou Homebrew pour macOS sont souvent derrière plusieurs versions de l' AWS CLI. Pour vous assurer d'avoir la dernière version, consultez Installation de l'interface de ligne de commande AWS dans le AWS Command Line Interface Guide de l'utilisateur. 2. Utilisez la commande AWS CLI update-kubeconfig pour créer ou mettre à jour votre kubeconfig pour votre cluster. • Par défaut, le fichier de configuration en résultant est créé sur le chemin kubeconfig par défaut (.kube/config) dans votre annuaire de base ou fusionné avec un kubeconfig existant à cet emplacement. Vous pouvez spécifier un autre chemin avec l'option --kubeconfig. • Vous pouvez spécifier un ARN de rôle IAM avec l'option --role-arn à utiliser pour l'authentification lorsque vous émettez des commandes kubectl. Sinon, l'entité IAM dans votre AWS CLI ou votre chaîne d'informations d'identification du kit SDK par défaut est utilisée. Vous pouvez consulter votre AWS CLI ou identité SDK par défaut en exécutant la commande aws sts get-caller- identity. • Pour plus d'informations, consultez la page d'aide avec la commande aws eks update-kubeconfig help ou consultez update-kubeconfig dans le AWS CLI Command Reference. aws eks update-kubeconfig --name cluster_name 3. Testez votre configuration. kubectl get svc Note Si vous recevez l'erreur "aws-iam-authenticator": executable file not found in $PATH, cela signifie que votre kubectl n'est pas configuré pour Amazon EKS. Pour plus d'informations, consultez Configuration de la commande kubectl pour Amazon EKS (p. 50). Sortie : NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE svc/kubernetes ClusterIP 10.100.0.1 443/TCP 1m 10
Amazon EKS Guide de l'utilisateur Étape 3 : Lancer et configurer les nœuds de travail Amazon EKS Étape 3 : Lancer et configurer les nœuds de travail Amazon EKS Maintenant que votre VPC et le plan de contrôle Kubernetes sont crées, vous pouvez lancer et configurer vos nœuds de travail. Important Les nœuds de travail Amazon EKS sont des instances Amazon EC2 standard pour lesquelles vous êtes facturé en fonction du tarif normal pour les instances à la demande Amazon EC2. Pour en savoir plus, consultez Tarification Amazon EC2. Pour lancer vos nœuds de travail 1. Attendez que l'état de votre cluster s'affiche en tant que ACTIVE. Si vous lancez vos nœuds de travail avant que le cluster soit actif, les nœuds de travail ne s'enregistrent pas avec le cluster et vous devrez les relancer. 2. Ouvrez la console AWS CloudFormation à l'adresse https://console.aws.amazon.com/cloudformation. 3. Dans la barre de navigation, sélectionnez une région prenant en charge Amazon EKS. Note Actuellement, Amazon EKS est disponible dans les régions suivantes : • USA Ouest (Oregon) (us-west-2) • USA Est (Virginie du Nord) (us-east-1) 4. Choisissez Créer une pile. 5. Dans Choisir un modèle, sélectionnez Spécifier une URL de modèle Amazon S3. 6. Collez l'URL suivante dans la zone de texte, puis choisissez Next (Suivant) : https://amazon-eks.s3-us-west-2.amazonaws.com/cloudformation/2018-08-30/amazon-eks- nodegroup.yaml 7. Sur la page Specify Details (Spécifier les détails), renseignez les paramètres suivants en conséquence, puis choisissez Next (Suivant). • Nom de la pile : Choisissez un nom pour votre pile AWS CloudFormation. Vous pouvez par exemple l'appeler -worker-nodes. • ClusterName (Nom du cluster) : saisissez le nom que vous avez utilisé lors de la création de votre cluster Amazon EKS. Important Ce nom doit correspondre exactement à celui utilisé dans Étape 1 : Créer votre cluster Amazon EKS (p. 7). Sinon, vos nœuds de travail ne peuvent pas joindre le cluster. • ClusterControlPlaneSecurityGroup : choisissiez la valeur SecurityGroups de la sortie AWS CloudFormation que vous avez générée avec Création du VPC de cluster Amazon EKS (p. 3). • NodeGroupName : saisissez un nom pour le groupe de nœuds. Ce nom peut être utilisé ultérieurement pour identifier le groupe de nœuds Auto Scaling qui est créé pour vos nœuds de travail. • NodeAutoScalingGroupMinSize : saisissez le nombre minimum de nœuds que votre groupe Auto Scaling de nœuds de travail peut comporter. • NodeAutoScalingGroupMaxSize : saisissez le nombre maximum de nœuds que votre groupe Auto Scaling de nœuds de travail peut comporter. 11
Amazon EKS Guide de l'utilisateur Étape 3 : Lancer et configurer les nœuds de travail Amazon EKS • NodeInstanceType : choisissez un type d'instance pour vos nœuds de travail. • NodeImageId : saisissez l'ID AMI du nœud de travail Amazon EKS actuel pour votre région. Les ID d'AMI pour la dernière AMI optimisée pour Amazon EKS (avec ou sans prise en charge GPUAMI optimisée pour Amazon EKS avec prise en charge GPU (p. 26)) sont affichés dans le tableau suivant. Note The Amazon EKS-optimized AMI with GPU support only supports P2 and P3 instance types. Be sure to specify these instance types in your worker node AWS CloudFormation template. Because this AMI includes third-party software that requires an end user license agreement (EULA), you must subscribe to the AMI in the AWS Marketplace and accept the EULA before you can use the AMI in your worker node groups. To subscribe to the AMI, visit the AWS Marketplace. Région ID d'AMI optimisé pour Amazon EKS USA Ouest (Oregon) (us-west-2) ami-0a54c984b9f908c81 USA Est (Virginie du Nord) (us-east-1) ami-0440e4f6b9713faf6 Note L'AMI du nœud de travail Amazon EKS est basée sur Amazon Linux 2. Vous pouvez suivre les événements de sécurité et de confidentialité pour Amazon Linux 2 dans le Centre de sécurité Amazon Linux ou vous abonner au flux RSS associé. Les événements de sécurité et de confidentialité incluent une présentation du problème, les packages concernés et la manière de mettre à jour vos instances pour résoudre le problème. • KeyName : saisissez le nom d'une paire de clés SSH Amazon EC2 que vous pouvez utiliser pour vous connecter à l'aide de SSH dans vos nœuds de travail après leur lancement. Si vous ne possédez pas déjà une paire de clés Amazon EC2, vous pouvez en créer une dans la AWS Management Console. Pour plus d'informations, consultez la rubrique Paires de clés Amazon EC2 dans le Amazon EC2 Guide de l'utilisateur pour les instances Linux. Note Si vous ne fournissez pas de paire de clés ici, la création de la pile AWS CloudFormation échoue. • BootstrapArguments : spécifiez les arguments facultatifs à transmettre au script d'amorçage du nœud de travail, comme les arguments supplémentaires kubelet. Pour plus d'informations, consultez les informations d'utilisation du script d'amorçage sur https://github.com/awslabs/amazon-eks-ami/ blob/master/files/bootstrap.sh • VpcId : saisissez l'ID du VPC que vous avez créé dans Création du VPC de cluster Amazon EKS (p. 3). • Subnets (Sous-réseaux) : choisissez les sous-réseaux que vous avez créés dans Création du VPC de cluster Amazon EKS (p. 3). 8. Dans la page Options, vous pouvez baliser les ressources de votre pile. Choisissez Suivant. 9. Sur la page Vérification, vérifiez vos informations, reconnaissez que la pile peut créer des ressources IAM puis choisissez Créer. 10. Lorsque la création de votre pile est terminée, sélectionnez la pile dans la console et choisissez l'onglet Outputs (Sorties). 11. Notez la valeur de NodeInstanceRole pour le groupe de nœuds qui a été créé. Vous en aurez besoin lors de la configuration de vos nœuds de travail Amazon EKS. 12
Amazon EKS Guide de l'utilisateur Étape 4 : Lancer une application Livre d'or Pour autoriser les nœuds de travail à joindre votre cluster 1. Téléchargez, modifiez et appliquez le mappage de configuration de l'authentificateur AWS : a. Téléchargez le mappage de configuration. curl -O https://amazon-eks.s3-us-west-2.amazonaws.com/cloudformation/2018-08-30/ aws-auth-cm.yaml b. Ouvrez le fichier dans l'éditeur de texte de votre choix. Remplacez l'extrait de code ARN of instance role (not instance profile) par la valeur NodeInstanceRole que vous avez notée lors de la procédure précédente, puis enregistrez le fichier. Important Ne modifiez aucune autre ligne de ce fichier. apiVersion: v1 kind: ConfigMap metadata: name: aws-auth namespace: kube-system data: mapRoles: | - rolearn: username: system:node:{{EC2PrivateDNSName}} groups: - system:bootstrappers - system:nodes c. Appliquez la configuration. L'exécution de cette commande peut prendre quelques minutes. kubectl apply -f aws-auth-cm.yaml Note Si vous recevez l'erreur "aws-iam-authenticator": executable file not found in $PATH, cela signifie que votre kubectl n'est pas configuré pour Amazon EKS. Pour plus d'informations, consultez Configuration de la commande kubectl pour Amazon EKS (p. 50). 2. Observez le statut de vos nœuds et attendez qu'ils passent à Ready. kubectl get nodes --watch 3. (GPU uniquement) Si vous avez choisi un type d'instance P2 ou P3 et l'AMI optimisée pour Amazon EKS avec prise en charge GPU, vous devez appliquer le plug-in de l'appareil NVIDIA pour Kubernetes en tant qu'ensemble de démon défini sur votre cluster à l'aide de la commande suivante. kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v1.10/ nvidia-device-plugin.yml Étape 4 : Lancer une application Livre d'or Dans cette section, vous allez créer un exemple d'application Livre d'or pour tester votre nouveau cluster. 13
Amazon EKS Guide de l'utilisateur Étape 4 : Lancer une application Livre d'or Note Pour plus d'informations sur la configuration de l'exemple Livre d'or, consultez https://github.com/ kubernetes/examples/blob/master/guestbook-go/README.md dans la documentation Kubernetes. Pour créer votre application Livre d'or 1. Créez le contrôleur de réplication principal Redis. kubectl apply -f https://raw.githubusercontent.com/kubernetes/kubernetes/v1.10.3/ examples/guestbook-go/redis-master-controller.json Note Si vous recevez l'erreur "aws-iam-authenticator": executable file not found in $PATH, cela signifie que votre kubectl n'est pas configuré pour Amazon EKS. Pour plus d'informations, consultez Configuration de la commande kubectl pour Amazon EKS (p. 50). File d'attente: replicationcontroller "redis-master" created 2. Créez le service principal Redis. kubectl apply -f https://raw.githubusercontent.com/kubernetes/kubernetes/v1.10.3/ examples/guestbook-go/redis-master-service.json File d'attente: service "redis-master" created 3. Créez le contrôleur de réplication subordonné Redis. kubectl apply -f https://raw.githubusercontent.com/kubernetes/kubernetes/v1.10.3/ examples/guestbook-go/redis-slave-controller.json File d'attente: replicationcontroller "redis-slave" created 4. Créez le service subordonné Redis. kubectl apply -f https://raw.githubusercontent.com/kubernetes/kubernetes/v1.10.3/ examples/guestbook-go/redis-slave-service.json File d'attente: service "redis-slave" created 5. Créez le contrôleur de réplication du Livre d'or. kubectl apply -f https://raw.githubusercontent.com/kubernetes/kubernetes/v1.10.3/ examples/guestbook-go/guestbook-controller.json Sortie : 14
Amazon EKS Guide de l'utilisateur Étape 4 : Lancer une application Livre d'or replicationcontroller "guestbook" created 6. Créez le service Livre d'or. kubectl apply -f https://raw.githubusercontent.com/kubernetes/kubernetes/v1.10.3/ examples/guestbook-go/guestbook-service.json Sortie : service "guestbook" created 7. Recherchez les services de votre cluster et patientez jusqu'à ce que la colonne External IP (IP externe) du service guestbook soit renseignée. Note Plusieurs minutes peuvent s'écouler avant que l'adresse IP soit disponible. kubectl get services -o wide 8. Une fois que votre adresse IP externe est disponible, pointez un navigateur web vers cette adresse sur le port 3000 pour afficher votre livre d'or. Par exemple, http:// a7a95c2b9e69711e7b1a3022fdcfdf2e-1985673473.us-west-2.elb.amazonaws.com:3000 Note Plusieurs minutes peuvent être nécessaires pour que DNS se propage et pour que votre livre d'or s'affiche. 15
Amazon EKS Guide de l'utilisateur Étape 5 : Nettoyer des objets de Livre d'or Important Si vous n'êtes pas en mesure de vous connecter à l'adresse IP externe avec votre navigateur, vérifiez que le pare-feu d'entreprise ne bloque pas les ports non standard, comme le port 3000. Pour vérifier, vous pouvez essayer de passer à un réseau invité. Étape 5 : Nettoyer des objets de Livre d'or Lorsque vous avez terminé de tester votre application Livre d'or, vous devez nettoyer les ressources que vous avez créées pour cette application. La commande suivante supprime tous les services et contrôleurs de réplication pour l'application Livre d'or : kubectl delete rc/redis-master rc/redis-slave rc/guestbook svc/redis-master svc/redis-slave svc/guestbook Note Si vous recevez l'erreur "aws-iam-authenticator": executable file not found in $PATH, cela signifie que votre kubectl n'est pas configuré pour Amazon EKS. Pour plus d'informations, consultez Configuration de la commande kubectl pour Amazon EKS (p. 50). 16
Amazon EKS Guide de l'utilisateur Étape 5 : Nettoyer des objets de Livre d'or Si vous avez terminé d'utiliser votre cluster Amazon EKS, vous devez le supprimer ainsi que ses ressources afin de ne pas encourir de frais supplémentaires. Pour plus d'informations, consultez Suppression d'un cluster (p. 21). 17
Amazon EKS Guide de l'utilisateur Création d'un cluster Clusters Amazon EKS Un cluster Amazon EKS comprend deux composants principaux : • Le plan de contrôle Amazon EKS • Les nœuds de travail Amazon EKS qui sont enregistrés avec le plan de contrôle Le plan de contrôle Amazon EKS se compose de nœuds de plan de contrôle qui exécutent le logiciel Kubernetes, comme etcd et le serveur d'API Kubernetes. Le plan de contrôle s'exécute dans un compte géré par AWS et l'API Kubernetes est exposée via le point de terminaison Amazon EKS associé à votre cluster. Les nœuds de travail Amazon EKS s'exécutent dans votre compte AWS et se connectent au plan de contrôle de votre cluster via le point de terminaison de serveur d'API. Par ailleurs, un fichier de certificat est créé pour votre cluster. Le plan de contrôle de cluster est mis en service sur plusieurs zones de disponibilité et un Elastic Load Balancing Équilibreur de charge du réseau est en avant-plan. Amazon EKS prévoit également des interfaces réseau Elastic dans vos sous-réseaux VPC pour fournir une connectivité à partir du plan de contrôle des instances pour les nœuds de travail (par exemple, pour prendre en charge les flux de données kubectl exec, logs et proxy). Rubriques • Création d'un cluster Amazon EKS (p. 18) • Suppression d'un cluster (p. 21) • Versions de plateforme (p. 22) Création d'un cluster Amazon EKS Cette rubrique vous guide dans le processus de création d'un cluster Amazon EKS. Si vous créez un cluster Amazon EKS pour la première fois, nous vous recommandons plutôt de suivre notre guide Mise en route sur Amazon EKS (p. 3), qui fournit une procédure détaillée complète du processus allant de la création d'un cluster Amazon EKS au déploiement d'un exemple d'application Kubernetes. Voici les prérequis pour cette rubrique : • Vous avez créé un VPC et un groupe de sécurité dédié qui remplissent les conditions requises pour un cluster Amazon EKS. Pour plus d'informations, consultez Considérations relatives au VPC de cluster (p. 35) et Considérations relatives aux groupes de sécurité de cluster (p. 36). Le guide Mise en route sur Amazon EKS (p. 3) créé un VPC qui respecte les exigences. Vous pouvez également suivre Didacticiel : Création d'un VPC avec des sous-réseaux publics et privés pour vos clusters Amazon EKS (p. 72) pour créer manuellement un VPC. • Vous avez créé un rôle de service Amazon EKS à appliquer à votre cluster. Le guide Mise en route sur Amazon EKS (p. 3) créé un rôle de service pour vous. Vous pouvez également suivre Rôle IAM de service Amazon EKS (p. 63) pour en créer un manuellement. Important Lorsqu'un cluster Amazon EKS est créée, l'entité IAM (utilisateur ou rôle) qui crée le cluster est ajouté à la table d'autorisation RBAC Kubernetes en tant qu'administrateur. Initialement, seul cet utilisateur IAM peut effectuer des appels vers le serveur d'API Kubernetes à l'aide de 18
Vous pouvez aussi lire