Cree y aplique políticas de colocación extendida a máquinas virtuales


Este documento describe cómo mejorar la confiabilidad de sus instancias de máquina virtual (VM) creando y aplicándoles políticas de ubicación extendida. Para obtener más información sobre las políticas de ubicación, incluidas sus restricciones y precios, consulte Descripción general de las políticas de ubicación .

Una política de ubicación distribuida especifica que sus máquinas virtuales deben distribuirse en diferentes dominios de disponibilidad. Esta distribución ayuda a mitigar las interrupciones específicas de la ubicación, como errores de hardware, y es útil cuando se ejecutan cargas de trabajo replicadas, distribuidas y a gran escala como Hadoop Distributed File System (HDFS), Cassandra o Kafka.

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 distribuida a las máquinas virtuales, solicite a su administrador que le otorgue el rol de IAM de Administrador de instancias informáticas (v1) ( roles/compute.instanceAdmin.v1 ) en su proyecto. Para obtener más información sobre cómo otorgar roles, consulte Administrar el acceso a proyectos, carpetas y organizaciones .

Esta función predefinida contiene los permisos necesarios para crear y aplicar una política de ubicación distribuida 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 distribuida 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 plantilla de instancia: compute.instanceTemplates.create en el proyecto
  • Para crear un grupo de instancias administrado (MIG): compute.instanceGroupManagers.create en el proyecto

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

Crear una política de colocación de diferenciales

A menos que desee probar la aplicación de la política de colocación extendida a sus máquinas virtuales, Google Cloud recomienda crear políticas de colocación distribuida con dos o más dominios de disponibilidad. Esto mitiga el riesgo de que todas las máquinas virtuales se vean afectadas por un único error de hardware. Para obtener más información, consulte Acerca de las políticas de colocación de diferenciales .

Para crear una política de colocación de diferenciales, seleccione una de las siguientes opciones:

nube de gcloud

Para crear una política de ubicación distribuida, use el gcloud compute resource-policies create group-placement con la marca --availability-domain-count .

gcloud compute resource-policies create group-placement POLICY_NAME \
    --availability-domain-count=DOMAIN_COUNT \
    --region=REGION

Reemplace lo siguiente:

  • POLICY_NAME : el nombre de la política de colocación de pliegos.

  • DOMAIN_COUNT : el número distinto de dominios de disponibilidad en los que colocar sus máquinas virtuales. El valor debe estar entre 1 y 8 .

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

DESCANSAR

Para crear una política de colocación de difusión, realice una solicitud POST al método resourcePolicies.insert . En el cuerpo de la solicitud, incluya el campo availabilityDomainCount .

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies

{
  "name": "POLICY_NAME",
  "groupPlacementPolicy": {
    "availabilityDomainCount": DOMAIN_COUNT
  }
}

Reemplace lo siguiente:

  • PROJECT_ID : el ID del proyecto en el que 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 colocación de pliegos.

  • DOMAIN_COUNT : el número distinto de dominios de disponibilidad en los que colocar sus máquinas virtuales. El valor debe estar entre 1 y 8 .

Aplicar una política de colocación de diferenciales

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

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

Después de aplicar una política de ubicación distribuida a una máquina virtual, puede verificar el dominio de disponibilidad en el que se encuentra la máquina virtual viendo los detalles de la máquina virtual y verificando el valor del campo availabilityDomain .

Aplicar la política a una VM existente

Antes de aplicar una política de colocación extendida a una máquina virtual existente, considere lo siguiente:

  • Si su política de ubicación distribuida especifica múltiples dominios de disponibilidad, puede aplicar la política a una máquina virtual sin detenerla. Sin embargo, es posible que sea necesario reubicar la máquina virtual en un dominio de disponibilidad diferente. Durante este proceso, Compute Engine detiene o migra en vivo la VM según su política de mantenimiento de host .

  • La máquina virtual y la política de colocación extendida deben estar ubicadas en la misma región. Por ejemplo, si la política de ubicación está ubicada en la región us-central1 , entonces la máquina virtual debe estar ubicada en una zona en us-central1 . Si necesita migrar una máquina virtual a otra región, consulte Mover una máquina virtual entre zonas o regiones .

Si desea especificar el dominio de disponibilidad en el que colocar su máquina virtual, aplique la política de ubicación a la máquina virtual actualizando sus propiedades . Al actualizar las propiedades de la VM, asegúrese de incluir los campos resourcePolicies y scheduling.availabilityDomain .

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

nube de gcloud

Para aplicar una política de ubicación distribuida 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 colocación de diferenciales existente.

  • ZONE : la zona donde se encuentra la VM.

DESCANSAR

Para aplicar una política de colocación extendida 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 colocación extendida 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 de diferenciales.

  • POLICY_NAME : el nombre de una política de colocación de diferenciales existente.

Aplicar la política al crear una VM

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

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

nube de gcloud

Para crear una máquina virtual que especifique una política de ubicación distribuida, use el comando gcloud compute instances create con la marca --resource-policies .

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

Reemplace lo siguiente:

  • VM_NAME : el nombre de la VM a crear.

  • MACHINE_TYPE : el tipo de máquina para la VM.

  • POLICY_NAME : el nombre de una política de colocación de diferenciales existente.

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

Opcionalmente, para especificar el dominio de disponibilidad en el que crear la máquina virtual, incluya el indicador --availability-domain .

gcloud compute instances create VM_NAME \
    --availability-domain=DOMAIN_NUMBER \
    --machine-type=MACHINE_TYPE \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

Reemplace DOMAIN_NUMBER con el número del dominio de disponibilidad en el que colocar su VM. El valor debe estar entre 1 y el número de dominios especificados en la política de colocación extendida. Para verificar la cantidad de dominios en una política de ubicación distribuida, consulte los detalles de la política de ubicación .

DESCANSAR

Para crear una máquina virtual que especifique una política de ubicación extendida, realice una solicitud POST al método instances.insert . En el cuerpo de la solicitud, incluya el campo 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"
  ]
}

Reemplace lo siguiente:

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

  • 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 colocación extendida.

  • VM_NAME : el nombre de la VM a crear.

  • MACHINE_TYPE : el tipo de máquina para la VM.

  • 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 colocación de diferenciales.

  • POLICY_NAME : el nombre de una política de colocación de diferenciales existente.

Opcionalmente, para especificar el dominio de disponibilidad en el que crear la máquina virtual, incluya el campo availabilityDomain en el cuerpo de la solicitud.

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": {
    "availabilityDomain": DOMAIN_NUMBER
  }
}

Reemplace DOMAIN_NUMBER con el número del dominio de disponibilidad en el que colocar su VM. El valor debe estar entre 1 y el número de dominios especificados en la política de colocación extendida. Para verificar la cantidad de dominios en una política de ubicación distribuida, consulte los detalles de la política de ubicación .

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

Antes de crear máquinas virtuales de forma masiva que especifiquen una política de ubicación distribuida, asegúrese de lo siguiente:

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

  • Al crear máquinas virtuales de forma masiva con una política de ubicación distribuida, opcionalmente puede especificar el dominio de disponibilidad en el que crear sus máquinas virtuales. Evite crear todas sus máquinas virtuales en un solo dominio. De lo contrario, no mitiga el riesgo de que un único error de hardware afecte a todas sus máquinas virtuales.

Para crear máquinas virtuales de forma masiva que especifiquen una política de ubicación distribuida, 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 distribuida, use el comando gcloud compute instances bulk create con la marca --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 \
    --name-pattern=NAME_PATTERN \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

Reemplace lo siguiente:

  • COUNT : el número de máquinas virtuales que se van a crear.

  • MACHINE_TYPE : el tipo de máquina para las máquinas virtuales.

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

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

Opcionalmente, para especificar el dominio de disponibilidad en el que crear las máquinas virtuales de forma masiva, incluya la marca --availability-domain .

gcloud compute instances bulk create \
    --availability-domain=DOMAIN_NUMBER \
    --count=COUNT \
    --machine-type=MACHINE_TYPE \
    --name-pattern=NAME_PATTERN \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

Reemplace DOMAIN_NUMBER con el número del dominio de disponibilidad en el que colocar su VM. El valor debe estar entre 1 y el número de dominios especificados en la política de colocación extendida. Para verificar la cantidad de dominios en una política de ubicación distribuida, consulte los detalles de la política de ubicación .

DESCANSAR

Para crear máquinas virtuales de forma masiva que especifiquen una política de ubicación distribuida, realice una POST en el método instances.bulkInsert . En el cuerpo de la solicitud, incluya el campo 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": [
      "POLICY_NAME"
    ]
  }
}

Reemplace lo siguiente:

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

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

  • COUNT : el número de máquinas virtuales que se van a crear.

  • 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 : el tipo de máquina para las máquinas virtuales.

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

  • POLICY_NAME : el nombre de una política de colocación de diferenciales existente.

Opcionalmente, para especificar el dominio de disponibilidad en el que crear las máquinas virtuales de forma masiva, incluya el campo availabilityDomain en el cuerpo de la solicitud.

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": [
      "POLICY_NAME"
    ],
    "scheduling": {
      "availabilityDomain": DOMAIN_NUMBER
    }
  }
}

Reemplace DOMAIN_NUMBER con el número del dominio de disponibilidad en el que colocar su VM. El valor debe estar entre 1 y el número de dominios especificados en la política de colocación extendida. Para verificar la cantidad de dominios en una política de ubicación distribuida, consulte los detalles de la política de ubicación .

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 mientras se crea una plantilla de instancia

Antes de crear una plantilla de instancia que especifique una política de colocación extendida, asegúrese de lo siguiente:

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

  • Al crear una plantilla de instancia, opcionalmente puede especificar el dominio de disponibilidad en el que crear máquinas virtuales. Evite crear todas sus máquinas virtuales en un solo dominio. De lo contrario, no mitiga el riesgo de que un único error de hardware afecte a todas sus máquinas virtuales.

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

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

nube de gcloud

Para crear una plantilla de instancia que especifique una política de ubicación distribuida, use el gcloud compute instance-templates create con la marca --resource-policies .

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

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

Reemplace lo siguiente:

  • INSTANCE_TEMPLATE_NAME : el nombre de la plantilla de instancia.

  • MACHINE_TYPE : el tipo de máquina para las VM creadas usando la plantilla de instancia.

  • POLICY_NAME : el nombre de una política de colocación de diferenciales existente.

Opcionalmente, para especificar el dominio de disponibilidad en el que crear las máquinas virtuales, incluya el indicador --availability-domain .

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --availability-domain=DOMAIN_NUMBER  \
    --machine-type=MACHINE_TYPE \
    --resource-policies=POLICY_NAME

Reemplace DOMAIN_NUMBER con el número del dominio de disponibilidad para crear sus máquinas virtuales. El valor debe estar entre 1 y el número de dominios especificados en la política de ubicación. Para verificar la cantidad de dominios en una política de ubicación distribuida, consulte los detalles de la política de ubicación .

DESCANSAR

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

En el cuerpo de la solicitud, especifique el campo resourcePolicies .

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

Reemplace lo siguiente:

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

  • 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 : el tipo de máquina para las VM creadas usando la plantilla de instancia.

  • POLICY_NAME : el nombre de una política de colocación de diferenciales existente.

Opcionalmente, para especificar el dominio de disponibilidad en el que crear las máquinas virtuales, incluya el campo availabilityDomain en el cuerpo de la solicitud.

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": {
      "availabilityDomain": DOMAIN_NUMBER
    }
  }
}

Reemplace DOMAIN_NUMBER con el número del dominio de disponibilidad para crear sus máquinas virtuales. El valor debe estar entre 1 y el número de dominios especificados en la política de ubicación. Para verificar la cantidad de dominios en una política de ubicación distribuida, consulte los detalles de la política de ubicación .

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 instancia que especifica una política de colocación extendida, 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 distribuida 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 colocación extendida, 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 distribuida, 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 extendida, 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 extendida.

  • 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 de spread.

DESCANSAR

Para crear un MIG utilizando una plantilla de instancia que especifica una política de colocación extendida, 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 extendida, 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 colocación extendida y la plantilla de instancia que especifica la política de colocació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 de spread.

  • 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 extendida.

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 colocación extendida a un MIG existente si el MIG está ubicado en la misma región que la política de colocación o, para MIG zonales, en una zona dentro de la misma región que la política de colocación.

Para actualizar un MIG para usar una plantilla de instancia que especifica una política de colocación extendida, 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 extendida, 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 distribuida y reemplazar las máquinas virtuales existentes del MIG con nuevas máquinas virtuales que especifiquen las propiedades de la plantilla, ejecute el siguiente comando:

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

Reemplace lo siguiente:

  • INSTANCE_GROUP_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 extendida.

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

DESCANSAR

Para actualizar un MIG para usar una plantilla de instancia que especifica una política de ubicación extendida 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 especifica una política de ubicación distribuida y reemplazar las VM existentes del MIG con nuevas VM que especifican las propiedades de la plantilla, realice la siguiente solicitud PATCH :

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

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

Reemplace lo siguiente:

  • PROJECT_ID : el ID del proyecto que utilizó para crear un MIG existente, la política de colocación extendida y la plantilla de instancia que especifica la política de colocación extendida.

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

  • INSTANCE_GROUP_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 extendida.

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 .

¿Qué sigue?