Une nouvelle version de GKE sur AWS a été publiée le 2 novembre. Consultez les notes de version pour plus d'informations.

Prérequis

Cette page décrit les conditions préalables à l'installation de GKE sur AWS.

Environnement

Les instructions suivantes supposent que vous utilisez une interface système Bash sous Linux ou macOS. Si vous n'avez pas accès à un environnement shell standard, vous pouvez utiliser Cloud Shell.

Exigences concernant AWS

Pour suivre cet article, vous devez disposer d'un compte AWS avec un accès par ligne de commande et deux clés AWS KMS (Key Management Service) dans la même région que votre cluster GKE sur AWS.

Pour en savoir plus sur les autres ressources AWS requises, consultez la page Conditions requises.

Configurer AWS

Avant de commencer

Avant de terminer cette section :

  • Téléchargez et installez l'interface de ligne de commande AWS. Confirmez l'installation en exécutant la commande aws --version. Si l'exécutable est introuvable, ajoutez l'outil aws à votre PATH.
  • Configurez vos identifiants IAM AWS et la région AWS avec aws configure.

Autorisations d'administrateur

GKE sur AWS nécessite que le créateur d'un service de gestion dispose de certaines autorisations. Avant de pouvoir créer un service de gestion ou des clusters d'utilisateur, créez ou accédez à des identifiants IAM AWS répondant aux exigences.

Créer une clé KMS

GKE sur AWS nécessite deux clés de service de gestion des clés (KMS) AWS. Les clés KMS assurent le chiffrement :

  • des données pendant le processus d'installation avec le chiffrement encapsulé ;
  • des secrets de la couche d'application sur vos clusters GKE sur AWS.

Suivez la procédure ci-dessous pour créer deux clés KMS AWS.

Ligne de commande

  1. Créez une clé KMS dans votre compte AWS.

    aws kms create-key
    

    Le résultat inclut les métadonnées de la clé.

  2. Dans le résultat de la commande précédente, copiez le nom ARN (Amazon Resource Name) de la clé dans le champ Arn.

  3. Créez un alias pour la clé avec aws kms create-alias. Un alias vous permet de suivre vos clés KMS AWS.

    aws kms create-alias \
        --alias-name=alias/key-name \
        --target-key-id=key-arn
    
  4. Répétez les étapes précédentes pour une autre clé.

Console

  1. Connectez-vous à la console AWS.
  2. Accédez à KMS, puis sélectionnez Customer-managed keys (Clés gérées par le client) dans la barre latérale.
  3. Cliquez sur Create Key (Créer une clé).
  4. Laissez les options par défaut sélectionnées.
  5. Une fois la clé créée, sélectionnez-la dans la liste.
  6. Copiez l'ARN de la clé.
  7. Répétez les étapes précédentes pour une autre clé.

Exigences de Google Cloud

Avant de commencer

  • Assurez-vous de disposer des autorisations de propriétaire de projet sur un compte Google pour activer les API sur le projet Google Cloud auquel vous connectez vos composants GKE sur AWS.

  • Installez le SDK Cloud.

  • L'API Anthos doit être activée pour votre projet Google Cloud. L'activation de cette API vous permet d'utiliser d'autres fonctionnalités Anthos avec le projet Cloud.

Créer des comptes de service GKE sur AWS

Dans cette section, vous allez créer trois comptes de service et clés IAM pour GKE sur AWS. Ces comptes de service sont décrits dans la liste suivante :

Nom Rôles Description
management-sa gkehub.admin,
serviceusage.serviceUsageViewer
Autorisations permettant de gérer les membres du Hub et de vérifier que les API Google Cloud sont activées.
hub-sa gkehub.connect Autorisation permettant de configurer Connect entre votre cluster GKE sur AWS et le Hub.
node-sa storage.objectViewer Autorisation d'accéder à Container Registry.

Ligne de commande

  1. Authentifiez-vous à l'aide de l'outil de ligne de commande gcloud.

    gcloud auth login &&\
    gcloud auth application-default login
    

    Vous êtes invité à effectuer deux actions pour accéder à cloud.google.com et vous authentifier avec votre compte Google.

  2. Définissez votre projet Google Cloud comme variable d'environnement et définissez votre ID project-id par défaut à l'aide de l'outil gcloud.

    export PROJECT_ID=project-id
    
    gcloud config set project $PROJECT_ID
    

    Remplacez la valeur de project-id par votre projet Google Cloud.

  3. Activez les API Google Cloud.

    gcloud services enable anthos.googleapis.com
    gcloud services enable cloudresourcemanager.googleapis.com
    gcloud services enable gkehub.googleapis.com
    gcloud services enable gkeconnect.googleapis.com
    gcloud services enable logging.googleapis.com
    gcloud services enable monitoring.googleapis.com
    gcloud services enable serviceusage.googleapis.com
    gcloud services enable stackdriver.googleapis.com
    gcloud services enable storage-api.googleapis.com
    gcloud services enable storage-component.googleapis.com
    
  4. Créez des comptes de service avec gcloud en exécutant les commandes suivantes.

    gcloud iam service-accounts create management-sa
    gcloud iam service-accounts create hub-sa
    gcloud iam service-accounts create node-sa
    
  5. Téléchargez les clés pour chaque compte de service avec gcloud en exécutant les commandes suivantes.

    gcloud iam service-accounts keys create management-key.json \
         --iam-account management-sa@$PROJECT_ID.iam.gserviceaccount.com
    gcloud iam service-accounts keys create hub-key.json \
         --iam-account hub-sa@$PROJECT_ID.iam.gserviceaccount.com
    gcloud iam service-accounts keys create node-key.json \
         --iam-account node-sa@$PROJECT_ID.iam.gserviceaccount.com
    
  6. Attribuez des rôles au compte de service de gestion.

    gcloud projects add-iam-policy-binding \
        $PROJECT_ID \
        --member serviceAccount:management-sa@$PROJECT_ID.iam.gserviceaccount.com \
        --role roles/gkehub.admin
    gcloud projects add-iam-policy-binding \
        $PROJECT_ID \
        --member serviceAccount:management-sa@$PROJECT_ID.iam.gserviceaccount.com \
        --role roles/serviceusage.serviceUsageViewer
    
  7. Attribuez des rôles au compte de service Hub.

    gcloud projects add-iam-policy-binding \
        $PROJECT_ID \
        --member serviceAccount:hub-sa@$PROJECT_ID.iam.gserviceaccount.com \
        --role roles/gkehub.connect
    
  8. Attribuez des rôles au compte de service de nœud.

    gcloud projects add-iam-policy-binding \
          $PROJECT_ID \
          --member serviceAccount:node-sa@$PROJECT_ID.iam.gserviceaccount.com \
          --role roles/storage.objectViewer
    

Console

  1. Ouvrez la page de la bibliothèque d'API de Google Cloud Console.
  2. Sélectionnez le projet de votre choix dans le menu déroulant en haut de l'écran.
  3. Recherchez et activez les API suivantes.

    • Anthos
    • Cloud Resource Manager
    • Cloud Storage
    • Cloud Logging
    • API JSON Google Cloud Storage
    • GKE Hub
    • API GKE Connect
    • Service Usage
    • Stackdriver
    • Stackdriver Monitoring
  4. Accédez à la page Comptes de service.

  5. Ensuite, créez un compte de service et attribuez des rôles au compte de service management-sa.

    1. Cliquez sur Créer un compte de service.
    2. Nommez le compte management-sa et cliquez sur Créer. L'écran Autoriser ce compte de service à accéder au projet s'affiche.
    3. Ajoutez les rôles d'administrateur GKE Hub et de lecteur Service Usage.
    4. Cliquez sur Continuer. L'écran Autoriser les utilisateurs à accéder à ce compte de service s'affiche.
    5. Cliquez sur OK. L'écran Comptes de service du projet s'affiche.
    6. Cliquez sur l'adresse e-mail de votre compte de service, management-sa@project_id.iam.gserviceaccount.com.
    7. Cliquez sur AJOUTER UNE CLÉ -> Créer une clé. La boîte de dialogue Créer une clé privée pour le compte de service de gestion s'affiche.
    8. Sélectionnez JSON comme type de clé, puis cliquez sur Créer. Votre navigateur télécharge la clé du compte de service.
    9. Renommez le fichier management-key.json.
  6. Ensuite, créez un compte de service et attribuez des rôles au compte de service hub-sa.

    1. Cliquez sur Créer un compte de service.
    2. Nommez le compte hub-sa et cliquez sur Créer. L'écran Autoriser ce compte de service à accéder au projet s'affiche.
    3. Ajoutez le rôle d'agent de connexion GKE Hub.
    4. Cliquez sur Continuer. L'écran Autoriser les utilisateurs à accéder à ce compte de service s'affiche.
    5. Cliquez sur OK. L'écran Comptes de service du projet s'affiche.
    6. Cliquez sur l'adresse e-mail de votre compte de service, hub-sa@project_id.iam.gserviceaccount.com.
    7. Cliquez sur AJOUTER UNE CLÉ -> Créer une clé. La boîte de dialogue Créer une clé privée pour le compte de service Hub s'affiche.
    8. Sélectionnez JSON comme type de clé, puis cliquez sur Créer. Votre navigateur télécharge la clé du compte de service.
    9. Renommez le fichier hub-key.json.
  7. Ensuite, créez un compte de service et attribuez des rôles au compte de service node-sa.

    1. Cliquez sur Créer un compte de service.
    2. Nommez le compte node-sa et cliquez sur Créer. L'écran Autoriser ce compte de service à accéder au projet s'affiche.
    3. Ajoutez le rôle de lecteur des objets de l'espace de stockage.
    4. Cliquez sur OK. L'écran Comptes de service du projet s'affiche.
    5. Cliquez sur l'adresse e-mail de votre compte de service, node-sa@project_id.iam.gserviceaccount.com.
    6. Cliquez sur AJOUTER UNE CLÉ -> Créer une clé. La boîte de dialogue Créer une clé privée pour le compte de service de nœud s'affiche.
    7. Sélectionnez JSON comme type de clé, puis cliquez sur Créer. Votre navigateur télécharge la clé du compte de service.
    8. Renommez le fichier node-key.json.

Outil de ligne de commande Anthos GKE

anthos-gke est un outil de ligne de commande pour GKE sur AWS. Vous utilisez anthos-gke pour créer une configuration qui installe un service de gestion. La dernière version de anthos-gke est aws-1.5.0-gke.6.

  1. Téléchargez le binaire depuis Cloud Storage.

    Linux

    gsutil cp gs://gke-multi-cloud-release/aws/aws-1.5.0-gke.6/bin/linux/amd64/anthos-gke .
    

    macOS

    gsutil cp gs://gke-multi-cloud-release/aws/aws-1.5.0-gke.6/bin/darwin/amd64/anthos-gke .
    
  2. Mettez à jour les autorisations du fichier anthos-gke et copiez-le dans /usr/local/bin.

    chmod 755 anthos-gke
    sudo mv anthos-gke /usr/local/bin
    
  3. Confirmez que la version est aws-1.5.0-gke.6.

    anthos-gke version
    

Terraform

GKE sur AWS nécessite Terraform 0.12.28 ou une version ultérieure. Téléchargez et installez Terraform avant de commencer.

L'outil anthos-gke génère des fichiers de configuration Terraform. La configuration est déclarative, peut être contrôlée pour chaque version et est auditable.

Kubernetes

GKE sur AWS nécessite kubectl 1.16 ou une version ultérieure. Vous pouvez vérifier votre version de kubectl en exécutant la commande suivante :

kubectl version --client -o yaml | grep gitVersion

Si vous ne possédez pas la version 1.16 ou une version ultérieure, installez une version plus récente de kubectl.

Étapes suivantes