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
iiiAmazon 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
ivAmazon 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.
1Amazon 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).
2Amazon 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.
3Amazon 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.
4Amazon 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.
5Amazon 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.
6Amazon 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.
7Amazon 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
8Amazon 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).
9Amazon 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
10Amazon 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.
11Amazon 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.
12Amazon 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.
13Amazon 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 :
14Amazon 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.
15Amazon 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).
16Amazon 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).
17Amazon 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
18Vous pouvez aussi lire