Reducir la latencia usando políticas de colocación compacta

En este documento, se describe cómo reducir la latencia de red entre tus instancias de Compute Engine a través de la creación y aplicación de políticas de posición compacta. Para obtener más información sobre las políticas de posición, incluidas las series de máquinas compatibles, las restricciones y los precios, consulta la Descripción general de las políticas de posición.

Una política de posición de compactación especifica que tus instancias de procesamiento deben colocarse físicamente más cerca entre sí. Esto puede ayudar a mejorar el rendimiento y reducir la latencia de red entre tus instancias de procesamiento cuando, por ejemplo, ejecutas cargas de trabajo de computación de alto rendimiento (HPC), aprendizaje automático (AA) o servidor de base de datos.

Antes de comenzar

  • Si aún no lo hiciste, configura la autenticación. La autenticación verifica tu identidad para acceder a los servicios y las APIs de Google Cloud . 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:

    Console

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

    gcloud

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

      gcloud init

      Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

    2. Set a default region and zone.

    REST

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

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

      gcloud init

      Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

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

Roles obligatorios

Para obtener los permisos que necesitas para crear y aplicar una política de posición de compacta a las instancias de procesamiento, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto:

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

Estos roles predefinidos contienen los permisos necesarios para crear y aplicar una política de posición compacta a las instancias de procesamiento. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para crear y aplicar una política de posición compacta a las instancias de procesamiento:

  • Para crear políticas de posición: compute.resourcePolicies.create en el proyecto
  • Para aplicar una política de posición a las instancias de procesamiento existentes: compute.instances.addResourcePolicies en el proyecto
  • Para crear instancias de procesamiento, haz lo siguiente:
    • compute.instances.create en el proyecto
    • Para usar una imagen personalizada con el fin de crear la VM, sigue estos pasos: compute.images.useReadOnly en la imagen
    • Si deseas usar una instantánea para crear la VM, sigue estos pasos: compute.snapshots.useReadOnly en la instantánea
    • Para usar una plantilla de instancias a fin de crear la VM, haz lo siguiente: compute.instanceTemplates.useReadOnly en la plantilla de instancias
    • Para asignar una red heredada a la VM: compute.networks.use en el proyecto
    • Si deseas 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 y punto heredado; compute.networks.useExternalIp en el proyecto
    • A fin de 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
    • A fin de configurar los metadatos de la instancia de VM para la VM y los puntos, sigue estos pasos: compute.instances.setMetadata en el proyecto
    • A fin de configurar etiquetas para la VM y los puntos; compute.instances.setTags en la VM
    • Si deseas configurar etiquetas para la VM, haz lo siguiente: compute.instances.setLabels en la VM
    • A fin de configurar una cuenta de servicio para que la VM la usecompute.instances.setServiceAccount en la VM
    • Si deseas crear un disco nuevo para la VM: compute.disks.create en el proyecto
    • Para conectar un disco existente en modo de solo lectura o de lectura y escritura, haz lo siguiente: compute.disks.use en el disco
    • Para conectar un disco existente en modo de solo lectura y dos puntos, sigue estos pasos: compute.disks.useReadOnly en el disco
  • Para crear una reserva: compute.reservations.create en el proyecto
  • Para crear una plantilla de instancias: 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 instancia de procesamiento: compute.instances.get en el proyecto

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

Crea una política de posición de compactación

Antes de crear una política de posición de compactación, ten en cuenta lo siguiente:

  • Si deseas aplicar una política de posición compacta a una instancia de procesamiento que no sea M3, M2, M1, N2D o N2, te recomendamos que especifiques un valor de distancia máxima.

  • Si deseas aplicar una política de posición de compactación a una instancia de A3 Mega, A3 High o A3 Edge que se creó antes del 1 de octubre de 2025, comunícate con tu equipo de cuentas.

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

gcloud

  • Para aplicar la política de posición de compactación a instancias M3, M2, M1, N2D o N2, crea la política con 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
    

    Reemplaza lo siguiente:

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

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

  • Para aplicar la política de posición compacta a cualquier otra instancia de procesamiento compatible, crea la política con 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
    

    Reemplaza lo siguiente:

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

    • MAX_DISTANCE: Es la configuración de distancia máxima para tus instancias de procesamiento. El valor debe estar entre 1, que especifica que tus instancias de procesamiento se deben colocar en el mismo bastidor para obtener la latencia de red más baja posible y, 3, que especifica que se deben colocar las instancias de procesamiento en los clústeres adyacentes.

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

REST

  • Para aplicar la política de posición compacta a instancias M3, M2, M1, N2D o N2, crea la política realizando una solicitud POST al método resourcePolicies.insert. En el cuerpo de la solicitud, incluye el campo collocation y configúralo como COLLOCATED.

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

    Reemplaza lo siguiente:

    • PROJECT_ID: el ID del proyecto en el que deseas crear la política de posición.

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

    • 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 de procesamiento compatible, crea la política realizando una solicitud POST al método beta.resourcePolicies.insert. En el cuerpo de la solicitud, incluye lo siguiente:

    • El campo collocation configurado 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
      }
    }
    

    Reemplaza lo siguiente:

    • PROJECT_ID: el ID del proyecto en el que deseas crear la política de posición.

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

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

    • MAX_DISTANCE: Es la configuración de distancia máxima para tus instancias de procesamiento. El valor debe estar entre 1, que especifica que tus instancias de procesamiento se deben colocar en el mismo bastidor para obtener la latencia de red más baja posible y, 3, que especifica que se deben colocar las instancias de procesamiento en los clústeres adyacentes.

Aplica una política de posición compacta

Puedes aplicar una política de posición compacta a una instancia de procesamiento o a un grupo de instancias administrado (MIG) existente, o cuando creas instancias de procesamiento, plantillas de instancias, MIG o reservas de instancias de procesamiento.

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

Después de aplicar una política de posició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 posición.

Aplica la política a una instancia existente

Antes de aplicar una política de posición de compactación a una instancia de procesamiento existente, asegúrate de lo siguiente:

De lo contrario, la aplicación de la política de posición compacta a la instancia de procesamiento fallará. Si la instancia de procesamiento ya especifica una política de posición y quieres reemplazarla, consulta Reemplaza una política de posición en una instancia de procesamiento.

Para aplicar una política de posición compacta a una instancia de procesamiento existente, selecciona una de las siguientes opciones:

gcloud

  1. Detén la instancia de procesamiento.

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

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

    Reemplaza lo siguiente:

    • INSTANCE_NAME: Es el nombre de una instancia de procesamiento existente.

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

    • ZONE: Es la zona en la que existe la instancia de procesamiento.

  3. Reinicia la instancia.

REST

  1. Detén la instancia de procesamiento.

  2. Para aplicar una política de posición compacta a una instancia de procesamiento existente, realiza 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"
      ]
    }
    

    Reemplaza lo siguiente:

    • PROJECT_ID: ID del proyecto en el que existen la política de posición compacta y la instancia de procesamiento.

    • ZONE: Es la zona en la que existe la instancia de procesamiento.

    • INSTANCE_NAME: Es el nombre de una instancia de procesamiento existente.

    • 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 de compactación existente.

  3. Reinicia la instancia de procesamiento.

Aplica la política mientras creas una instancia

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

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

gcloud

Para crear una instancia de procesamiento que especifique una política de posició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

Reemplaza lo siguiente:

  • INSTANCE_NAME: Es el nombre de la instancia de procesamiento que se creará.

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

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

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

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

REST

Para crear una instancia de procesamiento que especifique una política de posición de compactación, realiza 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"
  }
}

Reemplaza lo siguiente:

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

  • ZONE: Es la zona en la que se creará la instancia de procesamiento 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 posición compacta.

  • INSTANCE_NAME: Es el nombre de la instancia de procesamiento que se creará.

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

  • IMAGE: especifica una de las siguientes opciones:

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

    • Una familia de imágenes, que debe tener el formato family/IMAGE_FAMILY. Esto especifica la imagen de SO no obsoleta más reciente. Por ejemplo, si especificas family/debian-12, se usa la versión más reciente de la familia de imágenes de Debian 12. Para obtener más información sobre el uso de las familias de imágenes, consulta Prácticas recomendadas para las familias de imágenes.

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

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

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

Si deseas obtener más información sobre las opciones de configuración para crear una instancia de procesamiento, consulta Crea y, luego, inicia una instancia de procesamiento.

Aplica la política mientras creas instancias de forma masiva

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

Para crear instancias de procesamiento de forma masiva que especifiquen una política de posición compacta, selecciona una de las siguientes opciones:

gcloud

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

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

Reemplaza lo siguiente:

  • COUNT: La cantidad de instancias de procesamiento que se crearán, que no puede ser mayor que la cantidad máxima de instancias de procesamiento admitida para la política de posición compacta especificada.

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

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

  • NAME_PATTERN: Es el patrón de nombres para las instancias de procesamiento. Para reemplazar una secuencia de números en el nombre de una instancia de procesamiento, usa una secuencia de caracteres hash (#). Por ejemplo, si usas vm-# para el patrón de nombre, se generan instancias con nombres que comienzan con vm-1, vm-2 y continúan hasta la cantidad de instancias de procesamiento especificadas por COUNT.

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

  • ZONE: Es la zona en la que se crearán las instancias de procesamiento de forma masiva.

REST

Para crear instancias de procesamiento de forma masiva que especifiquen una política de posición compacta, realiza 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 procesamiento de forma masiva en una sola zona y especificar un patrón de nombre para las instancias de procesamiento, realiza 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"
    }
  }
}

Reemplaza lo siguiente:

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

  • ZONE: Es la zona en la que se crearán las instancias de procesamiento de forma masiva.

  • COUNT: la cantidad de instancias de procesamiento que se crearán, que no puede ser mayor que la cantidad máxima de instancias admitida para la política de posición compacta especificada.

  • NAME_PATTERN: Es el patrón de nombres para las instancias de procesamiento. Para reemplazar una secuencia de números en el nombre de una instancia, usa una secuencia de caracteres hash (#). Por ejemplo, si usas vm-# para el patrón de nombre, se generan instancias de procesamiento con nombres que comienzan con vm-1, vm-2 y continúan hasta la cantidad de instancias de procesamiento especificadas por COUNT.

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

  • IMAGE: especifica una de las siguientes opciones:

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

    • Una familia de imágenes, que debe tener el formato family/IMAGE_FAMILY. Esto especifica la imagen de SO no obsoleta más reciente. Por ejemplo, si especificas family/debian-12, se usa la versión más reciente de la familia de imágenes de Debian 12. Para obtener más información sobre el uso de las familias de imágenes, consulta Prácticas recomendadas para las familias de imágenes.

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

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

  • MAINTENANCE_POLICY: Es la política de mantenimiento del host de la instancia. Si la política de posición compacta que especificas usa un valor de distancia máxima de 1 o 2, o si el tipo de máquina que elegiste no admite la migración en vivo, 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 de procesamiento de forma masiva, consulta Crea instancias de procesamiento de forma masiva.

Aplica la política mientras creas una reserva

Si deseas crear una reserva según demanda de un solo proyecto que especifique una política de posición compacta, debes crear una reserva orientada específicamente. Cuando crees instancias de procesamiento para consumir la reserva, asegúrate de lo siguiente:

  • Las instancias de procesamiento deben especificar la misma política de posición de compactación aplicada a la reserva.

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

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

Para crear una reserva de un solo proyecto con una política de posición compacta a través de la especificación directa de las propiedades, selecciona una de las siguientes opciones:

Console

  1. En la consola de Google Cloud , ve a la página Reservas.

    Ir a Reservas

  2. Haz clic en Crear reserva. Aparecerá la página Crear una reserva.

  3. En el campo Nombre, ingresa el nombre de tu reserva.

  4. En las listas Región y Zona, selecciona la región y la zona en las que deseas reservar los recursos.

  5. En la sección Usar con instancia de VM, selecciona Seleccionar reserva específica.

  6. En la sección Instancias de VM y GPUs, haz lo siguiente:

    1. En el campo Cantidad de instancias de VM, ingresa la cantidad de VMs que se reservarán.

    2. Especifica una serie y un tipo de máquina que admitan políticas de posición de compactación.

  7. En la sección Política de posición de grupo, haz clic en la lista Selecciona o crea una política de posición de grupo y, luego, realiza una de las siguientes acciones:

    • Para crear una política de posición compacta, completa los siguientes pasos:

      1. Haz clic en Crear política de posición de grupo. Aparecerá el panel Crear una política de posición de grupo.

      2. En el campo Nombre de la política, ingresa un nombre para tu política.

      3. Haz clic en Crear.

    • Para seleccionar una política de posición compacta existente, elige una política que exista en la misma región en la que deseas reservar instancias.

  8. Para crear la reserva, haz clic en Crear.

gcloud

Para crear una reserva de un solo proyecto con una política de posición compacta a través de la especificación directa de las propiedades, 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

Reemplaza lo siguiente:

  • RESERVATION_NAME por el nombre de la reserva.

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

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

  • NUMBER_OF_INSTANCES: Es la cantidad de instancias de procesamiento que se reservarán, que no puede ser mayor que la cantidad máxima de instancias admitida para la política de posición compacta especificada.

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

REST

Para crear una reserva de un solo proyecto con una política de posición compacta a través de la especificación directa de las propiedades, realiza una solicitud POST al método reservations.insert. En el cuerpo de la solicitud, incluye el campo resourcePolicies y el campo specificReservationRequired configurado como 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
}

Reemplaza lo siguiente:

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

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

  • RESERVATION_NAME por 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 de compactación existente.

  • NUMBER_OF_INSTANCES: La cantidad de instancias de procesamiento que se reservarán, que no puede ser mayor que la cantidad máxima de instancias de procesamiento admitida para la política de posición compacta especificada.

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

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

Aplica la política cuando crees una plantilla de instancias

Si deseas crear una plantilla de instancias regional, la plantilla y la política de posición compacta deben estar en la misma región. De lo contrario, la creación de la plantilla de instancias fallará.

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

Para crear una plantilla de instancias que especifique una política de posición compacta, usa uno de los siguientes métodos:

  • Para crear una plantilla de instancias regional con una nueva política de posición compacta, usa la consola de Google Cloud . La nueva política no especifica un valor de distancia máxima y puedes aplicarla a un máximo de 22 instancias.

  • Para crear una plantilla de instancias global o regional que especifique una política de posición compacta existente, usa gcloud CLI o la API de REST.

Para crear la plantilla de instancias, selecciona una de las siguientes opciones:

Console

  1. En la consola de Google Cloud , ve a la página Plantillas de instancias.

    Ir a Plantillas de instancia

  2. Haz clic en Crear plantilla de instancias. Aparecerá la página Crear una plantilla de instancias.

  3. En el campo Región, especifica la región en la que deseas crear la política de posición compacta y la plantilla de instancias.

  4. En la sección Configuración de máquina, especifica un tipo y una serie de máquinas compatibles para las políticas de posición compacta.

  5. En la sección Política de ubicación, en la lista Política de ubicación, selecciona Compacta. Cuando seleccionas esta opción, la consola deGoogle Cloud genera automáticamente una política de posición compacta sin un valor de distancia máxima y que admite hasta 22 instancias.

  6. Haz clic en Crear.

gcloud

Para crear una plantilla de instancias que especifique una política de posició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 instancias global que especifique una política de posició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

Reemplaza lo siguiente:

  • INSTANCE_TEMPLATE_NAME: el nombre de la plantilla de instancias.

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

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

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

REST

Para crear una plantilla de instancias que especifique una política de posición compacta, realiza 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 instancias global que especifique una política de posición de compactación, realiza 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"
    }
  }
}

Reemplaza lo siguiente:

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

  • INSTANCE_TEMPLATE_NAME: el nombre de la plantilla de instancias.

  • 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 compatibles, consulta Imágenes públicas.

  • IMAGE: especifica una de las siguientes opciones:

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

    • Una familia de imágenes, que debe tener el formato family/IMAGE_FAMILY. Esto especifica la imagen de SO no obsoleta más reciente. Por ejemplo, si especificas family/debian-12, se usa la versión más reciente de la familia de imágenes de Debian 12. Para obtener más información sobre el uso de las familias de imágenes, consulta Prácticas recomendadas para las familias de imágenes.

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

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

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

Si quieres obtener más información sobre las opciones de configuración para crear una plantilla de instancias, consulta Crea plantillas de instancias.

Aplica la política a las instancias en un MIG

Después de crear una plantilla de instancias que especifique una política de posición de compactación, puedes usar la plantilla para hacer lo siguiente:

Aplica la política mientras creas un MIG

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

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

gcloud

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

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

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

Reemplaza lo siguiente:

  • INSTANCE_GROUP_NAME: el nombre del MIG que se creará.

  • SIZE: el tamaño del MIG.

  • INSTANCE_TEMPLATE_NAME: el nombre de una plantilla de instancias existente que especifica una política de posición compacta.

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

REST

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

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

Reemplaza lo siguiente:

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

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

  • INSTANCE_GROUP_NAME: el nombre del MIG que se creará.

  • INSTANCE_TEMPLATE_NAME: el nombre de una plantilla de instancias existente que especifica una política de posición compacta.

  • SIZE: el tamaño del MIG.

Para obtener más información acerca de las opciones de configuración para crear MIG, consulta Situaciones básicas para crear MIG.

Aplica la política a un MIG existente

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

Para actualizar un MIG para usar una plantilla de instancias que especifique una política de posición compacta, elige una de las siguientes opciones:

gcloud

Para actualizar un MIG para usar una plantilla de instancias que especifique una política de posició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 instancias que especifique una política de posición compacta y reemplazar las instancias de procesamiento existentes del MIG por instancias de procesamiento nuevas 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

Reemplaza lo siguiente:

  • MIG_NAME: el nombre de un MIG existente.

  • INSTANCE_TEMPLATE_NAME: el nombre de una plantilla de instancias existente que especifica una política de posición compacta.

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

REST

Para actualizar un MIG para usar una plantilla de instancias que especifique una política de posición compacta y aplicar automáticamente las propiedades de la plantilla y la política de posición a las instancias de procesamiento existentes en el MIG, realiza una solicitud PATCH a uno de los siguientes métodos:

Por ejemplo, para actualizar un MIG zonal para usar una plantilla de instancias global que especifique una política de posición compacta y reemplazar las instancias de procesamiento existentes del MIG por instancias de procesamiento nuevas que especifiquen las propiedades de la plantilla, realiza 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"
}

Reemplaza lo siguiente:

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

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

  • MIG_NAME: el nombre de un MIG existente.

  • INSTANCE_TEMPLATE_NAME: el nombre de una plantilla de instancias existente que especifica una política de posición compacta.

Si deseas obtener más información sobre las opciones de configuración para actualizar las instancias de procesamiento en un MIG, consulta Actualiza y aplica configuraciones nuevas a las instancias en un MIG.

Verifica la ubicación física de una instancia

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

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

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

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

gcloud

Para ver la ubicación física de una instancia de procesamiento que especifica una política de posición de compactación, 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

Reemplaza lo siguiente:

  • INSTANCE_NAME: El nombre de una instancia de procesamiento existente que especifica una política de posición compacta.

  • ZONE: Es la zona en la que existe la instancia de procesamiento.

El resultado es similar a lo 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. Estas partes representan el clúster, el rack y el host en los que existe la instancia de procesamiento.

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

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

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

  • /CCCCCCC/BBBBBB/AAAA: Las dos instancias de procesamiento comparten el mismo host. Las instancias de procesamiento ubicadas en el mismo host minimizan la latencia de red tanto como sea posible.

REST

Para ver la ubicación física de una instancia de procesamiento que especifica una política de posición de compactación, realiza una solicitud GET al método instances.get.

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

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto en el que existe la instancia de procesamiento.

  • ZONE: Es la zona en la que existe la instancia de procesamiento.

  • INSTANCE_NAME: El nombre de una instancia de procesamiento existente que especifica una política de posición compacta.

El resultado es similar a lo 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. Estas partes representan el clúster, el rack y el host en los que existe la instancia de procesamiento.

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

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

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

  • /CCCCCCC/BBBBBB/AAAA: Las dos instancias de procesamiento comparten el mismo host. Las instancias de procesamiento ubicadas en el mismo host minimizan la latencia de red tanto como sea posible.

Próximos pasos