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. Para obtener más información sobre las solicitudes de cambio de tamaño, consulta Acerca de las solicitudes de cambio de tamaño en un MIG.

Crear una solicitud de cambio de tamaño de MIG te ayuda a obtener recursos con alta demanda, como GPUs, y a optimizar los costos, ya que crea la cantidad exacta de VMs de una sola vez. Para crear una solicitud de cambio de tamaño de MIG que pueda usar las funciones y los servicios disponibles en el Director de clústeres, consulta Cómo crear un MIG y una solicitud de cambio de tamaño en la documentación de Hypercomputer de IA.

Antes de comenzar

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

Para obtener los permisos que necesitas para crear solicitudes de cambio de tamaño de 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 de 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 de 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 una solicitud de cambio de tamaño de MIG, usa 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 de MIG, debes configurar una plantilla de instancias y el MIG como se describe en las siguientes secciones.

Crea una plantilla de instancias

Para crear una plantilla de instancias configurada para crear solicitudes de cambio de tamaño de MIG, especifica lo siguiente en la plantilla:

Para crear una plantilla de instancias configurada para crear solicitudes de cambio de tamaño de MIG, 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. Se abrirá la página Crear una 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 regional, selecciona Regional (recomendado) y, luego, la región en la que deseas crear la plantilla.

    • Para crear una plantilla de instancias global, selecciona Global.

  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 un tipo de GPU.

    3. En la lista Cantidad de GPU, selecciona 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. En la sección Modelo de aprovisionamiento, haz lo siguiente:

    1. En la lista Modelo de aprovisionamiento de VM, selecciona Inicio flexible.

    2. Para establecer una duración de ejecución para las VMs creadas a través de la plantilla de instancia, en el campo Enter number of hours, ingresa la cantidad de horas. El valor debe estar entre una hora (1) y siete días (168).

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

  8. Haz clic en Crear.

gcloud

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

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

  • La marca --instance-termination-action configurada como DELETE.

  • La marca --max-run-duration

  • La marca --provisioning-model configurada como FLEX_START.

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

El siguiente comando crea una plantilla de instancias regional. Para crear una plantilla de instancias global, usa el mismo comando sin la marca --instance-template-region.

gcloud beta compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --image-project=IMAGE_PROJECT \
    --image-family=IMAGE_FAMILY \
    --instance-termination-action=DELETE \
    --instance-template-region=REGION \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=TERMINATE \
    --max-run-duration=RUN_DURATION \
    --provisioning-model=FLEX_START \
    --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.

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

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

  • RUN_DURATION: la duración de la que deseas que se ejecuten las VMs. Debes dar formato al valor como 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 un día, dos horas, tres minutos y cuatro segundos. El valor debe ser de entre 10 minutos y siete días.

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, incluye los siguientes campos:

  • El campo scheduling.onHostMaintenance configurado como TERMINATE.

  • El campo scheduling.instanceTerminationAction configurado como DELETE.

  • El campo scheduling.maxRunDuration

  • El campo scheduling.provisioningModel configurado como FLEX_START.

  • El campo reservationAffinity.consumeReservationType configurado 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/beta/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": {
      "instanceTerminationAction": "DELETE",
      "maxRunDuration": {
        "seconds": RUN_DURATION
      },
      "onHostMaintenance": "TERMINATE",
      "provisioningModel": "FLEX_START"
    }
  }
}

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: Es un tipo de máquina de GPU. Si especificas un tipo de máquina N1, incluye el campo guestAccelerators en el cuerpo de la solicitud para definir la cantidad y el tipo de GPU que se conectarán a las VMs.

  • 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 (siete días).

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 abrirá la página Crear grupo de instancias.

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

  4. Antes de seleccionar una plantilla de instancia, debes borrar la configuración del ajuste de escala automático y desactivar las reparaciones de la siguiente manera:

    1. Para borrar la configuración del ajuste de escala automático, haz lo siguiente:

      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.

    2. Para desactivar las reparaciones, en la sección Ciclo de vida de la instancia de VM, haz clic en la lista Acción predeterminada en caso de error y, luego, selecciona Sin acción.

  5. Regresa al campo Plantilla de instancias. 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.

  6. Realiza una de las siguientes acciones:

    • Para crear una solicitud de cambio de tamaño cuando crees el MIG, haz lo siguiente:

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

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

      3. Opcional: Para especificar una duración de ejecución diferente para las VMs que la establecida en la plantilla de instancias, en el campo Duración de ejecución solicitada y las listas Unidad, especifica una duración. La duración debe ser de entre una hora y siete días.

    • Para crear una solicitud de cambio de tamaño después de crear el MIG, en el campo Cantidad de instancias, ingresa 0.

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

      2. En el cuadro de diálogo que aparece, haz clic en Disable instance redistribution.

  8. 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_NAME \
        --template=INSTANCE_TEMPLATE_URL \
        --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: Es el ID del proyecto en el que existe 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 de MIG, 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 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. Para agregar VMs con nombres específicos al MIG a través de una solicitud de cambio de tamaño, usa gcloud CLI o la API de REST.

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. Opcional: Para especificar una duración de ejecución diferente para las VMs a la que se estableció en la plantilla de instancias, en los campos Duración de ejecución solicitada y Unidad, especifica una duración. La duración debe ser de entre una hora y siete 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 \
        --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 \
        --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.

  • ZONE: Es la zona en la que existe el MIG.

  • REGION: Es la región en la que existe el MIG.

De manera opcional, puedes hacer lo siguiente:

REST

En el cuerpo de la solicitud, incluye lo siguiente:

{
  "name": "RESIZE_REQUEST_NAME",
  "resizeBy": COUNT
}

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto en el que existe el MIG especificado.

  • ZONE: Es la zona en la que existe el MIG.

  • REGION: Es la región en la que existe el MIG.

  • 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 a la vez al MIG.

De manera opcional, puedes hacer lo siguiente:

¿Qué sigue?