Amazon EKS Guide de l'utilisateur - AWS Documentation

La page est créée Evelyne Bouchet
 
CONTINUER À LIRE
Amazon EKS Guide de l'utilisateur - AWS Documentation
Amazon EKS
Guide de l'utilisateur
Amazon EKS Guide de l'utilisateur - AWS Documentation
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