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'outilaws
à votrePATH
. - 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
Créez une clé KMS dans votre compte AWS.
aws kms create-key
Le résultat inclut les métadonnées de la clé.
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égionus-west-2
dispose de l'ARNarn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
.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
Répétez les étapes précédentes pour une autre clé.
Console
- Connectez-vous à la console AWS.
- Accédez à KMS, puis sélectionnez Customer-managed keys (Clés gérées par le client) dans la barre latérale.
- Cliquez sur Create Key (Créer une clé).
- Laissez les options par défaut sélectionnées.
- Une fois la clé créée, sélectionnez-la dans la liste.
- Copiez l'ARN de la clé.
- 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
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.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.
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
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
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
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
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
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
- Ouvrez la page de la bibliothèque d'API de Google Cloud Console.
- Sélectionnez le projet de votre choix dans le menu déroulant en haut de l'écran.
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
Accédez à la page Comptes de service.
Ensuite, créez un compte de service et attribuez des rôles au compte de service
management-sa
.- Cliquez sur Créer un compte de service.
- Nommez le compte management-sa et cliquez sur Créer. L'écran Autoriser ce compte de service à accéder au projet s'affiche.
- Ajoutez les rôles d'administrateur GKE Hub.
- Cliquez sur Continuer. L'écran Autoriser les utilisateurs à accéder à ce compte de service s'affiche.
- Cliquez sur OK. L'écran Comptes de service du projet s'affiche.
- Recherchez la ligne contenant l'adresse e-mail de votre compte de service,
management-sa@project_id.iam.gserviceaccount.com
. - Cliquez sur le menu d'actions more_vert du compte de service, puis sélectionnez Gérer les clés.
- Cliquez sur le menu déroulant Ajouter une clé.
- Cliquez sur Créer une clé.
- Sélectionnez JSON comme type de clé, puis cliquez sur Créer. Votre navigateur télécharge la clé du compte de service.
- Renommez le fichier
management-key.json
.
Ensuite, créez un compte de service et attribuez des rôles au compte de service
hub-sa
.- Cliquez sur Créer un compte de service.
- Nommez le compte hub-sa et cliquez sur Créer. L'écran Autoriser ce compte de service à accéder au projet s'affiche.
- Ajoutez le rôle d'agent de connexion GKE Hub.
- Cliquez sur Continuer. L'écran Autoriser les utilisateurs à accéder à ce compte de service s'affiche.
- Cliquez sur OK. L'écran Comptes de service du projet s'affiche.
- Recherchez la ligne contenant l'adresse e-mail de votre compte de service,
hub-sa@project_id.iam.gserviceaccount.com
. - Cliquez sur le menu d'actions more_vert du compte de service, puis sélectionnez Gérer les clés.
- Cliquez sur le menu déroulant Ajouter une clé.
- Cliquez sur Créer une clé.
- Sélectionnez JSON comme type de clé, puis cliquez sur Créer. Votre navigateur télécharge la clé du compte de service.
- Renommez le fichier
hub-key.json
.
Ensuite, créez un compte de service et attribuez des rôles au compte de service
node-sa
.- Cliquez sur Créer un compte de service.
- Nommez le compte node-sa et cliquez sur Créer. L'écran Autoriser ce compte de service à accéder au projet s'affiche.
- Ajoutez le rôle de lecteur des objets de l'espace de stockage.
- Cliquez sur OK. L'écran Comptes de service du projet s'affiche.
- Recherchez la ligne contenant l'adresse e-mail de votre compte de service,
node-sa@project_id.iam.gserviceaccount.com
. - Cliquez sur le menu d'actions more_vert du compte de service, puis sélectionnez Gérer les clés.
- Cliquez sur le menu déroulant Ajouter une clé.
- Cliquez sur Créer une clé.
- Sélectionnez JSON comme type de clé, puis cliquez sur Créer. Votre navigateur télécharge la clé du compte de service.
- 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.
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 .
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
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 CloudUSER_NAME
: nom de l'utilisateur qui exécute l'outil de ligne de commandeanthos-gke
. Si vous utilisez un compte de service, utilisezserviceAccount: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
- Installez un service de gestion dans un VPC dédié avec un hôte bastion.
- Intégrez l'infrastructure existante dans un VPC existant.