Conditions préalables

Cette page décrit la procédure à suivre avant d'installer GKE sur AWS.

Environnement

Pour installer GKE sur AWS, vous avez besoin d'un environnement dans lequel vous pouvez installer et exécuter différents outils. Les étapes suivantes supposent que vous utilisez une interface système Bash sous Linux ou macOS. Si vous n'avez pas accès à un environnement shell Bash, vous pouvez utiliser Cloud Shell.

Exigences concernant AWS

Pour effectuer cette opération, vous devez disposer d'un compte AWS avec accès à la ligne de commande, et de deux clés de service de gestion des clés (KMS) AWS dans la même région que vos clusters d'utilisateurs.

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 KMS AWS. Les clés KMS assurent le chiffrement :

  • des données pendant le processus d'installation avec le chiffrement encapsulé ;
  • Secrets de la couche d'application dans vos clusters d'utilisateurs.

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. Par exemple, une clé de la région us-west-2 dispose de l'ARN arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.

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

    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

Les contraintes de sécurité définies par votre organisation peuvent vous empêcher d'effectuer les étapes suivantes. Pour obtenir des informations de dépannage, consultez la page Développer des applications dans un environnement Google Cloud limité.

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. Vous n'utiliserez les autorisations de Propriétaire que pour créer les comptes de services GKE on AWS dans la section suivante.

  • Installez Google Cloud CLI.

  • L'API GKE Enterprise doit être activée pour votre projet Google Cloud. L'activation de cette API vous permet d'utiliser d'autres fonctionnalités GKE Enterprise avec votre projet Google 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 Autorisations de gérer les membres du Hub
hub-sa gkehub.connect Autorisation de configurer Connect entre vos clusters d'utilisateur et Hub.
node-sa storage.objectViewer Autorisation d'accéder à Container Registry.

Ligne de commande

  1. Authentifiez-vous avec Google Cloud CLI.

    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 gcloud CLI.

    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
    
  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.
    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. Recherchez la ligne contenant l'adresse e-mail de votre compte de service, management-sa@project_id.iam.gserviceaccount.com.
    7. Cliquez sur le menu d'actions du compte de service, puis sélectionnez Gérer les clés.
    8. Cliquez sur le menu déroulant Ajouter une clé.
    9. Cliquez sur Créer une clé.
    10. Sélectionnez JSON comme type de clé, puis cliquez sur Créer. Votre navigateur télécharge la clé du compte de service.
    11. 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. Recherchez la ligne contenant l'adresse e-mail de votre compte de service, hub-sa@project_id.iam.gserviceaccount.com.
    7. Cliquez sur le menu d'actions du compte de service, puis sélectionnez Gérer les clés.
    8. Cliquez sur le menu déroulant Ajouter une clé.
    9. Cliquez sur Créer une clé.
    10. Sélectionnez JSON comme type de clé, puis cliquez sur Créer. Votre navigateur télécharge la clé du compte de service.
    11. 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. Recherchez la ligne contenant l'adresse e-mail de votre compte de service, node-sa@project_id.iam.gserviceaccount.com.
    6. Cliquez sur le menu d'actions du compte de service, puis sélectionnez Gérer les clés.
    7. Cliquez sur le menu déroulant Ajouter une clé.
    8. Cliquez sur Créer une clé.
    9. Sélectionnez JSON comme type de clé, puis cliquez sur Créer. Votre navigateur télécharge la clé du compte de service.
    10. 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 la configuration et installer un service de gestion. La dernière version de anthos-gke est aws-1.14.1-gke.1.

L'outil de ligne de commande anthos-gke n'est compatible qu'avec Linux et macOS.

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

    Linux

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

    macOS

    gsutil cp gs://gke-multi-cloud-release/aws/aws-1.14.1-gke.0/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.14.1-gke.0.

    anthos-gke version
    

Autorisations pour l'outil de ligne de commande anthos-gke

Pour utiliser l'outil de ligne de commande anthos-gke, l'utilisateur qui exécute la commande doit disposer des rôles ServiceUsageViewer et StorageAdmin. Pour ajouter les rôles à votre compte principal IAM, exécutez les commandes suivantes :

gcloud projects add-iam-policy-binding PROJECT_NAME \
    --member user:USER_NAME \
    --role roles/serviceusage.serviceUsageViewer
gcloud projects add-iam-policy-binding PROJECT_NAME \
    --member user:USER_NAME \
    --role roles/storage.admin

Remplacez les éléments suivants :

  • PROJECT_NAME : projet Google Cloud
  • USER_NAME : nom de l'utilisateur qui exécute l'outil de ligne de commande anthos-gke. Si vous utilisez un compte de service, utilisez serviceAccount:SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com.

Terraform

L'outil anthos-gke génère des fichiers de configuration Terraform et appelle l'outil de ligne de commande terraform.

GKE sur AWS nécessite une version de Terraform supérieure à la version 0.14.3. Vous pouvez vérifier votre version de Terraform à l'aide de la commande suivante :

terraform version

Si vous ne disposez pas de la version v0.14.3 ou d'une version ultérieure, téléchargez et installez Terraform avant de créer un service de gestion.

Mettre à niveau Terraform

Pour mettre à niveau Terraform après l'installation de GKE sur AWS, vous devez mettre à jour votre binaire Terraform via chaque version mineure dans l'ordre.

Par exemple, si vous souhaitez mettre à niveau Terraform de la version 0.12.x à la version 0.14.x, vous devez installer temporairement la version 0.13.x. Après avoir installé une version 0.13.x, exécutez anthos-gke aws management init et anthos-gke aws management apply. GKE sur AWS met à jour votre configuration. Vous pouvez ensuite passer à la version 0.14.x.

Kubernetes

GKE sur AWS nécessite kubectl 1.17 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.17 ou une version ultérieure, installez une version plus récente de kubectl.

Étape suivante