Ce document explique comment afficher l'emplacement physique, également appelé topologie, de vos instances Compute Engine dans une zone. Pour afficher la topologie d'un cluster dans Cluster Director, consultez Afficher la topologie d'un cluster.
Après avoir créé des instances A4X Max, A4X, A4, A3 Ultra, A3 Mega et A3 High (8 GPU), ou des instances de calcul qui spécifient une stratégie d'emplacement compact ou une stratégie de charge de travail, vous pouvez afficher l'emplacement physique de vos instances de calcul les unes par rapport aux autres. Lorsque vous connaissez la proximité de vos instances de calcul, vous pouvez ajuster la conception de votre application ou de votre charge de travail pour exécuter les jobs sensibles à la latence sur les instances de calcul les plus proches les unes des autres. Pour tous les autres types d'instances de calcul, vous pouvez voir l'ID de l'hôte sur lequel elles s'exécutent après avoir exposé l'ID de l'hôte.
Avant de commencer
- Consultez la terminologie pour la topologie des instances de calcul.
-
Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :
Console
Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud , vous n'avez pas besoin de configurer l'authentification.
gcloud
Dans la console Google Cloud , activez Cloud Shell.
En bas de la console Google Cloud , une session Cloud Shell démarre et affiche une invite de ligne de commande. Cloud Shell est un environnement shell dans lequel Google Cloud CLI est déjà installé, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.
REST
Pour utiliser les exemples API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à la gcloud CLI.
Installez la Google Cloud CLI.
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud .
Rôles requis
Pour obtenir les autorisations nécessaires pour afficher la topologie des instances de calcul, demandez à votre administrateur de vous attribuer le rôle IAM Administrateur d'instances Compute (v1) (roles/compute.instanceAdmin.v1) sur votre projet.
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Ce rôle prédéfini contient les autorisations requises pour afficher la topologie des instances de calcul. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour afficher la topologie des instances de calcul :
-
Pour afficher les détails d'une instance de calcul :
compute.instances.getsur le projet -
Pour afficher la liste des instances de calcul :
compute.instances.listsur le projet
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Comprendre la topologie des instances de calcul
Pour connaître l'emplacement physique d'une instance de calcul dans un cluster, consultez le champ Hôte physique dans la console Google Cloud . Si vous utilisez gcloud CLI, l'API Compute Engine ou une requête de clé de métadonnées, vérifiez le champ physicalHostTopology. Ces champs contiennent les sous-champs suivants :
cluster: nom global du cluster.block: ID spécifique à l'organisation du bloc réservé dans lequel se trouve l'instance.sub-block: ID spécifique à l'organisation du sous-bloc dans lequel se trouve l'instance.host: ID spécifique à l'organisation de l'hôte sur lequel l'instance s'exécute.
Pour comprendre la proximité des instances, comparez les valeurs des champs Hôte physique ou physicalHostTopology entre les instances de calcul. Plus les instances de calcul partagent de sous-champs, plus elles sont proches les unes des autres.
Vous pouvez également afficher la topologie d'une réservation dans laquelle les instances de calcul sont créées. Les champs physicalHostTopology d'une réservation et d'une instance affichent les mêmes champs block et cluster. Par exemple, lorsque vous affichez un bloc réservé spécifique, vous pouvez voir le nom et le sous-bloc de toutes les instances de calcul déployées dans le bloc. Pour en savoir plus sur la topologie d'une réservation, consultez Afficher la topologie d'une réservation.
Afficher la topologie d'une instance de calcul
Pour afficher l'emplacement physique de plusieurs instances de calcul en cours d'exécution à la fois, utilisez l'API REST. Sinon, sélectionnez l'une des options suivantes :
Console
Dans la console Google Cloud , accédez à la page Instances de VM.
Dans la colonne Nom, cliquez sur le nom de l'instance de calcul dont vous souhaitez afficher les détails. Une page indiquant les détails de l'instance de calcul s'affiche, et l'onglet Détails est sélectionné.
Dans la section Informations de base, vérifiez la valeur du champ Hôte physique.
gcloud
Pour afficher l'emplacement physique d'une instance de calcul en cours d'exécution, utilisez la commande gcloud compute instances describe avec l'option --flatten=resourceStatus.physicalHostTopology :
gcloud compute instances describe INSTANCE_NAME \
--flatten=resourceStatus.physicalHostTopology \
--zone=ZONE
Remplacez les éléments suivants :
INSTANCE_NAME: nom de l'instance de calcul.ZONE: zone où se trouve l'instance de calcul.
Le résultat ressemble à ce qui suit :
Si vous pouvez afficher l'ID du cluster, du bloc, du sous-bloc et de l'hôte d'une instance de calcul, le résultat ressemble à ce qui suit :
--- cluster: europe-west1-cluster-jfhb block: 3e3056e23cf91a5cb4a8621b6a52c100 subBlock: 0fc09525cbd5abd734342893ca1c083f host: 1215168a4ecdfb434fd4d28056589059Si vous ne pouvez afficher l'ID de l'hôte qu'après l'avoir exposé, le résultat ressemble à ce qui suit :
--- cluster: null block: null subBlock: null host: 1215168a4ecdfb434fd4d28056589059
REST
Pour afficher l'emplacement physique de vos instances de calcul en cours d'exécution, envoyez l'une des requêtes GET suivantes. Lorsque vous envoyez une requête, vous devez inclure le paramètre de requête fields et spécifier d'afficher uniquement les champs name, machineType et physicalHostTopology d'une instance de calcul. Vous devez également inclure le paramètre de requête filter et spécifier de ne lister que les instances de calcul en cours d'exécution.
Pour afficher la liste de vos instances dans toutes les zones : méthode
instances.aggregatedListGET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/instances?fields=items.name,items.machineType,items.resourceStatus.physicalHostTopology&filter=status=RUNNINGPour afficher la liste de vos instances dans une zone spécifique : méthode
instances.listGET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances?fields=items.name,items.machineType,items.resourceStatus.physicalHostTopology&filter=status=RUNNING
Remplacez les éléments suivants :
PROJECT_ID: ID du projet dans lequel se trouvent les instances de calcul.ZONE: zone où se trouvent les instances de calcul.
Le résultat ressemble à ce qui suit :
Si vous pouvez afficher l'ID du cluster, du bloc, du sous-bloc et de l'hôte de vos instances de calcul, le résultat ressemble à ce qui suit :
{ "items": [ { "name": "vm-01", "machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west1-b/machineTypes/a3-ultragpu-8g", "resourceStatus": { "physicalHostTopology": { "cluster": "europe-west1-cluster-jfhb", "block": "3e3056e23cf91a5cb4a8621b6a52c100", "subBlock": "0fc09525cbd5abd734342893ca1c083f", "host": "1215168a4ecdfb434fd4d28056589059" } } }, { "name": "vm-02", "machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west1-b/machineTypes/a3-ultragpu-8g", "resourceStatus": { "physicalHostTopology": { "cluster": "europe-west1-cluster-jfhb", "block": "3e3056e23cf91a5cb4a8621b6a52c100", "subBlock": "1fc18636cbd4abd623553784ca2c174e", "host": "2326279b5ecdfc545fd5e39167698168" } } }, ... ] }Si vous ne pouvez afficher l'ID de vos instances de calcul de l'hôte qu'après l'avoir exposé, le résultat est semblable à ce qui suit :
{ "items": [ { "name": "vm-01", "machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west1-b/machineTypes/a3-ultragpu-8g", "resourceStatus": { "physicalHostTopology": { "cluster": null, "block": null, "subBlock": null, "host": "1215168a4ecdfb434fd4d28056589059" } } }, { "name": "vm-02", "machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west1-b/machineTypes/a3-ultragpu-8g", "resourceStatus": { "physicalHostTopology": { "cluster": null, "block": null, "subBlock": null, "host": "2326279b5ecdfc545fd5e39167698168" } } }, ... ] }
Si vous souhaitez affiner votre liste d'instances de calcul, modifiez l'expression de filtre dans le paramètre de requête filter.
Afficher la topologie d'une instance de calcul avec une requête de clé de métadonnées
Pour afficher l'emplacement physique d'une instance de calcul en cours d'exécution avec une requête à la clé de métadonnées physical_host_topology, sélectionnez l'une des options suivantes :
Instances Linux
Connectez-vous à votre instance de calcul Linux.
À partir de votre instance Linux, créez une requête à l'aide de l'outil
curl. Pour interroger la clé de métadonnéesphysical_host_topologysur des instances Linux, exécutez la commande suivante :user@myinst:~$ curl -s -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/attributes/physical_host_topologyLe résultat ressemble à ce qui suit :
Si vous pouvez afficher l'ID du cluster, du bloc, du sous-bloc et de l'hôte d'une instance de calcul, le résultat ressemble à ce qui suit :
{ "cluster": "europe-west1-cluster-jfhb", "block": "3e3056e23cf91a5cb4a8621b6a52c100", "subBlock": "0fc09525cbd5abd734342893ca1c083f", "host": "1215168a4ecdfb434fd4d28056589059" }Si vous ne pouvez afficher l'ID de l'hôte qu'après l'avoir exposé, le résultat est semblable à ce qui suit :
{ "cluster": null, "block": null, "subBlock": null, "host": "1215168a4ecdfb434fd4d28056589059" }
Instances Windows
Connectez-vous à votre instance de calcul Windows.
À partir de votre instance Windows, créez une requête avec la commande
Invoke-RestMethod. Pour interroger la clé de métadonnéesphysical_host_topologysur des instances Windows, exécutez la commande suivante :PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/attributes/physical_host_topology") $valueLe résultat ressemble à ce qui suit :
Si vous pouvez afficher l'ID du cluster, du bloc, du sous-bloc et de l'hôte d'une instance de calcul, le résultat ressemble à ce qui suit :
{ "cluster": "europe-west1-cluster-jfhb", "block": "3e3056e23cf91a5cb4a8621b6a52c100", "subBlock": "0fc09525cbd5abd734342893ca1c083f", "host": "1215168a4ecdfb434fd4d28056589059" }Si vous ne pouvez afficher l'ID de l'hôte qu'après l'avoir exposé, le résultat est semblable à ce qui suit :
{ "cluster": null, "block": null, "subBlock": null, "host": "1215168a4ecdfb434fd4d28056589059" }
Étapes suivantes
Découvrez comment gérer les événements hôtes :