Reduzca la latencia mediante el uso de políticas de ubicación compactas


Este documento describe cómo reducir la latencia de red entre las instancias de su máquina virtual (VM) creando y aplicándoles políticas de ubicación compacta. Para obtener más información sobre las políticas de ubicación, incluidas las series de máquinas compatibles, las restricciones y los precios, consulte Descripción general de las políticas de ubicación .

Una política de ubicación compacta especifica que las máquinas virtuales deben ubicarse físicamente más cerca unas de otras. Esto puede ayudar a mejorar el rendimiento y reducir la latencia de la red entre sus máquinas virtuales cuando, por ejemplo, ejecuta cargas de trabajo de computación de alto rendimiento (HPC), aprendizaje automático (ML) o servidor de bases de datos.

Antes de comenzar

  • Si aún no lo has hecho, configura la autenticación. La autenticación es el proceso mediante el cual se verifica su identidad para acceder a Google Cloud servicios y API. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    Select the tab for how you plan to use the samples on this page:

    gcloud

    1. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.
    3. REST

      Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      Para obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud .

Roles requeridos

Para obtener los permisos que necesita para crear y aplicar una política de ubicación compacta a las máquinas virtuales, solicite a su administrador que le otorgue las siguientes funciones de IAM en su proyecto:

Para obtener más información sobre cómo otorgar roles, consulte Administrar el acceso a proyectos, carpetas y organizaciones .

Estos roles predefinidos contienen los permisos necesarios para crear y aplicar una política de ubicación compacta a las máquinas virtuales. Para ver los permisos exactos que se requieren, expanda la sección Permisos requeridos :

Permisos requeridos

Se requieren los siguientes permisos para crear y aplicar una política de ubicación compacta a las máquinas virtuales:

  • Para crear políticas de ubicación: compute.resourcePolicies.create en el proyecto
  • Para aplicar una política de ubicación a máquinas virtuales existentes: compute.instances.addResourcePolicies en el proyecto
  • Para crear máquinas virtuales:
    • compute.instances.create en el proyecto.
    • Para usar una imagen personalizada para crear la VM: compute.images.useReadOnly en la imagen
    • Para usar una instantánea para crear la VM: compute.snapshots.useReadOnly en la instantánea
    • Para usar una plantilla de instancia para crear la VM: compute.instanceTemplates.useReadOnly en la plantilla de instancia
    • Para asignar una red heredada a la VM: compute.networks.use en el proyecto
    • Para especificar una dirección IP estática para la VM: compute.addresses.use en el proyecto
    • Para asignar una dirección IP externa a la VM cuando se usa una red heredada: compute.networks.useExternalIp en el proyecto
    • Para especificar una subred para la VM: compute.subnetworks.use en el proyecto o en la subred elegida
    • Para asignar una dirección IP externa a la VM cuando se usa una red VPC: compute.subnetworks.useExternalIp en el proyecto o en la subred elegida
    • Para configurar metadatos de instancia de VM para la VM: compute.instances.setMetadata en el proyecto
    • Para configurar etiquetas para la VM: compute.instances.setTags en la VM
    • Para configurar etiquetas para la VM: compute.instances.setLabels en la VM
    • Para configurar una cuenta de servicio para que la use la VM: compute.instances.setServiceAccount en la VM
    • Para crear un nuevo disco para la VM: compute.disks.create en el proyecto
    • Para conectar un disco existente en modo de solo lectura o lectura-escritura: compute.disks.use en el disco
    • Para conectar un disco existente en modo de solo lectura: compute.disks.useReadOnly en el disco
  • Para crear una reserva: compute.reservations.create en el proyecto.
  • Para crear una plantilla de instancia: compute.instanceTemplates.create en el proyecto
  • Para crear un grupo de instancias administrado (MIG): compute.instanceGroupManagers.create en el proyecto
  • Para ver los detalles de una VM: compute.instances.get en el proyecto

Es posible que también pueda obtener estos permisos con roles personalizados u otros roles predefinidos .

Crear una política de ubicación compacta

Antes de crear una política de ubicación compacta, considere lo siguiente:

  • Si desea aplicar una política de ubicación compacta a una máquina virtual que no sea N2 o N2D, le recomendamos que especifique un valor de distancia máxima .

  • Solo puede aplicar políticas de ubicación compacta a máquinas virtuales A4 o A3 Ultra que se implementen utilizando las funciones proporcionadas por Cluster Director. Para obtener más información, consulte Director de clúster en la documentación de AI Hypercomputer.

  • De forma predeterminada, no puede aplicar políticas de ubicación compacta con un valor de distancia máxima a máquinas virtuales A3 Mega, A3 High o A3 Edge. Para solicitar acceso a esta función, comuníquese con su Gerente Técnico de Cuenta (TAM) asignado o con el equipo de Ventas .

Para crear una política de ubicación compacta, seleccione una de las siguientes opciones:

nube de gcloud

  • Para aplicar la política de ubicación compacta a máquinas virtuales N2 o N2D, cree la política mediante el comando gcloud compute resource-policies create group-placement con la marca --collocation=collocated .

    gcloud compute resource-policies create group-placement POLICY_NAME \
        --collocation=collocated \
        --region=REGION
    

    Reemplace lo siguiente:

    • POLICY_NAME : el nombre de la política de ubicación compacta.

    • REGION : la región en la que crear la política de ubicación.

  • Para aplicar la política de ubicación compacta a cualquier otra máquina virtual compatible, cree la política mediante el comando gcloud beta compute resource-policies create group-placement con las marcas --collocation=collocated y --max-distance .

    gcloud beta compute resource-policies create group-placement POLICY_NAME \
        --collocation=collocated \
        --max-distance=MAX_DISTANCE \
        --region=REGION
    

    Reemplace lo siguiente:

    • POLICY_NAME : el nombre de la política de ubicación compacta.

    • MAX_DISTANCE : la configuración de distancia máxima para sus máquinas virtuales. El valor debe estar entre 1 , que especifica colocar las máquinas virtuales en el mismo bastidor para obtener la latencia de red más baja posible, y 3 , que especifica colocar las máquinas virtuales en clústeres adyacentes. Si desea aplicar la política de ubicación compacta a una reserva o a una máquina virtual A4 o A3 Ultra, no puede especificar un valor de 1 .

    • REGION : la región en la que crear la política de ubicación.

DESCANSAR

  • Para aplicar la política de ubicación compacta a máquinas virtuales N2 o N2D, cree la política realizando una solicitud POST al método resourcePolicies.insert . En el cuerpo de la solicitud, incluya el campo collocation y configúrelo en COLLOCATED .

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies
    
    {
      "name": "POLICY_NAME",
      "groupPlacementPolicy": {
        "collocation": "COLLOCATED"
      }
    }
    

    Reemplace lo siguiente:

    • PROJECT_ID : el ID del proyecto donde desea crear la política de ubicación.

    • REGION : la región en la que crear la política de ubicación.

    • POLICY_NAME : el nombre de la política de ubicación compacta.

  • Para aplicar la política de ubicación compacta a cualquier otra máquina virtual compatible, cree la política realizando una solicitud POST al método beta.resourcePolicies.insert . En el cuerpo de la solicitud, incluya lo siguiente:

    • El campo collocation establecido en COLLOCATED .

    • El campo maxDistance .

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/resourcePolicies
    
    {
      "name": "POLICY_NAME",
      "groupPlacementPolicy": {
        "collocation": "COLLOCATED",
        "maxDistance": MAX_DISTANCE
      }
    }
    

    Reemplace lo siguiente:

    • PROJECT_ID : el ID del proyecto donde desea crear la política de ubicación.

    • REGION : la región en la que crear la política de ubicación.

    • POLICY_NAME : el nombre de la política de ubicación compacta.

    • MAX_DISTANCE : la configuración de distancia máxima para sus máquinas virtuales. El valor debe estar entre 1 , que especifica colocar las máquinas virtuales en el mismo bastidor para obtener la latencia de red más baja posible, y 3 , que especifica colocar las máquinas virtuales en clústeres adyacentes. Si desea aplicar la política de ubicación compacta a una reserva o a una máquina virtual A4 o A3 Ultra, no puede especificar un valor de 1 .

Aplicar una política de ubicación compacta

Puede aplicar una política de ubicación compacta a una VM o MIG existente, o al crear VM, plantillas de instancias, MIG o reservas de VM.

Para aplicar una política de ubicación compacta a un recurso de Compute Engine, seleccione uno de los siguientes métodos:

Después de aplicar una política de ubicación compacta a una máquina virtual, puede verificar la ubicación física de la máquina virtual en relación con otras máquinas virtuales que especifican la misma política de ubicación.

Aplicar la política a una VM existente

Antes de aplicar una política de ubicación compacta a una máquina virtual existente, asegúrese de lo siguiente:

De lo contrario, se producirá un error al aplicar la política de ubicación compacta a la máquina virtual. Si la máquina virtual ya especifica una política de ubicación y desea reemplazarla, consulte Reemplazar una política de ubicación en una máquina virtual .

Para aplicar una política de ubicación compacta a una máquina virtual existente, seleccione una de las siguientes opciones:

nube de gcloud

  1. Detenga la máquina virtual .

  2. Para aplicar una política de ubicación compacta a una VM existente, usa el comando gcloud compute instances add-resource-policies .

    gcloud compute instances add-resource-policies VM_NAME \
        --resource-policies=POLICY_NAME \
        --zone=ZONE
    

    Reemplace lo siguiente:

    • VM_NAME : el nombre de una VM existente.

    • POLICY_NAME : el nombre de una política de ubicación compacta existente.

    • ZONE : la zona donde se encuentra la VM.

  3. Reinicie la máquina virtual .

DESCANSAR

  1. Detenga la máquina virtual .

  2. Para aplicar una política de ubicación compacta a una máquina virtual existente, realice una solicitud POST al método instances.addResourcePolicies .

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/addResourcePolicies
    
    {
      "resourcePolicies": [
        "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
      ]
    }
    

    Reemplace lo siguiente:

    • PROJECT_ID : el ID del proyecto donde se encuentran la política de ubicación compacta y la VM.

    • ZONE : la zona donde se encuentra la VM.

    • VM_NAME : el nombre de una VM existente.

    • REGION : la región donde se encuentra la política de colocación compacta.

    • POLICY_NAME : el nombre de una política de ubicación compacta existente.

  3. Reinicie la máquina virtual .

Aplicar la política al crear una VM

Solo puede crear una máquina virtual que especifique una política de ubicación compacta en la misma región que la política de ubicación.

Para crear una máquina virtual que especifique una política de ubicación compacta, seleccione una de las siguientes opciones:

nube de gcloud

Para crear una máquina virtual que especifique una política de ubicación compacta, use el gcloud compute instances create con las marcas --maintenance-policy y --resource-policies .

gcloud compute instances create VM_NAME \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=MAINTENANCE_POLICY \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

Reemplace lo siguiente:

  • VM_NAME : el nombre de la VM a crear.

  • MACHINE_TYPE : un tipo de máquina compatible con políticas de ubicación compacta.

  • MAINTENANCE_POLICY : la política de mantenimiento del host de la VM. Si la política de ubicación compacta que especifica utiliza un valor de distancia máxima de 1 o 2 , o el tipo de máquina elegido no admite la migración en vivo, entonces solo puede especificar TERMINATE . De lo contrario, puede especificar MIGRATE o TERMINATE .

  • POLICY_NAME : el nombre de una política de ubicación compacta existente.

  • ZONE : la zona en la que crear la VM.

DESCANSAR

Para crear una máquina virtual que especifique una política de ubicación compacta, realice una solicitud POST al método instances.insert . En el cuerpo de la solicitud, incluya los campos onHostMaintenance y resourcePolicies .

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
  "name": "VM_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [
    {
      "boot": true,
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      }
    }
  ],
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ],
  "resourcePolicies": [
    "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  ],
  "scheduling": {
    "onHostMaintenance": "MAINTENANCE_POLICY"
  }
}

Reemplace lo siguiente:

  • PROJECT_ID : el ID del proyecto donde se encuentra la política de ubicación compacta.

  • ZONE : la zona donde crear la VM y donde se encuentra el tipo de máquina. Solo puede especificar una zona dentro de la región de la política de ubicación compacta.

  • VM_NAME : el nombre de la VM a crear.

  • MACHINE_TYPE : un tipo de máquina compatible con políticas de ubicación compacta.

  • IMAGE_PROJECT : el proyecto de imagen que contiene la imagen, por ejemplo, debian-cloud . Para obtener más información sobre los proyectos de imágenes admitidos, consulte Imágenes públicas .

  • IMAGE : especifique uno de los siguientes:

    • Una versión específica de la imagen del sistema operativo, por ejemplo, debian-12-bookworm-v20240617 .

    • Una familia de imágenes , que debe tener el formato family/ IMAGE_FAMILY . Esto especifica la imagen del sistema operativo más reciente y no obsoleta. Por ejemplo, si especifica family/debian-12 , se utiliza la última versión de la familia de imágenes de Debian 12. Para obtener más información sobre el uso de familias de imágenes, consulte Mejores prácticas de familias de imágenes .

  • REGION : la región donde se encuentra la política de ubicación compacta.

  • POLICY_NAME : el nombre de una política de ubicación compacta existente.

  • MAINTENANCE_POLICY : la política de mantenimiento del host de la VM. Si la política de ubicación compacta que especifica utiliza un valor de distancia máxima de 1 o 2 , o el tipo de máquina elegido no admite la migración en vivo, entonces solo puede especificar TERMINATE . De lo contrario, puede especificar MIGRATE o TERMINATE .

Para obtener más información sobre las opciones de configuración para crear una VM, consulte Crear e iniciar una instancia de VM .

Aplicar la política mientras se crean máquinas virtuales de forma masiva

Solo puede crear máquinas virtuales de forma masiva con una política de ubicación compacta en la misma región que la política de ubicación.

Para crear máquinas virtuales de forma masiva que especifiquen una política de ubicación compacta, seleccione una de las siguientes opciones:

nube de gcloud

Para crear máquinas virtuales de forma masiva que especifiquen una política de ubicación compacta, use el comando gcloud compute instances bulk create con las marcas --maintenance-policy y --resource-policies .

Por ejemplo, para crear máquinas virtuales de forma masiva en una sola zona y especificar un patrón de nombre para las máquinas virtuales, ejecute el siguiente comando:

gcloud compute instances bulk create \
    --count=COUNT \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=MAINTENANCE_POLICY \
    --name-pattern=NAME_PATTERN \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

Reemplace lo siguiente:

  • COUNT : la cantidad de máquinas virtuales que se crearán, que no puede ser mayor que la cantidad máxima admitida de máquinas virtuales de la política de ubicación compacta especificada.

  • MACHINE_TYPE : un tipo de máquina compatible con políticas de ubicación compacta.

  • MAINTENANCE_POLICY : la política de mantenimiento del host de la VM. Si la política de ubicación compacta que especifica utiliza un valor de distancia máxima de 1 o 2 , o el tipo de máquina elegido no admite la migración en vivo, entonces solo puede especificar TERMINATE . De lo contrario, puede especificar MIGRATE o TERMINATE .

  • NAME_PATTERN : el patrón de nombre para las máquinas virtuales. Para reemplazar una secuencia de números en un nombre de VM, use una secuencia de caracteres almohadilla ( # ). Por ejemplo, el uso de vm-# para el patrón de nombre genera máquinas virtuales con nombres que comienzan con vm-1 , vm-2 y continúan hasta la cantidad de máquinas virtuales especificadas por COUNT .

  • POLICY_NAME : el nombre de una política de ubicación compacta existente.

  • ZONE : la zona en la que crear las VM de forma masiva.

DESCANSAR

Para crear máquinas virtuales de forma masiva que especifiquen una política de ubicación compacta, realice una solicitud POST al método instances.bulkInsert . En el cuerpo de la solicitud, incluya los campos onHostMaintenance y resourcePolicies .

Por ejemplo, para crear máquinas virtuales de forma masiva en una sola zona y especificar un patrón de nombre para las máquinas virtuales, realice una solicitud POST de la siguiente manera:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert

{
  "count": "COUNT",
  "namePattern": "NAME_PATTERN",
  "instanceProperties": {
    "machineType": "MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "resourcePolicies": [
      "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
    ],
    "scheduling": {
      "onHostMaintenance": "MAINTENANCE_POLICY"
    }
  }
}

Reemplace lo siguiente:

  • PROJECT_ID : el ID del proyecto donde se encuentra la política de ubicación compacta.

  • ZONE : la zona en la que crear las VM de forma masiva.

  • COUNT : la cantidad de máquinas virtuales que se crearán, que no puede ser mayor que la cantidad máxima admitida de máquinas virtuales de la política de ubicación compacta especificada.

  • NAME_PATTERN : el patrón de nombre para las máquinas virtuales. Para reemplazar una secuencia de números en un nombre de VM, use una secuencia de caracteres almohadilla ( # ). Por ejemplo, el uso de vm-# para el patrón de nombre genera máquinas virtuales con nombres que comienzan con vm-1 , vm-2 y continúan hasta la cantidad de máquinas virtuales especificadas por COUNT .

  • MACHINE_TYPE : un tipo de máquina compatible con políticas de ubicación compacta.

  • IMAGE_PROJECT : el proyecto de imagen que contiene la imagen, por ejemplo, debian-cloud . Para obtener más información sobre los proyectos de imágenes admitidos, consulte Imágenes públicas .

  • IMAGE : especifique uno de los siguientes:

    • Una versión específica de la imagen del sistema operativo, por ejemplo, debian-12-bookworm-v20240617 .

    • Una familia de imágenes , que debe tener el formato family/ IMAGE_FAMILY . Esto especifica la imagen del sistema operativo más reciente y no obsoleta. Por ejemplo, si especifica family/debian-12 , se utiliza la última versión de la familia de imágenes de Debian 12. Para obtener más información sobre el uso de familias de imágenes, consulte Mejores prácticas de familias de imágenes .

  • REGION : la región donde se encuentra la política de ubicación compacta.

  • POLICY_NAME : el nombre de una política de ubicación compacta existente.

  • MAINTENANCE_POLICY : la política de mantenimiento del host de la VM. Si la política de ubicación compacta que especifica utiliza un valor de distancia máxima de 1 o 2 , o el tipo de máquina elegido no admite la migración en vivo, entonces solo puede especificar TERMINATE . De lo contrario, puede especificar MIGRATE o TERMINATE .

Para obtener más información sobre las opciones de configuración para crear máquinas virtuales de forma masiva, consulte Crear máquinas virtuales de forma masiva .

Aplicar la política al crear una reserva.

Si desea crear una reserva de un solo proyecto bajo demanda que especifique una política de ubicación compacta, debe crear una reserva dirigida específicamente . Cuando cree máquinas virtuales para consumir la reserva, asegúrese de lo siguiente:

  • Las máquinas virtuales deben especificar la misma política de ubicación compacta aplicada a la reserva.

  • Las máquinas virtuales deben apuntar específicamente a la reserva para consumirla. Para obtener más información, consulte Consumir máquinas virtuales de una reserva específica .

Para crear una reserva de un solo proyecto con una política de ubicación compacta, seleccione uno de los siguientes métodos:

Para crear una reserva de un solo proyecto con una política de ubicación compacta especificando propiedades directamente, seleccione una de las siguientes opciones:

nube de gcloud

Para crear una reserva de un solo proyecto con una política de ubicación compacta especificando propiedades directamente, use el comando gcloud compute reservations create con las marcas --require-specific-reservation y --resource-policies=policy .

gcloud compute reservations create RESERVATION_NAME \
    --machine-type=MACHINE_TYPE \
    --require-specific-reservation \
    --resource-policies=policy=POLICY_NAME \
    --vm-count=NUMBER_OF_VMS \
    --zone=ZONE

Reemplace lo siguiente:

  • RESERVATION_NAME : el nombre de la reserva.

  • MACHINE_TYPE : un tipo de máquina compatible con políticas de ubicación compacta.

  • POLICY_NAME : el nombre de una política de ubicación compacta existente.

  • NUMBER_OF_VMS : la cantidad de máquinas virtuales que se reservarán, que no puede ser mayor que la cantidad máxima admitida de máquinas virtuales de la política de ubicación compacta especificada.

  • ZONE : la zona en la que reservar VM. Solo puede reservar máquinas virtuales en una zona dentro de la región de la política de ubicación compacta especificada.

DESCANSAR

Para crear una reserva de un solo proyecto con una política de ubicación compacta especificando propiedades directamente, realice una solicitud POST al método reservations.insert . En el cuerpo de la solicitud, incluya el campo resourcePolicies y el campo specificReservationRequired establecido en true .

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations

{
  "name": "RESERVATION_NAME",
  "resourcePolicies": {
    "policy" : "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  },
  "specificReservation": {
    "count": "NUMBER_OF_VMS",
    "instanceProperties": {
      "machineType": "MACHINE_TYPE",
    }
  },
  "specificReservationRequired": true
}

Reemplace lo siguiente:

  • PROJECT_ID : el ID del proyecto donde se encuentra la política de ubicación compacta.

  • ZONE : la zona en la que reservar VM. Solo puede reservar máquinas virtuales en una zona dentro de la región de la política de ubicación compacta especificada.

  • RESERVATION_NAME : el nombre de la reserva.

  • REGION : la región donde se encuentra la política de colocación compacta.

  • POLICY_NAME : el nombre de una política de ubicación compacta existente.

  • NUMBER_OF_VMS : la cantidad de máquinas virtuales que se reservarán, que no puede ser mayor que la cantidad máxima admitida de máquinas virtuales de la política de ubicación compacta especificada.

  • MACHINE_TYPE : un tipo de máquina compatible con políticas de ubicación compacta.

Para obtener más información sobre las opciones de configuración para crear reservas de un solo proyecto, consulte Crear una reserva para un solo proyecto .

Aplicar la política mientras se crea una plantilla de instancia

Si desea crear una plantilla de instancia regional, debe crear la plantilla en la misma región que la política de ubicación compacta. De lo contrario, se producirá un error al crear la plantilla de instancia.

Después de crear una plantilla de instancia que especifica una política de ubicación compacta, puede usar la plantilla para hacer lo siguiente:

Para crear una plantilla de instancia que especifique una política de ubicación compacta, seleccione una de las siguientes opciones:

nube de gcloud

Para crear una plantilla de instancia que especifique una política de ubicación compacta, use el gcloud compute instance-templates create con las marcas --maintenance-policy y --resource-policies .

Por ejemplo, para crear una plantilla de instancia global que especifique una política de ubicación compacta, ejecute el siguiente comando:

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=MAINTENANCE_POLICY \
    --resource-policies=POLICY_NAME

Reemplace lo siguiente:

  • INSTANCE_TEMPLATE_NAME : el nombre de la plantilla de instancia.

  • MACHINE_TYPE : un tipo de máquina compatible con políticas de ubicación compacta.

  • MAINTENANCE_POLICY : la política de mantenimiento del host de la VM. Si la política de ubicación compacta que especifica utiliza un valor de distancia máxima de 1 o 2 , o el tipo de máquina elegido no admite la migración en vivo, entonces solo puede especificar TERMINATE . De lo contrario, puede especificar MIGRATE o TERMINATE .

  • POLICY_NAME : el nombre de una política de ubicación compacta existente.

DESCANSAR

Para crear una plantilla de instancia que especifique una política de ubicación compacta, realice una solicitud POST a uno de los siguientes métodos:

En el cuerpo de la solicitud, incluya los campos onHostMaintenance y resourcePolicies .

Por ejemplo, para crear una plantilla de instancia global que especifique una política de ubicación compacta, realice una solicitud POST de la siguiente manera:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "machineType": "MACHINE_TYPE",
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "resourcePolicies": [
      "POLICY_NAME"
    ],
    "scheduling": {
      "onHostMaintenance": "MAINTENANCE_POLICY"
    }
  }
}

Reemplace lo siguiente:

  • PROJECT_ID : el ID del proyecto donde se encuentra la política de ubicación compacta.

  • INSTANCE_TEMPLATE_NAME : el nombre de la plantilla de instancia.

  • IMAGE_PROJECT : el proyecto de imagen que contiene la imagen, por ejemplo, debian-cloud . Para obtener más información sobre los proyectos de imágenes admitidos, consulte Imágenes públicas .

  • IMAGE : especifique uno de los siguientes:

    • Una versión específica de la imagen del sistema operativo, por ejemplo, debian-12-bookworm-v20240617 .

    • Una familia de imágenes , que debe tener el formato family/ IMAGE_FAMILY . Esto especifica la imagen del sistema operativo más reciente y no obsoleta. Por ejemplo, si especifica family/debian-12 , se utiliza la última versión de la familia de imágenes de Debian 12. Para obtener más información sobre el uso de familias de imágenes, consulte Mejores prácticas de familias de imágenes .

  • MACHINE_TYPE : un tipo de máquina compatible con políticas de ubicación compacta.

  • POLICY_NAME : el nombre de una política de ubicación compacta existente.

  • MAINTENANCE_POLICY : la política de mantenimiento del host de la VM. Si la política de ubicación compacta que especifica utiliza un valor de distancia máxima de 1 o 2 , o el tipo de máquina elegido no admite la migración en vivo, entonces solo puede especificar TERMINATE . De lo contrario, puede especificar MIGRATE o TERMINATE .

Para obtener más información sobre las opciones de configuración para crear una plantilla de instancia, consulte Crear plantillas de instancia .

Aplicar la política a las máquinas virtuales en un MIG

Después de crear una plantilla de instancias que especifica una política de ubicación compacta, puede usar la plantilla para hacer lo siguiente:

Aplicar la política mientras se crea un MIG

Solo puede crear máquinas virtuales que especifiquen una política de ubicación compacta si las máquinas virtuales están ubicadas en la misma región que la política de ubicación.

Para crear un MIG utilizando una plantilla de instancia que especifica una política de ubicación compacta, seleccione una de las siguientes opciones:

nube de gcloud

Para crear un MIG usando una plantilla de instancias que especifica una política de ubicación compacta, usa el comando gcloud compute instance-groups managed create .

Por ejemplo, para crear un MIG zonal utilizando una plantilla de instancia global que especifica una política de ubicación compacta, ejecute el siguiente comando:

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --size=SIZE \
    --template=INSTANCE_TEMPLATE_NAME \
    --zone=ZONE

Reemplace lo siguiente:

  • INSTANCE_GROUP_NAME : el nombre del MIG a crear.

  • SIZE : el tamaño del MIG.

  • INSTANCE_TEMPLATE_NAME : el nombre de una plantilla de instancia global existente que especifica una política de ubicación compacta.

  • ZONE : la zona en la que crear el MIG, la cual debe estar dentro de la región donde se encuentra la política de colocación compacta.

DESCANSAR

Para crear un MIG utilizando una plantilla de instancia que especifica una política de ubicación compacta, realice una solicitud POST a uno de los siguientes métodos:

Por ejemplo, para crear un MIG zonal utilizando una plantilla de instancia global que especifica una política de ubicación compacta, realice una solicitud POST de la siguiente manera:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers

{
  "name": "INSTANCE_GROUP_NAME",
  "targetSize": SIZE,
  "versions": [
    {
      "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME"
    }
  ]
}

Reemplace lo siguiente:

  • PROJECT_ID : el ID del proyecto donde se encuentran la política de ubicación compacta y la plantilla de instancia que especifica la política de ubicación.

  • ZONE : la zona en la que crear el MIG, la cual debe estar dentro de la región donde se encuentra la política de colocación compacta.

  • INSTANCE_GROUP_NAME : el nombre del MIG a crear.

  • INSTANCE_TEMPLATE_NAME : el nombre de una plantilla de instancia global existente que especifica una política de ubicación compacta.

  • SIZE : el tamaño del MIG.

Para obtener más información sobre las opciones de configuración para crear MIG, consulte Escenarios básicos para crear MIG .

Aplicar la política a un MIG existente

Solo puede aplicar una política de ubicación compacta a un MIG existente si el MIG está ubicado en la misma región que la política de ubicación o, para MIG zonales, en una zona dentro de la misma región que la política de ubicación.

Para actualizar un MIG para usar una plantilla de instancia que especifica una política de ubicación compacta, seleccione una de las siguientes opciones:

nube de gcloud

Para actualizar un MIG para usar una plantilla de instancia que especifique una política de ubicación compacta, usa el comando gcloud compute instance-groups managed rolling-action start-update .

Por ejemplo, para actualizar un MIG zonal para usar una plantilla de instancia que especifique una política de ubicación compacta y reemplazar las VM existentes del MIG con nuevas VM que especifiquen las propiedades de la plantilla, ejecute el siguiente comando:

gcloud compute instance-groups managed rolling-action start-update MIG_NAME \
    --version=template=INSTANCE_TEMPLATE_NAME \
    --zone=ZONE

Reemplace lo siguiente:

  • MIG_NAME : el nombre de un MIG existente.

  • INSTANCE_TEMPLATE_NAME : el nombre de una plantilla de instancia global existente que especifica una política de ubicación compacta.

  • ZONE : la zona donde se encuentra el MIG. Solo puede aplicar la política de ubicación compacta a un MIG ubicado dentro de la misma región que la política de ubicación.

DESCANSAR

Para actualizar un MIG para usar una plantilla de instancia que especifica una política de ubicación compacta y aplicar automáticamente las propiedades de la plantilla y la política de ubicación a las máquinas virtuales existentes en el MIG, realice una solicitud PATCH a uno de los siguientes métodos:

Por ejemplo, para actualizar un MIG zonal para usar una plantilla de instancia global que especifique una política de ubicación compacta y reemplazar las VM existentes del MIG con nuevas VM que especifiquen las propiedades de la plantilla, realice la siguiente solicitud PATCH :

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME

{
  "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME"
}

Reemplace lo siguiente:

  • PROJECT_ID : el ID del proyecto donde se encuentran el MIG, la política de ubicación compacta y la plantilla de instancia que especifica la política de ubicación.

  • ZONE : la zona donde se encuentra el MIG. Solo puede aplicar la política de ubicación compacta a un MIG ubicado dentro de la misma región que la política de ubicación.

  • MIG_NAME : el nombre de un MIG existente.

  • INSTANCE_TEMPLATE_NAME : el nombre de una plantilla de instancia global existente que especifica una política de ubicación compacta.

Para obtener más información sobre las opciones de configuración para actualizar las máquinas virtuales en un MIG, consulte Actualizar y aplicar nuevas configuraciones a las máquinas virtuales en un MIG .

Verificar la ubicación física de una VM

Después de aplicar una política de ubicación compacta a una máquina virtual, puede ver la ubicación física de la máquina virtual en relación con otras máquinas virtuales. Esta comparación se limita a las máquinas virtuales ubicadas en su proyecto y que especifican la misma política de ubicación compacta. Ver la ubicación física de una VM le ayuda a hacer lo siguiente:

  • Confirme que la política se aplicó correctamente.

  • Identifique qué máquinas virtuales están más cercanas entre sí.

Para ver la ubicación física de una máquina virtual en relación con otras máquinas virtuales que especifican la misma política de ubicación compacta, seleccione una de las siguientes opciones:

nube de gcloud

Para ver la ubicación física de una VM que especifica una política de ubicación compacta, use el comando gcloud compute instances describe con la marca --format .

gcloud compute instances describe VM_NAME \
    --format="table[box,title=VM-Position](resourcePolicies.scope():sort=1,resourceStatus.physicalHost:label=location)" \
    --zone=ZONE

Reemplace lo siguiente:

  • VM_NAME : el nombre de una máquina virtual existente que especifica una política de ubicación compacta.

  • ZONE : la zona donde se encuentra la VM.

El resultado es similar al siguiente:

VM-Position

RESOURCE_POLICIES: us-central1/resourcePolicies/example-policy']
PHYSICAL_HOST: /CCCCCCC/BBBBBB/AAAA

El valor del campo PHYSICAL_HOST se compone de tres partes. Cada una de estas partes representa el clúster, el bastidor y el host donde se encuentra la VM.

Al comparar la posición de dos máquinas virtuales que utilizan la misma política de ubicación compacta dentro de su proyecto, cuantas más partes del campo PHYSICAL_HOST compartan las máquinas virtuales, más cerca estarán físicamente ubicadas entre sí. Por ejemplo, supongamos que dos máquinas virtuales especifican uno de los siguientes valores de muestra para el campo PHYSICAL_HOST :

  • /CCCCCCC/ xxxxxx/xxxx : las dos máquinas virtuales se colocan en el mismo clúster, lo que equivale a un valor de distancia máximo de 2 . Las máquinas virtuales ubicadas en el mismo clúster experimentan una baja latencia de red.

  • /CCCCCCC/BBBBBB/ xxxx : las dos máquinas virtuales se colocan en el mismo bastidor, lo que equivale a un valor de distancia máximo de 1 . Las máquinas virtuales ubicadas en el mismo bastidor experimentan una latencia de red más baja que las máquinas virtuales ubicadas en el mismo clúster.

  • /CCCCCCC/BBBBBB/AAAA : las dos máquinas virtuales comparten el mismo host. Las máquinas virtuales ubicadas en el mismo host minimizan la latencia de la red tanto como sea posible.

DESCANSAR

Para ver la ubicación física de una máquina virtual que especifica una política de ubicación compacta, realice una solicitud GET al método instances.get .

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME

Reemplace lo siguiente:

  • PROJECT_ID : el ID del proyecto donde se encuentra la VM.

  • ZONE : la zona donde se encuentra la VM.

  • VM_NAME : el nombre de una máquina virtual existente que especifica una política de ubicación compacta.

El resultado es similar al siguiente:

{
  ...
  "resourcePolicies": [
    "https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/resourcePolicies/example-policy"
  ],
  "resourceStatus": {
    "physicalHost": "/xxxxxxxx/xxxxxx/xxxxx"
  },
  ...
}

El valor del campo physicalHost se compone de tres partes. Cada una de estas partes representa el clúster, el bastidor y el host donde se encuentra la VM.

Al comparar la posición de dos máquinas virtuales que utilizan la misma política de ubicación compacta dentro de su proyecto, cuantas más partes del campo physicalHost compartan las máquinas virtuales, más cerca estarán físicamente ubicadas entre sí. Por ejemplo, supongamos que dos máquinas virtuales especifican uno de los siguientes valores de muestra para el campo physicalHost :

  • /CCCCCCC/ xxxxxx/xxxx : las dos máquinas virtuales se colocan en el mismo clúster, lo que equivale a un valor de distancia máximo de 2 . Las máquinas virtuales ubicadas en el mismo clúster experimentan una baja latencia de red.

  • /CCCCCCC/BBBBBB/ xxxx : las dos máquinas virtuales se colocan en el mismo bastidor, lo que equivale a un valor de distancia máximo de 1 . Las máquinas virtuales ubicadas en el mismo bastidor experimentan una latencia de red más baja que las máquinas virtuales ubicadas en el mismo clúster.

  • /CCCCCCC/BBBBBB/AAAA : las dos máquinas virtuales comparten el mismo host. Las máquinas virtuales ubicadas en el mismo host minimizan la latencia de la red tanto como sea posible.

¿Qué sigue?