Ce document explique comment configurer des VM sur Compute Engine avec Terraform pour pouvoir installer et essayer des clusters Anthos sur Bare Metal en haute disponibilité. Pour en savoir plus sur l'utilisation de Google Cloud CLI, consultez la page Essayer les clusters Anthos sur Bare Metal sur des VM Compute Engine.
Vous pouvez essayer Anthos clusters on bare metal rapidement, sans avoir à effectuer de préparation matérielle. Les scripts Terraform fournis créent un réseau de VM sur Compute Engine qui peut être utilisé pour exécuter des clusters Anthos sur Bare Metal. Dans ce tutoriel, nous utilisons le modèle de déploiement de cluster hybride.
Pour cela, procédez comme suit :
- Exécuter le script Terraform pour configurer un réseau de VM sur Compute Engine.
- Déployer un cluster hybride
- Vérifiez le cluster.
Avant de commencer
Le déploiement nécessite les ressources suivantes :
- Un poste de travail avec un accès à Internet et sur lequel les outils suivants sont installés : Git, Google Cloud CLI et Terraform (< v1.2).
Un projet Google Cloud.
Un compte de service dans le projet qui répond à l'une des exigences suivantes et son fichier de clé téléchargé sur la station de travail :
- Le compte de service dispose des autorisations Propriétaire
- Le compte de service dispose à la fois des autorisations Administrateur IAM et Éditeur
Configurer le réseau de VM sur Compute Engine
Dans cette section, vous allez utiliser les scripts Terraform du dépôt anthos-samples. Les scripts permettent de configurer Compute Engine avec les ressources suivantes :
- Six VM pour déployer le cluster hybride :
- Une VM d'administration utilisée pour déployer le cluster hybride sur les autres machines.
- Trois VM pour les trois nœuds du plan de contrôle nécessaires à l'exécution du plan de contrôle du cluster hybride.
- Deux VM pour les deux nœuds de calcul nécessaires à l'exécution de charges de travail sur le cluster hybride.
- Un réseau superposé
VxLAN
entre tous les nœuds pour émuler la connectivité L2. - Un accès SSH aux nœuds du plan de contrôle et aux nœuds de calcul à partir de la VM d'administration.
Vous pouvez modifier le nombre de nœuds du cluster en ajoutant des noms à la variable Terraform instance_count
:
Téléchargez les scripts Terraform pour l'exemple
anthos-bm-gcp-terraform
:git clone https://github.com/GoogleCloudPlatform/anthos-samples cd anthos-samples/anthos-bm-gcp-terraform
Mettez à jour le fichier
terraform.tfvars.sample
pour inclure des variables spécifiques à votre environnement :project_id = "PROJECT_ID" region = "GOOGLE_CLOUD_REGION" zone = "GOOGLE_CLOUD_ZONE" credentials_file = "PATH_TO_GOOGLE_CLOUD_SERVICE_ACCOUNT_KEY_FILE"
Renommez le fichier
terraform.tfvars.sample
avec le nom par défaut utilisé par Terraform pour le fichier de variables :mv terraform.tfvars.sample terraform.tfvars
Initialisez l'exemple de répertoire en tant que répertoire de travail Terraform. Cela configure les configurations requises pour la gestion de l'état Terraform, semblables à
git init
:terraform init
Créez un plan d'exécution Terraform. Cette étape compare l'état des ressources, vérifie les scripts et crée un plan d'exécution :
terraform plan
Appliquez les modifications décrites dans le script Terraform. Cette étape exécute le plan sur le fournisseur donné (dans ce cas, Google Cloud) pour atteindre l'état souhaité des ressources :
terraform apply # when prompted to confirm the Terraform plan, type 'Yes' and enter
Déployer le cluster hybride
Une fois l'exécution de Terraform terminée, vous êtes prêt à déployer le cluster hybride.
Utilisez SSH pour vous connecter à l'hôte administrateur :
gcloud compute ssh tfadmin@cluster1-abm-ws0-001 --project=PROJECT_ID --zone=GOOGLE_CLOUD_ZONE
Exécutez le bloc de code suivant pour créer le cluster hybride
cluster1
sur les VM Compute Engine configurées :sudo ./run_initialization_checks.sh && \ sudo bmctl create config -c cluster1 && \ sudo cp ~/cluster1.yaml bmctl-workspace/cluster1 && \ sudo bmctl create cluster -c cluster1
L'exécution de la commande bmctl
commence à configurer un nouveau cluster hybride. Cela inclut la vérification préliminaire des nœuds, la création des clusters d'administrateur et d'utilisateur, ainsi que l'enregistrement du cluster avec Google Cloud à l'aide de Connect.
L'installation peut prendre jusqu'à 15 minutes. Le résultat suivant s'affiche lors de la création du cluster :
Created config: bmctl-workspace/cluster1/cluster1.yaml
Creating bootstrap cluster... OK
Installing dependency components... OK
Waiting for preflight check job to finish... OK
- Validation Category: machines and network
- [PASSED] 10.200.0.3
- [PASSED] 10.200.0.4
- [PASSED] 10.200.0.5
- [PASSED] 10.200.0.6
- [PASSED] 10.200.0.7
- [PASSED] gcp
- [PASSED] node-network
Flushing logs... OK
Applying resources for new cluster
Waiting for cluster to become ready OK
Writing kubeconfig file
kubeconfig of created cluster is at bmctl-workspace/cluster1/cluster1-kubeconfig, please run
kubectl --kubeconfig bmctl-workspace/cluster1/cluster1-kubeconfig get nodes
to get cluster node status.
Please restrict access to this file as it contains authentication credentials of your cluster.
Waiting for node pools to become ready OK
Moving admin cluster resources to the created admin cluster
Flushing logs... OK
Deleting bootstrap cluster... OK
Vérifier et interagir avec le cluster
Vous trouverez le fichier kubeconfig
de votre cluster sur la machine d'administration, dans le répertoire bmctl-workspace
. Pour vérifier votre déploiement, procédez comme suit.
Si vous vous êtes déconnecté de l'hôte administrateur, utilisez SSH pour vous connecter à l'hôte.
# You can copy the command from the output of the Terraform execution above gcloud compute ssh tfadmin@cluster1-abm-ws0-001 --project=PROJECT_ID --zone=GOOGLE_CLOUD_ZONE
Définissez la variable d'environnement
KUBECONFIG
avec le chemin d'accès au fichier de configuration du cluster pour exécuter les commandeskubectl
sur le cluster :export CLUSTER_ID=cluster1 export KUBECONFIG=$HOME/bmctl-workspace/$CLUSTER_ID/$CLUSTER_ID-kubeconfig kubectl get nodes
Le nombre de nœuds du cluster doit s'afficher, avec un résultat semblable à celui-ci:
NAME STATUS ROLES AGE VERSION cluster1-abm-cp1-001 Ready master 17m v1.18.6-gke.6600 cluster1-abm-cp2-001 Ready master 16m v1.18.6-gke.6600 cluster1-abm-cp3-001 Ready master 16m v1.18.6-gke.6600 cluster1-abm-w1-001 Ready <none> 14m v1.18.6-gke.6600 cluster1-abm-w2-001 Ready <none> 14m v1.18.6-gke.6600
Se connecter à votre cluster depuis la console Google Cloud
Pour observer vos charges de travail dans la console Google Cloud, vous devez vous connecter au cluster.
Pour obtenir des instructions et des informations sur la connexion à votre cluster, consultez la section Se connecter à un cluster depuis la console Google Cloud.
Effectuer un nettoyage
Vous pouvez nettoyer la configuration du cluster de deux manières.
Console
Terraform
- Annulez l'enregistrement du cluster avant de supprimer toutes les ressources créées par Terraform.
# Use SSH to connect to the admin host
gcloud compute ssh tfadmin@cluster1-abm-ws0-001 --project=PROJECT_ID --zone=GOOGLE_CLOUD_ZONE
# Reset the cluster
export CLUSTER_ID=cluster1
export KUBECONFIG=$HOME/bmctl-workspace/$CLUSTER_ID/$CLUSTER_ID-kubeconfig
sudo bmctl reset --cluster $CLUSTER_ID
# log out of the admin host
exit
- Utilisez Terraform pour supprimer toutes les ressources.
terraform destroy --auto-approve