Crea solicitudes de cambio de tamaño en un MIG


En este documento, se describe cómo crear solicitudes de cambio de tamaño en un grupo de instancias administrado (MIG) de instancias de máquina virtual (VM) que tengan GPU conectadas.

Crear solicitudes de cambio de tamaño en un MIG te ayuda a obtener recursos muy demandados, como las GPUs, y a optimizar los costos, ya que creas la cantidad exacta de VMs de una sola vez.

Antes de comenzar

  • Revisa cómo funcionan las solicitudes de cambio de tamaño.
  • A fin de asegurarte de que tienes suficiente cuota de GPU para los recursos que solicitas, verifica tu cuota de GPU.
  • Si aún no lo hiciste, configura la autenticación. La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API 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. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    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.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

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

Roles obligatorios

Para obtener los permisos que necesitas para crear solicitudes de cambio de tamaño en un MIG, pídele a tu administrador que te otorgue el rol de IAM Administrador de instancias de Compute (v1) (roles/compute.instanceAdmin.v1) en el proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene los permisos necesarios para crear solicitudes de cambio de tamaño en un MIG. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para crear solicitudes de cambio de tamaño en un MIG:

  • Para crear una plantilla de instancias: compute.instanceTemplates.create en el proyecto
  • Para crear un MIG zonal: compute.instanceGroupManagers.create en el proyecto
  • Para crear solicitudes de cambio de tamaño en un MIG: compute.instanceGroupManagers.update en el proyecto

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

Prepara un MIG para las solicitudes de cambio de tamaño

Para crear solicitudes de cambio de tamaño en un MIG, debes configurar una plantilla de instancias y el MIG como se describe en las siguientes secciones.

Crea una plantilla de instancias

Si deseas crear solicitudes de cambio de tamaño en un MIG, este debe usar una plantilla de instancias con las siguientes configuraciones:

Para crear una plantilla de instancias configurada para crear solicitudes de cambio de tamaño en un MIG, selecciona una de las siguientes opciones:

Console

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

    Ir a Plantillas de instancia

  2. Haz clic en Crear plantilla de instancias.

  3. En el campo Nombre, ingresa un nombre para la plantilla de instancias.

  4. En la sección Ubicación, selecciona una de las siguientes opciones:

    • Para crear una plantilla de instancias global, selecciona Global, si aún no está seleccionada.

    • Para crear una plantilla de instancias regional, selecciona Regional y, luego, la región en la que deseas crear la plantilla de instancias.

  5. En la sección Configuración de la máquina, haz lo siguiente:

    1. Haz clic en la pestaña GPU.

    2. En la lista Tipo de GPU, selecciona el tipo de GPU.

    3. En la lista Cantidad de GPU, elige la cantidad.

    4. Opcional: Si tu modelo de GPU es compatible con estaciones de trabajo virtuales (vWS) NVIDIA RTX para cargas de trabajo de gráficos y planeas ejecutar cargas de trabajo de alto contenido gráfico, selecciona Habilitar estación de trabajo virtual (NVIDIA GRID).

    5. En la sección Tipo de máquina, selecciona un tipo de máquina.

  6. Opcional: Para cambiar el valor o la imagen de disco de arranque predeterminados, en la sección Disco de arranque, haz clic en Cambiar. Luego, sigue las instrucciones para cambiar el disco de arranque.

  7. Expande la sección Opciones avanzadas y sigue estos pasos:

    1. Expande la sección Administración.

    2. En la lista Reservas, selecciona No usar.

  8. Haz clic en Crear.

gcloud

Para crear una plantilla de instancias configurada a fin de crear solicitudes de cambio de tamaño en un MIG, usa el comando instance-templates create con las siguientes marcas:

  • La marca --maintenance-policy configurada como TERMINATE.

  • La marca --reservation-affinity configurada como none.

Por ejemplo, usa el siguiente comando para crear una plantilla de instancias regional. Si deseas crear una plantilla de instancias global, usa el mismo comando sin la marca --instance-template-region.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --image-project=IMAGE_PROJECT \
    --image-family=IMAGE_FAMILY \
    --instance-template-region=REGION \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=TERMINATE \
    --reservation-affinity=none

Reemplaza lo siguiente:

  • INSTANCE_TEMPLATE_NAME: el nombre de la plantilla de instancias que se creará.

  • 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_FAMILY: Es una familia de imágenes. Esto especifica la imagen de SO no obsoleta más reciente. Por ejemplo, si especificas 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.

    Si deseas usar una versión específica de la imagen de SO, como debian-12-buster-v20240701, reemplaza la marca --image-family por la marca --image.

  • REGION: Es la región en la que se creará la plantilla de instancias.

  • MACHINE_TYPE: un tipo de máquina que admite GPU. Si especificas un tipo de máquina N1, incluye la marca --accelerator para especificar la cantidad y el tipo de GPU que conectarás a las VMs.

REST

Para crear una plantilla de instancias configurada para crear solicitudes de cambio de tamaño en un MIG, realiza una solicitud POST a uno de los siguientes métodos:

En el cuerpo de la solicitud, haz lo siguiente:

  • Incluye el campo scheduling.onHostMaintenance y configúralo como TERMINATE.

  • Incluye el campo reservationAffinity.consumeReservationType y configúralo como NO_RESERVATION.

Por ejemplo, para crear una plantilla de instancias regional, realiza una solicitud POST de la siguiente manera:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/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"
      }
    ],
    "reservationAffinity": {
      "consumeReservationType": "NO_RESERVATION"
    },
    "scheduling": {
      "onHostMaintenance": "TERMINATE"
    }
  }
}

Reemplaza lo siguiente:

  • PROJECT_ID: el ID del proyecto en el que se creará la plantilla de instancias.

  • REGION: Es la región en la que se creará la plantilla de instancias.

  • INSTANCE_TEMPLATE_NAME: el nombre de la plantilla de instancias que se creará.

  • 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 que admite GPU. Si especificas un tipo de máquina N1, incluye elcampo guestAccelerators en el cuerpo de la solicitud a fin de especificar la cantidad y el tipo de GPU que se conectarán a las VMs.

Para obtener más información sobre cómo crear una plantilla de instancias, consulta Crea plantillas de instancias.

Crea o actualiza un MIG

Después de crear la plantilla de instancias como se describe en la sección anterior, úsala para crear un MIG como se indica a continuación o actualizar un MIG. Además, debes hacer lo siguiente a fin de preparar el MIG para las solicitudes de cambio de tamaño:

Para crear un MIG que sea compatible con las solicitudes de cambio de tamaño, selecciona una de las siguientes opciones:

Console

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

    Ir a Grupos de instancias

  2. Haz clic en Crear grupo de instancias.

    Se abre la página Crear grupo de instancias.

  3. En el campo Nombre, ingresa un nombre para el MIG.

  4. En la lista Plantilla de instancias, selecciona la plantilla de instancias que creaste en la sección anterior. Si seleccionas una plantilla de instancias regional, la lista Región se establece en la región de la plantilla de instancias.

  5. En la sección Ubicación, especifica si deseas crear un MIG regional o zonal de la siguiente manera:

    1. Para crear un MIG zonal, selecciona Zona única. O bien, para crear un MIG regional, selecciona Varias zonas.

    2. Selecciona la región y las zonas del MIG.

    3. Si creas un MIG regional, haz lo siguiente:

      1. En el campo Forma de distribución objetivo, selecciona Cualquier zona. Puedes seleccionar esta opción solo después de borrar la configuración del ajuste de escala automático en los pasos siguientes.

      2. Después de seleccionar la opción de cualquier zona única, en el diálogo que aparece, haz clic en Inhabilitar la redistribución de instancias.

  6. Borra la configuración del ajuste de escala automático de la siguiente manera:

    1. En la sección Ajuste de escala automático, haz clic en la lista Modo de ajuste de escala automático y, luego, en Borrar configuración del ajuste de escala automático.

    2. En el diálogo de confirmación, haz clic en Borrar.

  7. Desactiva las reparaciones de la siguiente manera:

    1. En la sección Ciclo de vida de la instancia de VM, haz clic en la lista Acción predeterminada en caso de error.

    2. Selecciona No realizar ninguna acción.

  8. Realiza una de las siguientes acciones:

    • Para crear una solicitud de cambio de tamaño en este punto, haz lo siguiente:

      1. En el campo Cantidad de instancias, ingresa la cantidad de VMs que deseas crear a la vez.

        El campo Cantidad de instancias en la página Crear grupo de instancias.

      2. Selecciona la casilla de verificación Usa la solicitud de cambio de tamaño para crear VMs de una sola vez.

      3. En el campo Duración de ejecución solicitada y la lista Unidad, especifica la duración de ejecución de las VMs. La duración debe ser de entre 1 hora y 7 días.

    • De lo contrario, en el campo Cantidad de instancias, ingresa 0. Luego, puedes crear solicitudes de cambio de tamaño para agregar VMs al grupo.

  9. Haz clic en Crear.

gcloud

Usa el comando instance-groups managed create con la marca --default-action-on-vm-failure configurada como do_nothing. Si creas un MIG regional, también debes incluir la marca --target-distribution-shape establecida en any-single-zone y la marca --instance-redistribution-type establecida en none.

  • Para crear un MIG zonal, ejecuta el siguiente comando:

    gcloud compute instance-groups managed create INSTANCE_GROUP_URL \
      --template=INSTANCE_TEMPLATE_NAME \
      --size=0 \
      --zone=ZONE \
      --default-action-on-vm-failure=do_nothing
    
  • Para crear un MIG regional, ejecuta el siguiente comando:

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
        --template=INSTANCE_TEMPLATE_URL \
        --size=0 \
        --region=REGION \
        --target-distribution-shape=any-single-zone \
        --instance-redistribution-type=none \
        --default-action-on-vm-failure=do_nothing
    

Reemplaza lo siguiente:

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

  • INSTANCE_TEMPLATE_URL: Es la URL parcial de la plantilla de instancias que creaste en la sección anterior. Si deseas usar una plantilla de instancias regional para crear el MIG, solo puedes crearlo dentro de la región de la plantilla. Especifica uno de los siguientes valores:

    • Para una plantilla de instancias regional: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_NAME

    • Para una plantilla de instancias global: INSTANCE_TEMPLATE_NAME

  • ZONE: La zona en la que se creará el MIG.

  • REGION: La región en la que se creará el MIG.

REST

  • Para crear un MIG zonal, envía una solicitud POST con el método instanceGroupManagers.insert de la siguiente manera:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
    
    {
      "versions": [
        {
          "instanceTemplate": "INSTANCE_TEMPLATE_URL"
        }
      ],
      "name": "INSTANCE_GROUP_NAME",
      "targetSize": 0,
      "instanceLifecyclePolicy": {
        "defaultActionOnFailure": "DO_NOTHING"
      }
    }
    
  • Para crear un MIG regional, envía una solicitud POST con el método regionInstanceGroupManagers.insert de la siguiente manera:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers
    
    {
      "versions": [
        {
          "instanceTemplate": "INSTANCE_TEMPLATE_URL"
        }
      ],
      "name": "INSTANCE_GROUP_NAME",
      "targetSize": 0,
      "distributionPolicy": {
        "targetShape": "ANY_SINGLE_ZONE"
      },
      "updatePolicy": {
        "instanceRedistributionType": "NONE"
      },
      "instanceLifecyclePolicy": {
        "defaultActionOnFailure": "DO_NOTHING"
      }
    }
    

Reemplaza lo siguiente:

  • PROJECT_ID: el ID del proyecto en el que se encuentra la plantilla de instancias que creaste en la sección anterior.

  • INSTANCE_TEMPLATE_URL: Es la URL parcial de la plantilla de instancias que creaste en la sección anterior. Si deseas usar una plantilla de instancias regional para crear el MIG, solo puedes crearlo dentro de la región de la plantilla. Especifica uno de los siguientes valores:

    • Para una plantilla de instancias regional: regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_NAME

    • Para una plantilla de instancias global: global/instanceTemplates/INSTANCE_TEMPLATE_NAME

  • ZONE: La zona en la que se creará el MIG.

  • REGION: La región en la que se creará el MIG.

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

Crea una solicitud de cambio de tamaño en un MIG

Antes de crear solicitudes de cambio de tamaño, asegúrate de haber preparado el MIG como se describe en la sección anterior.

Después de crear una solicitud de cambio de tamaño, la solicitud se acepta y todos los recursos solicitados están disponibles, el MIG crea la cantidad solicitada de VMs a la vez. Las VMs se ejecutan hasta que el MIG las borra después de que finaliza la duración de ejecución especificada o hasta que las borras.

Para crear una solicitud de cambio de tamaño en un MIG, selecciona una de las siguientes opciones:

Console

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

    Ir a Grupos de instancias

  2. En la columna Nombre, haz clic en el nombre del MIG en el que deseas crear la solicitud de cambio de tamaño.

    Se abrirá la página de resumen del MIG.

  3. En la fila Solicitud de cambio de tamaño, haz clic en Editar solicitudes de cambio de tamaño.

  4. Haz clic en Nueva solicitud de cambio de tamaño.

    Aparecerá el panel Nuevas solicitudes de cambio de tamaño.

  5. En el campo Nombre, ingresa el nombre de la solicitud de cambio de tamaño.

  6. En el campo Cantidad de instancias adicionales necesarias, ingresa la cantidad de VMs que deseas agregar al MIG de una sola vez.

  7. En los campos Duración de ejecución solicitada y Unidad, especifica la duración durante la que deseas que se ejecuten las VMs solicitadas. La duración debe ser de entre 1 hora y 7 días.

  8. Haz clic en Crear.

gcloud

  • Para crear una solicitud de cambio de tamaño en un MIG zonal, usa el comando instance-groups managed resize-requests create.

    gcloud compute instance-groups managed resize-requests create INSTANCE_GROUP_NAME \
        --resize-request=RESIZE_REQUEST_NAME \
        --resize-by=COUNT \
        --requested-run-duration=RUN_DURATION \
        --zone=ZONE
    
  • Para crear una solicitud de cambio de tamaño en un MIG regional, usa el comando beta instance-groups managed resize-requests create.

    gcloud beta compute instance-groups managed resize-requests create INSTANCE_GROUP_NAME \
        --resize-request=RESIZE_REQUEST_NAME \
        --resize-by=COUNT \
        --requested-run-duration=RUN_DURATION \
        --region=REGION
    

Reemplaza lo siguiente:

  • INSTANCE_GROUP_NAME: el nombre del MIG configurado para crear solicitudes de cambio de tamaño en él.

  • RESIZE_REQUEST_NAME: el nombre de la solicitud de cambio de tamaño, que debe ser única dentro del MIG especificado. De lo contrario, la creación de la solicitud de cambio de tamaño fallará.

  • COUNT: la cantidad de VMs que se agregarán al MIG a la vez.

  • RUN_DURATION: la duración de la que deseas que se ejecuten las VMs. El valor debe tener el formato de la cantidad de días, horas, minutos o segundos, seguidos de d, h, m y s, respectivamente. Por ejemplo, especifica 30m para 30 minutos o 1d2h3m4s para 1 día, 2 horas, 3 minutos y 4 segundos. El valor debe ser de entre 10 minutos y 7 días.

  • ZONE: La zona en la que se encuentra el MIG.

  • REGION: la región en la que se encuentra el MIG.

REST

  • Para crear una solicitud de cambio de tamaño en un MIG zonal, envía una solicitud POST con el método instanceGroupManagerResizeRequests.insert.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests
    
  • Para crear una solicitud de cambio de tamaño en un MIG regional, envía una solicitud POST con el método beta.regionInstanceGroupManagerResizeRequests.insert.

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests
    

En el cuerpo de la solicitud, incluye lo siguiente:

{
  "name": "RESIZE_REQUEST_NAME",
  "resizeBy": COUNT,
  "requestedRunDuration": {
    "seconds": "RUN_DURATION"
  }
}

Reemplaza lo siguiente:

  • PROJECT_ID: el ID del proyecto en el que se encuentra el MIG especificado.

  • ZONE: La zona en la que se encuentra el MIG.

  • REGION: la región en la que se encuentra el MIG.

  • INSTANCE_GROUP_NAME: Es el nombre del MIG configurado para crear solicitudes de cambio de tamaño en él.

  • RESIZE_REQUEST_NAME: el nombre de la solicitud de cambio de tamaño, que debe ser única dentro del MIG especificado. De lo contrario, la creación de la solicitud de cambio de tamaño fallará.

  • COUNT: la cantidad de VMs que se agregarán a la vez al MIG.

  • RUN_DURATION: Es la duración, en segundos, por la que deseas que se ejecuten las VMs solicitadas. El valor debe estar entre 600, que es 600 segundos (10 minutos), y 604800, que es 604,800 segundos (7 días).

Después de crear una solicitud de cambio de tamaño, puedes ver su estado o solucionar problemas. Para ello, consulta los detalles de la solicitud de cambio de tamaño.

¿Qué sigue?