Reducir la latencia usando políticas de emplazamiento compactas


En este documento se describe cómo reducir la latencia de red entre tus instancias de Compute Engine creando y aplicando políticas de colocación compacta. Para obtener más información sobre las políticas de colocación, incluidas las series de máquinas admitidas, las restricciones y los precios, consulta el artículo sobre las políticas de colocación.

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

Antes de empezar

  • Si aún no lo has hecho, configura la autenticación. La autenticación verifica tu identidad para acceder a Google Cloud servicios y APIs. Para ejecutar código o ejemplos 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. Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    2. Set a default region and zone.

    REST

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

      Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .

Roles obligatorios

Para obtener los permisos que necesitas para crear y aplicar una política de colocación compacta a las instancias de proceso, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos en tu proyecto:

Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

Estos roles predefinidos contienen los permisos necesarios para crear y aplicar una política de colocación compacta a las instancias de Compute. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:

Permisos obligatorios

Para crear y aplicar una política de colocación compacta a las instancias de proceso, se necesitan los siguientes permisos:

  • Para crear políticas de emplazamiento, sigue estos pasos: compute.resourcePolicies.create en el proyecto
  • Para aplicar una política de colocación a las instancias existentes, sigue estos pasos: compute.instances.addResourcePolicies en el proyecto
  • Para crear instancias, sigue estos pasos:
    • compute.instances.create en el proyecto
    • Para usar una imagen personalizada para crear la VM, haz clic en compute.images.useReadOnly en la imagen.
    • Para usar una captura para crear la VM, compute.snapshots.useReadOnly en la captura
    • Para usar una plantilla de instancia para crear la VM, haz clic en compute.instanceTemplates.useReadOnly en la plantilla de instancia.
    • Para asignar una red antigua a la VM, haz lo siguiente: compute.networks.use en el proyecto
    • Para especificar una dirección IP estática para la máquina virtual, compute.addresses.use en el proyecto
    • Para asignar una dirección IP externa a la VM cuando se usa una red antigua, haz lo siguiente: 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 de VPC, compute.subnetworks.useExternalIp en el proyecto o en la subred elegida.
    • Para definir los metadatos de la instancia de VM de la VM: compute.instances.setMetadata en el proyecto,
    • Para definir etiquetas en la máquina virtual, compute.instances.setTags en la máquina virtual
    • Para definir etiquetas de la VM, compute.instances.setLabels en la VM
    • Para definir una cuenta de servicio que use la VM, haz lo siguiente en la VM: compute.instances.setServiceAccount
    • Para crear un disco para la VM compute.disks.create del proyecto, sigue estos pasos:
    • Para adjuntar un disco en modo de solo lectura o de lectura y escritura, haz lo siguiente: compute.disks.use en el disco
    • Para adjuntar un disco en modo de solo lectura, compute.disks.useReadOnly en el disco.
  • Para crear una reserva, sigue estos pasos: compute.reservations.create en el proyecto
  • Para crear una plantilla de instancia, sigue estos pasos: compute.instanceTemplates.create en el proyecto
  • Para crear un grupo de instancias gestionado (MIG), sigue estos pasos: compute.instanceGroupManagers.create en el proyecto
  • Para ver los detalles de una instancia: compute.instances.get en el proyecto

También puedes obtener estos permisos con roles personalizados u otros roles predefinidos.

Crear una política de colocación compacta

Antes de crear una política de emplazamiento compacta, tenga en cuenta lo siguiente:

  • Si quiere aplicar una política de colocación compacta a una instancia de VM que no sea N2 ni N2D, le recomendamos que especifique un valor de distancia máximo.

  • Solo puedes aplicar políticas de colocación compacta a instancias A4 o A3 Ultra que se hayan implementado con las funciones que proporciona Cluster Director. Para obtener más información, consulta Cluster Director en la documentación de AI Hypercomputer.

  • De forma predeterminada, no puedes aplicar políticas de colocación compacta con un valor de distancia máxima a instancias A3 mega, A3 high o A3 edge. Para solicitar acceso a esta función, ponte en contacto con tu gestor técnico de cuentas (TAM) o con el equipo de Ventas.

Para crear una política de colocación compacta, selecciona una de las siguientes opciones:

gcloud

  • Para aplicar la política de emplazamiento compacto a instancias N2 o N2D, crea la política con el comando gcloud compute resource-policies create group-placement y la marca --collocation=collocated.

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

    Haz los cambios siguientes:

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

    • REGION: la región en la que se va a crear la política de emplazamiento.

  • Para aplicar la política de emplazamiento compacto a cualquier otra instancia admitida, crea la política con el comando gcloud beta compute resource-policies create group-placement y 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
    

    Haz los cambios siguientes:

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

    • MAX_DISTANCE: la configuración de distancia máxima de tus instancias. El valor debe estar comprendido entre 1, que especifica que las instancias se coloquen en el mismo rack para que la latencia de red sea lo más baja posible, y 3, que especifica que las instancias se coloquen en clústeres adyacentes. Si quieres aplicar la política de colocación compacta a una reserva o a una instancia Ultra A4 o A3, no puedes especificar el valor 1.

    • REGION: la región en la que se va a crear la política de emplazamiento.

REST

  • Para aplicar la política de colocación compacta a instancias N2 o N2D, crea la política haciendo una solicitud POST al método resourcePolicies.insert. En el cuerpo de la solicitud, incluye el campo collocation y asigna el valor COLLOCATED.

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

    Haz los cambios siguientes:

    • PROJECT_ID: el ID del proyecto en el que quieres crear la política de emplazamiento.

    • REGION: la región en la que se va a crear la política de emplazamiento.

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

  • Para aplicar la política de posición compacta a cualquier otra instancia admitida, crea la política haciendo una solicitud POST al método beta.resourcePolicies.insert. En el cuerpo de la solicitud, incluye lo siguiente:

    • El campo collocation se ha definido como 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
      }
    }
    

    Haz los cambios siguientes:

    • PROJECT_ID: el ID del proyecto en el que quieres crear la política de emplazamiento.

    • REGION: la región en la que se va a crear la política de emplazamiento.

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

    • MAX_DISTANCE: la configuración de distancia máxima de tus instancias. El valor debe estar comprendido entre 1, que especifica que las instancias se coloquen en el mismo rack para que la latencia de red sea lo más baja posible, y 3, que especifica que las instancias se coloquen en clústeres adyacentes. Si quieres aplicar la política de colocación compacta a una reserva o a una instancia Ultra A4 o A3, no puedes especificar el valor 1.

Aplicar una política de colocación compacta

Puedes aplicar una política de colocación compacta a una instancia de cálculo o a un grupo de instancias gestionado (MIG) que ya tengas, o bien al crear instancias, plantillas de instancias, MIGs o reservas de instancias.

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

Después de aplicar una política de colocación compacta a una instancia, puedes verificar la ubicación física de la instancia en relación con otras instancias que especifiquen la misma política de colocación.

Aplicar la política a una instancia

Antes de aplicar una política de colocación compacta a una instancia de proceso, asegúrate de que se cumplen los siguientes requisitos:

De lo contrario, no se podrá aplicar la política de colocación compacta a la instancia. Si la instancia ya especifica una política de colocación y quieres sustituirla, consulta Sustituir una política de colocación en una instancia.

Para aplicar una política de emplazamiento compacta a una instancia, selecciona una de las siguientes opciones:

gcloud

  1. Detén la instancia.

  2. Para aplicar una política de emplazamiento compacta a una instancia, usa el comando gcloud compute instances add-resource-policies.

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

    Haz los cambios siguientes:

    • INSTANCE_NAME: el nombre de una instancia.

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

    • ZONE: la zona en la que se encuentra la instancia.

  3. Reinicia la instancia.

REST

  1. Detén la instancia.

  2. Para aplicar una política de colocación compacta a una instancia, envía una solicitud POST al método instances.addResourcePolicies.

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

    Haz los cambios siguientes:

    • PROJECT_ID: el ID del proyecto en el que se encuentran la política de emplazamiento compacta y la instancia.

    • ZONE: la zona en la que se encuentra la instancia.

    • INSTANCE_NAME: el nombre de una instancia.

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

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

  3. Reinicia la instancia.

Aplicar la política al crear una instancia

Solo puedes crear una instancia de proceso que especifique una política de colocación compacta en la misma región que la política de colocación.

Para crear una instancia que especifique una política de colocación compacta, selecciona una de las siguientes opciones:

gcloud

Para crear una instancia que especifique una política de colocación compacta, usa el comando gcloud compute instances create con las marcas --maintenance-policy y --resource-policies.

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

Haz los cambios siguientes:

  • INSTANCE_NAME: el nombre de la instancia que se va a crear.

  • MACHINE_TYPE: un tipo de máquina admitido para las políticas de colocación compacta.

  • MAINTENANCE_POLICY: la política de mantenimiento del host de la instancia. Si la política de colocación compacta que especifiques usa un valor de distancia máxima de 1 o 2, o si el tipo de máquina que elijas no admite la migración en directo, solo podrás especificar TERMINATE. De lo contrario, puedes especificar MIGRATE o TERMINATE.

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

  • ZONE: la zona en la que se creará la instancia.

REST

Para crear una instancia que especifique una política de colocación compacta, haz una solicitud POST al método instances.insert. En el cuerpo de la solicitud, incluye los campos onHostMaintenance y resourcePolicies.

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

{
  "name": "INSTANCE_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"
  }
}

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto en el que se encuentra la política de emplazamiento compacta.

  • ZONE: la zona en la que se va a crear la instancia y en la que se encuentra el tipo de máquina. Solo puedes especificar una zona en la región de la política de colocación compacta.

  • INSTANCE_NAME: el nombre de la instancia que se va a crear.

  • MACHINE_TYPE: un tipo de máquina admitido para las políticas de colocació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, consulta Imágenes públicas.

  • IMAGE: especifica una de las siguientes opciones:

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

    • Una familia de imágenes, que debe tener el formato family/IMAGE_FAMILY. Especifica la imagen del SO más reciente que no está obsoleta. Por ejemplo, si especificas family/debian-12, se usará la versión más reciente de la familia de imágenes de Debian 12. Para obtener más información sobre cómo usar familias de imágenes, consulte las prácticas recomendadas para familias de imágenes.

  • REGION: la región en la que se encuentra la política de posición compacta.

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

  • MAINTENANCE_POLICY: la política de mantenimiento del host de la instancia. Si la política de colocación compacta que especifiques usa un valor de distancia máxima de 1 o 2, o si el tipo de máquina que elijas no admite la migración en directo, solo podrás especificar TERMINATE. De lo contrario, puedes especificar MIGRATE o TERMINATE.

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

Aplicar la política al crear instancias en bloque

Solo puedes crear instancias de proceso de forma masiva con una política de colocación compacta en la misma región que la política de colocación.

Para crear instancias en bloque que especifiquen una política de colocación compacta, selecciona una de las siguientes opciones:

gcloud

Para crear instancias de forma masiva que especifiquen una política de colocación compacta, usa el comando gcloud compute instances bulk create con las marcas --maintenance-policy y --resource-policies.

Por ejemplo, para crear instancias en bloque en una sola zona y especificar un patrón de nombre para las instancias, ejecuta 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

Haz los cambios siguientes:

  • COUNT: número de instancias que se van a crear, que no puede ser superior al número máximo de instancias admitido de la política de asignación compacta especificada.

  • MACHINE_TYPE: un tipo de máquina admitido para las políticas de colocación compacta.

  • MAINTENANCE_POLICY: la política de mantenimiento del host de la instancia. Si la política de colocación compacta que especifiques usa un valor de distancia máxima de 1 o 2, o si el tipo de máquina que elijas no admite la migración en directo, solo podrás especificar TERMINATE. De lo contrario, puedes especificar MIGRATE o TERMINATE.

  • NAME_PATTERN: el patrón de nombre de las instancias. Para sustituir una secuencia de números en un nombre de instancia, utiliza una secuencia de caracteres de almohadilla (#). Por ejemplo, si se usa vm-# para el patrón de nombre, se generan instancias con nombres que empiezan por vm-1, vm-2 y así sucesivamente hasta el número de instancias especificado por COUNT.

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

  • ZONE: la zona en la que se crearán las instancias en bloque.

REST

Para crear instancias de forma masiva que especifiquen una política de colocación compacta, haz una solicitud POST al método instances.bulkInsert. En el cuerpo de la solicitud, incluye los campos onHostMaintenance y resourcePolicies.

Por ejemplo, para crear instancias de forma masiva en una sola zona y especificar un patrón de nombres para las instancias, haz 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"
    }
  }
}

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto en el que se encuentra la política de emplazamiento compacta.

  • ZONE: la zona en la que se crearán las instancias en bloque.

  • COUNT: número de instancias que se van a crear, que no puede ser superior al número máximo de instancias admitido de la política de colocación compacta especificada.

  • NAME_PATTERN: el patrón de nombre de las instancias. Para sustituir una secuencia de números en un nombre de instancia, utiliza una secuencia de caracteres de almohadilla (#). Por ejemplo, si se usa vm-# para el patrón de nombre, se generan instancias con nombres que empiezan por vm-1, vm-2 y así sucesivamente hasta el número de instancias especificado por COUNT.

  • MACHINE_TYPE: un tipo de máquina admitido para las políticas de colocació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, consulta Imágenes públicas.

  • IMAGE: especifica una de las siguientes opciones:

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

    • Una familia de imágenes, que debe tener el formato family/IMAGE_FAMILY. Especifica la imagen del SO más reciente que no está obsoleta. Por ejemplo, si especificas family/debian-12, se usará la versión más reciente de la familia de imágenes de Debian 12. Para obtener más información sobre cómo usar familias de imágenes, consulte las prácticas recomendadas para familias de imágenes.

  • REGION: la región en la que se encuentra la política de posición compacta.

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

  • MAINTENANCE_POLICY: la política de mantenimiento del host de la instancia. Si la política de colocación compacta que especifiques usa un valor de distancia máxima de 1 o 2, o si el tipo de máquina que has elegido no admite la migración en directo, solo puedes especificar TERMINATE. De lo contrario, puedes especificar MIGRATE o TERMINATE.

Para obtener más información sobre las opciones de configuración para crear instancias en bloque, consulta Crear instancias en bloque.

Aplicar la política al crear una reserva

Si quieres crear una reserva de un solo proyecto bajo demanda que especifique una política de emplazamiento compacta, debes crear una reserva con segmentación específica. Cuando crees instancias para consumir la reserva, asegúrate de lo siguiente:

  • Las instancias deben especificar la misma política de colocación compacta aplicada a la reserva.

  • Las instancias deben segmentar específicamente la reserva para consumirla. Para obtener más información, consulta Consumir instancias de una reserva específica.

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

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

gcloud

Para crear una reserva de un solo proyecto con una política de colocación compacta especificando las propiedades directamente, usa 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_INSTANCES \
    --zone=ZONE

Haz los cambios siguientes:

  • RESERVATION_NAME: el nombre de la reserva.

  • MACHINE_TYPE: un tipo de máquina admitido para las políticas de colocación compacta.

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

  • NUMBER_OF_INSTANCES: el número de instancias que se van a reservar, que no puede ser superior al número máximo de instancias admitido de la política de asignación compacta especificada.

  • ZONE: la zona en la que se reservarán las instancias. Solo puedes reservar instancias en una zona de la región de la política de colocación compacta especificada.

REST

Para crear una reserva de un solo proyecto con una política de emplazamiento compacta especificando las propiedades directamente, haz una solicitud POST al método reservations.insert. En el cuerpo de la solicitud, incluye el campo resourcePolicies y el campo specificReservationRequired con el valor 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_INSTANCES",
    "instanceProperties": {
      "machineType": "MACHINE_TYPE",
    }
  },
  "specificReservationRequired": true
}

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto en el que se encuentra la política de emplazamiento compacta.

  • ZONE: la zona en la que se reservarán las instancias. Solo puedes reservar instancias en una zona de la región de la política de colocación compacta especificada.

  • RESERVATION_NAME: el nombre de la reserva.

  • REGION: la región en la que se encuentra la política de posición compacta.

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

  • NUMBER_OF_INSTANCES: el número de instancias que se van a reservar, que no puede ser superior al número máximo de instancias admitido de la política de asignación compacta especificada.

  • MACHINE_TYPE: un tipo de máquina admitido para las políticas de colocación compacta.

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

Aplicar la política al crear una plantilla de instancia

Si quieres crear una plantilla de instancia regional, debes crearla en la misma región que la política de emplazamiento compacta. De lo contrario, no se podrá crear la plantilla de instancia.

Después de crear una plantilla de instancia que especifique una política de colocación compacta, puedes usarla para hacer lo siguiente:

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

gcloud

Para crear una plantilla de instancia que especifique una política de colocación compacta, usa el comando 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 colocación compacta, ejecuta el siguiente comando:

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

Haz los cambios siguientes:

  • INSTANCE_TEMPLATE_NAME: el nombre de la plantilla de instancia.

  • MACHINE_TYPE: un tipo de máquina admitido para las políticas de colocación compacta.

  • MAINTENANCE_POLICY: la política de mantenimiento del host de la instancia. Si la política de colocación compacta que especifiques usa un valor de distancia máxima de 1 o 2, o si el tipo de máquina que has elegido no admite la migración en directo, solo puedes especificar TERMINATE. De lo contrario, puedes especificar MIGRATE o TERMINATE.

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

REST

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

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

Por ejemplo, para crear una plantilla de instancia global que especifique una política de colocación compacta, haz 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"
    }
  }
}

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto en el que se encuentra la política de emplazamiento 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, consulta Imágenes públicas.

  • IMAGE: especifica una de las siguientes opciones:

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

    • Una familia de imágenes, que debe tener el formato family/IMAGE_FAMILY. Especifica la imagen del SO más reciente que no está obsoleta. Por ejemplo, si especificas family/debian-12, se usará la versión más reciente de la familia de imágenes de Debian 12. Para obtener más información sobre cómo usar familias de imágenes, consulte las prácticas recomendadas para familias de imágenes.

  • MACHINE_TYPE: un tipo de máquina admitido para las políticas de colocación compacta.

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

  • MAINTENANCE_POLICY: la política de mantenimiento del host de la instancia. Si la política de colocación compacta que especifiques usa un valor de distancia máxima de 1 o 2, o si el tipo de máquina que elijas no admite la migración en directo, solo podrás especificar TERMINATE. De lo contrario, puedes especificar MIGRATE o TERMINATE.

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

Aplicar la política a las instancias de un MIG

Después de crear una plantilla de instancia que especifique una política de colocación compacta, puedes usar la plantilla para hacer lo siguiente:

Aplicar la política al crear un MIG

Solo puedes crear instancias de proceso que especifiquen una política de colocación compacta si las instancias se encuentran en la misma región que la política de colocación.

Para crear un MIG con una plantilla de instancia que especifique una política de colocación compacta, selecciona una de las siguientes opciones:

gcloud

Para crear un MIG con una plantilla de instancia que especifique una política de colocación compacta, usa el comando gcloud compute instance-groups managed create.

Por ejemplo, para crear un MIG zonal con una plantilla de instancia global que especifique una política de colocación compacta, ejecuta el siguiente comando:

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

Haz los cambios siguientes:

  • INSTANCE_GROUP_NAME: el nombre del MIG que se va a crear.

  • SIZE: el tamaño de la MIG.

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

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

REST

Para crear un MIG con una plantilla de instancia que especifique una política de colocación compacta, haz una solicitud POST a uno de los siguientes métodos:

Por ejemplo, para crear un MIG zonal con una plantilla de instancia global que especifique una política de colocación compacta, haz 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"
    }
  ]
}

Haz los cambios siguientes:

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

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

  • INSTANCE_GROUP_NAME: el nombre del MIG que se va a crear.

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

  • SIZE: el tamaño de la MIG.

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

Aplicar la política a un MIG

Solo puedes aplicar una política de colocación compacta a un MIG si este se encuentra en la misma región que la política de colocación o, en el caso de los MIGs zonales, en una zona de la misma región que la política de colocación.

Para actualizar un MIG de forma que use una plantilla de instancia que especifique una política de colocación compacta, selecciona una de las siguientes opciones:

gcloud

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

Por ejemplo, para actualizar un MIG zonal de forma que use una plantilla de instancia que especifique una política de colocación compacta y sustituir las instancias del MIG por otras que especifiquen las propiedades de la plantilla, ejecuta el siguiente comando:

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

Haz los cambios siguientes:

  • MIG_NAME: el nombre de un MIG.

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

  • ZONE: la zona en la que se encuentra el MIG. Solo puedes aplicar la política de colocación compacta a un MIG ubicado en la misma región que la política de colocación.

REST

Para actualizar un MIG de forma que use una plantilla de instancia que especifique una política de colocación compacta y aplicar automáticamente las propiedades de la plantilla y de la política de colocación a las instancias del MIG, haz una solicitud PATCH a uno de los siguientes métodos:

Por ejemplo, para actualizar un MIG zonal de forma que use una plantilla de instancia global que especifique una política de colocación compacta y sustituir las instancias del MIG por otras que especifiquen las propiedades de la plantilla, haz 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"
}

Haz los cambios siguientes:

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

  • ZONE: la zona en la que se encuentra el MIG. Solo puedes aplicar la política de colocación compacta a un MIG ubicado en la misma región que la política de colocación.

  • MIG_NAME: el nombre de un MIG.

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

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

Verificar la ubicación física de una instancia

Después de aplicar una política de colocación compacta a una instancia de computación, puedes ver la ubicación física de la instancia en relación con otras instancias. Esta comparación se limita a las instancias ubicadas en tu proyecto y que especifican la misma política de colocación compacta. Ver la ubicación física de una instancia te ayuda a hacer lo siguiente:

  • Confirma que la política se ha aplicado correctamente.

  • Identifica qué instancias están más cerca entre sí.

Para ver la ubicación física de una instancia en relación con otras instancias que especifican la misma política de colocación compacta, selecciona una de las siguientes opciones:

gcloud

Para ver la ubicación física de una instancia que especifica una política de emplazamiento compacto, usa el comando gcloud compute instances describe con la marca --format.

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

Haz los cambios siguientes:

  • INSTANCE_NAME: el nombre de una instancia que especifica una política de colocación compacta.

  • ZONE: la zona en la que se encuentra la instancia.

El resultado debería ser 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 rack y el host en los que se encuentra la instancia.

Al comparar la posición de dos instancias que usan la misma política de colocación compacta en tu proyecto, cuantas más partes del campo PHYSICAL_HOST compartan las instancias, más cerca estarán físicamente entre sí. Por ejemplo, supongamos que dos instancias especifican uno de los siguientes valores de ejemplo para el campo PHYSICAL_HOST:

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

  • /CCCCCCC/BBBBBB/xxxx: las dos instancias se colocan en el mismo rack, lo que equivale a una distancia máxima de 1. Las instancias colocadas en el mismo rack tienen una latencia de red menor que las instancias colocadas en el mismo clúster.

  • /CCCCCCC/BBBBBB/AAAA: las dos instancias comparten el mismo host. Las instancias colocadas en el mismo host minimizan la latencia de red lo máximo posible.

REST

Para ver la ubicación física de una instancia que especifica una política de colocación compacta, haz una solicitud GET al método instances.get.

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

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto en el que se encuentra la instancia.

  • ZONE: la zona en la que se encuentra la instancia.

  • INSTANCE_NAME: el nombre de una instancia que especifica una política de colocación compacta.

El resultado debería ser 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 rack y el host en los que se encuentra la instancia.

Al comparar la posición de dos instancias que usan la misma política de colocación compacta en tu proyecto, cuantas más partes del campo physicalHost compartan las instancias, más cerca estarán físicamente entre sí. Por ejemplo, supongamos que dos instancias especifican uno de los siguientes valores de ejemplo para el campo physicalHost:

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

  • /CCCCCCC/BBBBBB/xxxx: las dos instancias se colocan en el mismo rack, lo que equivale a una distancia máxima de 1. Las instancias colocadas en el mismo rack experimentan una latencia de red menor que las instancias colocadas en el mismo clúster.

  • /CCCCCCC/BBBBBB/AAAA: las dos instancias comparten el mismo host. Las instancias colocadas en el mismo host minimizan la latencia de red lo máximo posible.

Siguientes pasos