Présentation
Terraform est un outil Open Source permettant de configurer des environnements cloud tels que AWS et d'y installer des logiciels tels que Kubernetes. Vous pouvez configurer votre environnement AWS et y créer des clusters soit avec Terraform, soit avec les instructions d'installation de GKE sur AWS.
Cette page explique comment utiliser Terraform pour configurer votre environnement AWS et installer un cluster à l'aide d'un exemple de configuration stocké sur GitHub. Pour utiliser ces scripts, vous devez maîtriser les principes de base de Terraform. En particulier, vous devez modifier les fichiers de configuration Terraform pour ajouter vos propres informations d'utilisateur et de projet et pour apporter les modifications souhaitées à la configuration de cluster par défaut.
Pour configurer votre environnement AWS et créer des clusters sans utiliser Terraform, consultez la page Présentation des prérequis AWS et les instructions pour créer un cluster.
Fonction des scripts
Ce script configure Terraform pour créer un VPC AWS et y déployer un cluster. Le VPC obtenu répond à toutes les conditions préalables de GKE sur AWS et dispose de la même topologie de réseau que le VPC créé par les instructions de création de VPC manuelles de Google.
Le cluster créé par l'ensemble de scripts présente les caractéristiques suivantes :
- Trois nœuds de plan de contrôle (un dans chacune des trois zones de disponibilité configurées) Ces nœuds sont de type t3.large.
- Un pool de nœuds avec deux nœuds de type t3.large.
Ce pool de nœuds est déployé dans la région
us-east-1
d'AWS et peut procéder à un autoscaling jusqu'à cinq nœuds.
Modifier le VPC et le cluster par défaut
Vous pouvez modifier les caractéristiques du VPC et du cluster créés par les scripts Terraform en modifiant les fichiers Terraform appropriés.
- Ajustez la région et les zones de disponibilité en modifiant le fichier
variables.tf
. - Modifiez le type d'instance AWS.
- Modifiez les caractéristiques du VPC, y compris les sous-réseaux, les zones de disponibilité et l'équilibreur de charge, en modifiant les fichiers du sous-dossier
modules/vpc
.
Pour obtenir la liste des régions AWS contrôlées depuis une région Google Cloud particulière et les versions Kubernetes associées, exécutez la commande suivante :
gcloud container aws get-server-config --location `GOOGLE_CLOUD_REGION`
Remplacez GOOGLE_CLOUD_REGION
par le nom de la
région Google Cloud souhaitée
à partir de GKE sur AWS pour contrôler votre cluster.
Prérequis
Installez Google Cloud CLI avec les instructions d'installation de Google Cloud CLI. Si vous l'avez déjà installé, suivez ces instructions pour vous assurer que vous utilisez la version 412.0.0 ou une version ultérieure.
Installez la CLI AWS à l'aide des instructions d'installation de la CLI AWS.
Créez vos clés d'accès AWS.
Configurez votre environnement AWS local à l'aide de la commande suivante :
aws configure
Préparer Terraform
Configurez l'authentification via Google Cloud CLI en exécutant les commandes suivantes :
gcloud config set project GOOGLE_PROJECT_ID gcloud auth application-default login --no-launch-browser
Activez les services requis dans votre projet Google Cloud.
gcloud --project="GOOGLE_PROJECT_ID" services enable \ gkemulticloud.googleapis.com \ gkeconnect.googleapis.com \ connectgateway.googleapis.com \ cloudresourcemanager.googleapis.com \ anthos.googleapis.com \ logging.googleapis.com \ monitoring.googleapis.com \ opsconfigmonitoring.googleapis.com
Remplacez
GOOGLE_PROJECT_ID
par l'ID de votre projet Google Cloud.Créez une copie locale du dépôt et accédez au dossier
AWS
:git clone https://github.com/GoogleCloudPlatform/anthos-samples.git cd anthos-samples/anthos-multi-cloud/AWS
Déployer GKE sur AWS
Modifiez les lignes suivantes dans le fichier
terraform.tfvars
pour remplacer les valeurs par défaut :gcp_project_id = GOOGLE_PROJECT_ID admin_users = ["GCP_ACCOUNT_EMAIL"]
Remplacez les éléments suivants :
GOOGLE_PROJECT_ID
: ID de votre projet Google. Vous le trouverez dans la partie gauche de la page du tableau de bord de la console Google Cloud.ACCOUNT_EMAILS
: liste des adresses e-mail, séparées par une virgule, qui pouvent se connecter aux clusters après sa création, par exemple"admin@example.com","operator@example.com"
. Au moins une adresse doit disposer d'un compte Google Cloud. Pour ajouter des fournisseurs d'identité supplémentaires à votre cluster, consultez la page Gérer le service d'identité GKE.
Initialisez et créez le plan Terraform :
terraform init
Terraform installe les bibliothèques nécessaires, telles que le fournisseur Google Cloud.
Appliquez le plan Terraform pour créer le cluster et le cloud privé virtuel AWS :
terraform apply
Suivez les instructions pour commencer à créer un cluster.
L'installation prend environ 12 minutes. Lorsque Terraform a créé votre cloud privé virtuel et votre cluster AWS, il imprime des informations sur le cluster et crée un fichier nommé var.sh
. Vous pouvez utiliser les valeurs de ce fichier si vous créez des pools de nœuds supplémentaires.
Pour vérifier que le cluster a bien été créé, attendez qu'il apparaisse sur la page Kubernetes Engine de la console Google Cloud dans votre projet Google Cloud.
Vous connecter à votre cluster
Pour vérifier la connectivité à votre cluster et récupérer ses détails, exécutez la commande suivante :
gcloud container fleet memberships get-credentials CLUSTER_NAME
kubectl get nodes
Remplacez CLUSTER_NAME
par le nom de votre cluster. Vous trouverez le nom de votre cluster dans le fichier de sortie Terraform var.sh
.
Le résultat inclut une liste des nœuds de votre cluster et leur état.
Supprimer le cluster et le cloud privé virtuel AWS
Avant de supprimer le cluster et le cloud privé virtuel AWS, vous devez supprimer tous les éléments suivants :
- Tous les équilibreurs de charge AWS actifs dans le cloud privé virtuel AWS
- Tous les pools de nœuds supplémentaires de votre cluster non créés avec Terraform
- Tous les clusters supplémentaires dans le cloud privé virtuel AWS non créés avec Terraform
Pour supprimer le cluster et le cloud privé virtuel AWS que vous avez créés avec Terraform, exécutez la commande suivante :
terraform destroy
Terraform draine les charges de travail de vos nœuds, supprime votre pool de nœuds et votre cluster principaux, ainsi que votre cloud privé virtuel AWS.
Autoriser Cloud Logging et Cloud Monitoring
Si vous souhaitez activer Cloud Logging et Cloud Monitoring, vous devez ajouter une règle d'autorisation à votre projet Google Cloud après avoir créé un cluster.
Ajoutez une règle d'autorisation avec Google Cloud CLI :
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:PROJECT_ID.svc.id.goog[gke-system/gke-telemetry-agent]" \
--role=roles/gkemulticloud.telemetryWriter
en remplaçant PROJECT_ID
par l'ID de votre projet :
Étapes suivantes
- Pour en savoir plus sur la journalisation centralisée des événements de cluster de Google, consultez la page Cloud Logging.
- Pour en savoir plus sur les outils Cloud Monitoring de Google, consultez la page Cloud Monitoring.
- Pour installer la gestion centralisée de la configuration, consultez la page Configurer un cluster avec Config Controller.
Pour en savoir plus sur les scripts Terraform GKE sur AWS, consultez
- Documentation de référence sur les clusters AWS Terraform
- Documentation de référence sur le pool de nœuds Terraform AWS