Afficher la topologie d'une instance de calcul

Ce document explique comment afficher l'emplacement physique de vos instances Compute Engine A4X Max, A4X, A4, A3 Ultra, A3 Mega et A3 High (8 GPU) qui s'exécutent sur des blocs de capacité réservés.

Après avoir créé des instances A4X Max, A4X, A4, A3 Ultra, A3 Mega et A3 High (8 GPU), vous pouvez afficher leurs arrangements pour vérifier quelles instances sont les plus proches les unes des autres. En comprenant la proximité des instances, vous pouvez effectuer les opérations suivantes :

  • Ajustez la conception de votre application ou de votre charge de travail pour réduire davantage la latence du réseau.

  • Résolvez les problèmes de latence ou de performances réseau des instances qui communiquent fréquemment, si elles sont situées de manière inattendue loin les unes des autres.

Avant de commencer

  • Consultez la terminologie utilisée dans les fonctionnalités de Cluster Director.
  • Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

    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. Une fois que la Google Cloud CLI est installée, initialisez-la en exécutant la commande suivante :

      gcloud init

      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 accorder 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 : compute.instances.get sur le projet
  • Pour afficher la liste des instances : compute.instances.list sur 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

Lorsque vous affichez les détails d'une instance de calcul en cours d'exécution, vous pouvez comprendre son emplacement physique dans un cluster en vérifiant le champ Hôte physique (pour la console Google Cloud ) ou le champ physicalHostTopology (pour gcloud CLI, l'API Compute Engine ou en interrogeant la clé de métadonnées). 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. Plus les instances partagent de sous-champs, plus elles sont proches physiquement.

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 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

  1. Dans la console Google Cloud , accédez à la page Instances de VM.

    Accéder à la page Instances de VM

  2. Dans la colonne Nom, cliquez sur le nom de l'instance dont vous souhaitez afficher les détails. Une page indiquant les détails de l'instance s'affiche, et l'onglet Détails est sélectionné.

  3. 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

  • ZONE : zone où se trouve l'instance.

Le résultat ressemble à ce qui suit :

---
cluster: europe-west1-cluster-jfhb
block: 3e3056e23cf91a5cb4a8621b6a52c100
subBlock: 0fc09525cbd5abd734342893ca1c083f
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. Vous devez également inclure le paramètre de requête filter et spécifier de ne lister que les instances en cours d'exécution.

  • Pour afficher la liste de vos instances dans toutes les zones : méthode instances.aggregatedList

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/instances?fields=items.name,items.machineType,items.resourceStatus.physicalHostTopology&filter=status=RUNNING
    
  • Pour afficher la liste de vos instances dans une zone spécifique : Méthode instances.list

    GET 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 les instances existent.

  • ZONE : zone où se trouvent les instances.

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 souhaitez affiner la liste des instances, modifiez l'expression de filtre dans le paramètre de requête filter.

Afficher la topologie d'une instance de calcul en interrogeant une clé de métadonnées

Pour afficher l'emplacement physique d'une instance de calcul en cours d'exécution en interrogeant la clé de métadonnées physical_host_topology, sélectionnez l'une des options suivantes :

Instances Linux

  1. Connectez-vous à votre instance de calcul Linux.

  2. À partir de votre instance Linux, créez une requête à l'aide de l'outil curl. Pour interroger la clé de métadonnées physical_host_topology sur 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_topology
    

    Le résultat ressemble à ce qui suit :

    {
      "cluster": "europe-west1-cluster-jfhb",
      "block": "3e3056e23cf91a5cb4a8621b6a52c100",
      "subBlock": "1fc18636cbd4abd623553784ca2c174e",
      "host": "2326279b5ecdfc545fd5e39167698168"
    }
    

Instances Windows

  1. Connectez-vous à votre instance de calcul Windows.

  2. À partir de votre instance Windows, créez une requête à l'aide de la commande Invoke-RestMethod. Pour interroger la clé de métadonnées physical_host_topology sur 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")
    $value
    

    Le résultat ressemble à ce qui suit :

    {
      "cluster": "europe-west1-cluster-jfhb",
      "block": "3e3056e23cf91a5cb4a8621b6a52c100",
      "subBlock": "1fc18636cbd4abd623553784ca2c174e",
      "host": "2326279b5ecdfc545fd5e39167698168"
    }
    

Étapes suivantes