Crea un MIG que agregue VMs de GPU de una sola vez

En este documento, se explica cómo crear un grupo de instancias administrado (MIG) para agregar instancias de máquina virtual (VM) con GPU de una sola vez.

El MIG usa el modo masivo de su política de tamaño objetivo para agregar las VMs de una vez. También usa el modelo de aprovisionamiento de inicio flexible para mejorar la disponibilidad de los recursos. Para obtener más información sobre el modelo de aprovisionamiento de inicio flexible, consulta Acerca de los modelos de aprovisionamiento.

Otro método para agregar VMs de GPU de una sola vez en un MIG es crear solicitudes de cambio de tamaño. Para determinar si el modo masivo o la solicitud de cambio de tamaño son más adecuados para tu carga de trabajo, consulta la Comparación del modo masivo y la solicitud de cambio de tamaño.

Si tu carga de trabajo no requiere que el MIG cree VMs de una sola vez, pero aún deseas mejorar la disponibilidad de recursos, usa el modelo de aprovisionamiento de inicio flexible como se describe en Crea un MIG con VMs de inicio flexible.

Antes de comenzar

  • A fin de asegurarte de que tienes suficiente cuota de GPU para los recursos que solicitas, verifica tu cuota de GPU.
  • Para comprender el consumo de cuotas, consulta VMs de GPU y cuotas de asignación interrumpibles.
  • 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:

    Selecciona la pestaña que corresponda a la forma en que planeas usar las muestras de esta página:

    Console

    Cuando usas la consola de Google Cloud para acceder a los servicios y las APIs de Google Cloud , no necesitas configurar la autenticación.

    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.

  • Configura una región y una zona predeterminadas.
  • 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.

      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 .

Limitaciones

Se aplica la siguiente limitación:

Crea un MIG y agrega VMs de GPU de una sola vez

Para crear las VMs de GPU de una sola vez, haz lo siguiente:

  1. Crea una plantilla de instancias, que es necesaria para crear un MIG. Luego, el MIG usa esta plantilla para crear cada VM del grupo. En la plantilla, especifica la configuración del modelo de aprovisionamiento de inicio flexible.

    Para obtener más información sobre las plantillas de instancias, consulta Acerca de las plantillas de instancias.

  2. Crea un MIG para el aprovisionamiento masivo de VMs. Durante la creación del MIG, habilita la capacidad de aprovisionamiento masivo en el MIG estableciendo el modo de política de tamaño de destino en BULK. En el modo BULK, el MIG intenta crear todas las VMs a la vez para alcanzar el tamaño objetivo que estableciste.

Crea una plantilla de instancias

Crea una plantilla de instancias que especifique una serie de máquinas con GPU. Luego, usa la plantilla para crear un MIG.

Nota: Si deseas ejecutar cargas de trabajo de ciencia de datos o aprendizaje automático, considera usar una imagen de VM de aprendizaje profundo cuando crees una plantilla de instancia. Deep Learning VM Images es un conjunto de imágenes de VM ya preparadas que incluye frameworks de aprendizaje automático y herramientas esenciales. Para obtener más información sobre estas imágenes, consulta Elige una imagen en la documentación de Deep Learning VM Images.

Console

  1. 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 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, selecciona la cantidad.

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

  5. 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 instancias, en el campo Ingresa la cantidad de horas, ingresa la cantidad de horas. El valor debe estar entre una hora (1) y siete días (168).

  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. Haz clic en Crear.

gcloud

Crea una plantilla de instancias con el comando instance-templates create:

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

  • 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: Un tipo de máquina con 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.

  • RUN_DURATION: la duración de la que deseas que se ejecuten las VMs. Debes darle formato al valor como la cantidad de días, horas, minutos o segundos, seguidos de d, h, m o 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

Crea una plantilla de instancias mediante una solicitud POST al método instanceTemplates.insert:

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": {
      "instanceTerminationAction": "DELETE",
      "maxRunDuration": {
        "seconds": RUN_DURATION
      },
      "onHostMaintenance": "TERMINATE",
      "provisioningModel": "FLEX_START"
    }
  }
}

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto en el que deseas 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.

  • 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 con GPU. Si especificas un tipo de máquina N1, incluye el campo guestAccelerators para especificar la cantidad y el tipo de GPU que conectarás a las VMs.

  • RUN_DURATION: el tiempo, en segundos, por el que deseas que se ejecuten las VMs solicitadas antes de que el MIG las borre de forma automática. El valor debe estar entre 600, que es 600 segundos (10 minutos), y 604800, que es 604,800 segundos (siete días).

Después de crear la plantilla de instancias, puedes verla para consultar su ID y revisar sus propiedades.

Crea un MIG y agrega VMs de GPU de una sola vez

Crea un MIG como se describe en esta sección. Cuando habilites el aprovisionamiento masivo en el MIG, debes desactivar las reparaciones.

Console

  1. 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. Antes de seleccionar una plantilla de instancias, debes desactivar las reparaciones y establecer la ubicación de la siguiente manera:

    1. Para desactivar las reparaciones, haz lo siguiente:
      1. En la sección Ciclo de vida de la instancia de VM, desmarca la casilla de verificación Permitir la reparación de VMs en una zona alternativa.
      2. En la lista Acción predeterminada en caso de error, selecciona Sin acción.
    2. Para configurar la sección Ubicación, haz lo siguiente:
      • Para crear un MIG zonal, selecciona Single zone.
      • Para crear un MIG regional, selecciona Varias zonas. En Forma de distribución objetivo, selecciona Cualquier zona única. En el diálogo que aparece, selecciona Inhabilitar redistribución de instancias.
  5. Vuelve al campo Plantilla de instancias. En la lista Plantilla de instancias, selecciona la plantilla de instancias que creaste en la sección anterior.

  6. En el campo Cantidad de instancias, especifica la cantidad de instancias que deseas crear a la vez.

  7. Selecciona la casilla de verificación Obtén VMs de una vez con la política de tamaño objetivo masivo.

  8. Haz clic en Crear.

gcloud

Para crear un MIG con capacidad de aprovisionamiento masivo, usa el comando instance-groups managed create.

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

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
        --default-action-on-vm-failure=do-nothing \
        --size=SIZE \
        --target-size-policy-mode=bulk \
        --template=INSTANCE_TEMPLATE_URL \
        --zone=ZONE \
    
  • Para crear un MIG regional, ejecuta el siguiente comando:

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
        --default-action-on-vm-failure=do-nothing \
        --size=SIZE \
        --target-size-policy-mode=bulk \
        --template=INSTANCE_TEMPLATE_URL \
        --zones=LIST_OF_ZONES \
    

Reemplaza lo siguiente:

  • INSTANCE_GROUP_NAME: Es el nombre del MIG.
  • SIZE: Es la cantidad de VMs en el MIG.
  • INSTANCE_TEMPLATE_URL: Es la URL de la plantilla de instancias que deseas usar para crear instancias en el MIG. La URL puede contener el ID o el nombre de la plantilla de instancias. Especifica uno de los siguientes valores:
    • Para una plantilla de instancias regional: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • Para una plantilla de instancias global: INSTANCE_TEMPLATE_ID
  • ZONE: Es la zona en la que el MIG crea VMs.
  • LIST_OF_ZONES: Es una lista separada por comas de las zonas en las que el MIG regional crea VMs. Por ejemplo, us-central1-a, us-central1-b, us-central1-c.

REST

Para crear un MIG que tenga habilitada la creación masiva, realiza una solicitud POST de la siguiente manera. En el cuerpo de la solicitud, establece el campo targetSizePolicy.mode en bulk.

Si la plantilla de instancias que usas especifica el modelo de aprovisionamiento de inicio flexible, debes desactivar las reparaciones en el MIG. Para ello, incluye el campo "instanceLifecyclePolicy": {"defaultActionOnFailure": "DO_NOTHING"} en las siguientes solicitudes.

  • Para crear un MIG zonal, realiza una solicitud POST al método instanceGroupManagers.insert.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
    
    {
      "name": "INSTANCE_GROUP_NAME",
      "targetSize": SIZE,
      "targetSizePolicy": {
        "mode": "bulk"
      },
      "instanceLifecyclePolicy": {
          "defaultActionOnFailure": "DO_NOTHING"
      },
      "versions": [
        {
          "instanceTemplate": "INSTANCE_TEMPLATE_URL"
        }
      ]
    }
    
  • Para crear un MIG regional, realiza una solicitud POST al método regionInstanceGroupManagers.insert.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers
    
    {
      "name": "INSTANCE_GROUP_NAME",
      "targetSize": SIZE,
      "targetSizePolicy": {
        "mode": "bulk"
      },
      "instanceLifecyclePolicy": {
          "defaultActionOnFailure": "DO_NOTHING"
      },
      "versions": [
        {
          "instanceTemplate": "INSTANCE_TEMPLATE_URL"
        }
      ]
    }
    

Reemplaza lo siguiente:

  • PROJECT_ID:Es el ID del proyecto.
  • ZONE:Es la zona en la que el MIG crea VMs.
  • REGION:Es la región en la que el MIG crea VMs.
  • INSTANCE_GROUP_NAME:Es el nombre del MIG.
  • SIZE:Es la cantidad de VMs en el MIG.
  • INSTANCE_TEMPLATE_URL: Es la URL de la plantilla de instancias que deseas usar para crear instancias en el MIG. La URL puede contener el ID o el nombre de la plantilla de instancias. Especifica uno de los siguientes valores:
    • Para una plantilla de instancias regional: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • Para una plantilla de instancias global: INSTANCE_TEMPLATE_ID

¿Qué sigue?