Crear un MIG con VMs con GPU


En este documento se describe cómo crear un grupo de instancias gestionado (MIG) con instancias de máquina virtual (VM) que tengan GPUs conectadas. En él se describe cómo añadir VMs con GPU a la vez en un MIG zonal mediante solicitudes de cambio de tamaño y el modelo de aprovisionamiento de inicio flexible. Si quieres crear una solicitud de cambio de tamaño de MIG para consumir una reserva, consulta lo siguiente:

Usa una solicitud de cambio de tamaño de MIG con el modelo de aprovisionamiento de inicio flexible para aumentar las probabilidades de obtener VMs con GPU. En la solicitud, debes especificar el número de máquinas virtuales con GPU. Dynamic Workload Scheduler (DWS), el mecanismo de programación subyacente, intenta programar las solicitudes de cambio de tamaño creadas en Compute Engine en función de las duraciones solicitadas y la disponibilidad de recursos. Si los recursos solicitados están disponibles, el MIG crea las VMs.

Si el trabajo finaliza antes de la duración solicitada, puedes eliminar las VMs creadas. De lo contrario, el MIG elimina las VMs al final de su duración.

También puedes consultar otros casos prácticos básicos para crear un MIG.

Antes de empezar

  • Para asegurarte de que tienes suficiente cuota de GPU para los recursos que solicitas, consulta tu cuota de GPU.
  • Para saber cómo se consume la cuota, consulta Cuotas de asignación de VMs con GPU y VMs interrumpibles.
  • Si aún no lo has hecho, configura la autenticación. La autenticación verifica tu identidad para acceder a Google Cloud servicios y APIs. Para ejecutar código o ejemplos 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 la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    2. Set a default region and zone.

    REST

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

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

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .

Limitaciones

Consulta las limitaciones para crear una solicitud de cambio de tamaño de MIG.

Crear un MIG y añadir VMs con GPU a la vez

Para crear un MIG y añadir VMs con GPU al grupo a la vez, sigue estos pasos:

  1. Crea una plantilla de instancia, que es necesaria para crear un MIG. El MIG crea cada VM del grupo a partir de la plantilla de instancia. En la plantilla, especifica la configuración de las máquinas virtuales con GPU y las configuraciones adicionales necesarias para usar las solicitudes de cambio de tamaño.

    Para obtener más información sobre las plantillas de instancia, consulte Acerca de las plantillas de instancia.

  2. Crea un MIG y una solicitud de cambio de tamaño para añadir máquinas virtuales con GPU a la vez.

Crear una plantilla de instancia

Crea una plantilla de instancia que especifique una serie de máquinas con GPU compatible para las solicitudes de cambio de tamaño del MIG, tal como se describe en esta sección. A continuación, usa la plantilla para crear un MIG.

Consola

  1. Ve a la página Plantillas de instancias.

    Ir a Plantillas de instancia

  2. Haz clic en Crear plantilla de instancia. Se abrirá la página Crear una plantilla de instancia.

  3. En el campo Nombre, introduce un nombre para la plantilla de instancia.

  4. En la sección Configuración de la máquina, haga lo siguiente:

    1. Haz clic en la pestaña GPUs.

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

    3. En la lista Número de GPUs, selecciona el número de GPUs.

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

  5. En la sección Modelo de aprovisionamiento, haga lo siguiente:

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

    2. Para definir la duración de las VMs creadas a partir de la plantilla de instancia, en el campo Introduce el número de horas, introduce el número de horas. El valor debe estar comprendido entre una hora (1) y siete días (168).

  6. Opcional: Para cambiar el tipo o la imagen del disco de arranque predeterminado, en la sección Disco de arranque, haz clic en Cambiar. A continuación, sigue las instrucciones para cambiar el disco de arranque.

  7. Haz clic en Crear.

gcloud

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

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

Haz los cambios siguientes:

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

  • IMAGE_FAMILY: una familia de imágenes. Especifica la imagen del SO más reciente que no está obsoleta. Por ejemplo, si especificas debian-12, se usará la versión más reciente de la familia de imágenes de Debian 12. Para obtener más información sobre cómo usar familias de imágenes, consulta las prácticas recomendadas para familias de imágenes.

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

  • MACHINE_TYPE: un tipo de máquina con GPU. Si especificas un tipo de máquina N1, incluye la marca --accelerator para especificar el número y el tipo de GPUs que quieres conectar a tus VMs.

  • RUN_DURATION: la duración que quieres que se ejecuten las máquinas virtuales solicitadas. El valor debe tener el formato del número de días, horas, minutos o segundos seguido 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 estar comprendido entre 10 minutos y 7 días.

REST

Para crear una plantilla de instancia, haz una solicitud POST al método beta.instanceTemplates.insert:

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"
    }
  }
}

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto en el que quieres crear la plantilla de instancia.

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

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

  • IMAGE: especifica una de las siguientes opciones:

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

    • Una familia de imágenes, que debe tener el formato family/IMAGE_FAMILY. Especifica la imagen del SO más reciente que no está obsoleta. Por ejemplo, si especificas family/debian-12, se usará la versión más reciente de la familia de imágenes de Debian 12. Para obtener más información sobre cómo usar familias de imágenes, consulte las prácticas recomendadas para 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 el número y el tipo de GPUs que quieres asociar a tus VMs.

  • RUN_DURATION: la duración, en segundos, que quieres que se ejecuten las VMs solicitadas antes de que el MIG las elimine automáticamente. El valor debe estar entre 600 (600 segundos o 10 minutos) y 604800 (604.800 segundos o siete días).

Una vez que hayas creado la plantilla de instancia, podrás verla para consultar su ID y sus propiedades.

Crear un MIG y añadir VMs con GPU a la vez

Crea un MIG como se describe en esta sección. Para crear una solicitud de cambio de tamaño en el MIG, no debes configurar el autoescalado y debes desactivar las reparaciones.

Consola

  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, introduce un nombre para el MIG.

  4. Antes de seleccionar una plantilla de instancia, debes eliminar la configuración de autoescalado y desactivar las reparaciones de la siguiente manera:

    1. Para eliminar la configuración de autoescalado, sigue estos pasos:
      1. En la sección Autoescalado, haz clic en la lista Modo de autoescalado y, a continuación, en Eliminar configuración de autoescalado.
      2. En el cuadro de diálogo de confirmación, haz clic en Eliminar.
    2. Para desactivar las reparaciones, en la sección Ciclo de vida de la instancia de VM, haga clic en la lista Acción predeterminada en caso de fallo y, a continuación, seleccione Ninguna acción.
  5. Vuelve al campo Plantilla de instancia. En la lista Plantilla de instancia, selecciona la que has creado en la sección anterior.

  6. Elige una de estas opciones:

    • Para crear una solicitud de cambio de tamaño con el MIG, sigue estos pasos:
      1. En el campo Número de instancias, introduce el número de VMs que quieras crear a la vez.
      2. Seleccione la casilla Usar la solicitud de cambio de tamaño para crear VMs a la vez.
      3. Opcional: Para especificar una duración de ejecución de las VMs distinta a la definida en la plantilla de instancia, 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.
    • Para crear una solicitud de cambio de tamaño después de crear el MIG, introduce 0 en el campo Número de instancias.
  7. En la sección Ubicación, especifica si quieres crear un MIG de zona o de región de la siguiente manera:

    1. Para crear un MIG zonal, selecciona Una zona. Para crear un MIG regional, selecciona Varias zonas.
    2. Selecciona la región y las zonas de la MIG.
    3. Si vas a crear un MIG regional, haz lo siguiente:
      1. En el campo Forma de distribución de destino, selecciona Cualquier zona.
      2. En el cuadro de diálogo que aparece, haz clic en Inhabilitar redistribución de instancias.
  8. Haz clic en Crear.

gcloud

  1. Crea un MIG zonal con el comando instance-groups managed create:

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
       --template=INSTANCE_TEMPLATE_URL \
       --size=0 \
       --zone=ZONE \
       --default-action-on-vm-failure=do_nothing
    
  2. En el MIG, crea una solicitud de cambio de tamaño con el comando instance-groups managed resize-requests create. Especifica el número de VMs con GPU que quieres y la duración durante la que quieres ejecutar esas VMs.

    gcloud compute instance-groups managed resize-requests create INSTANCE_GROUP_NAME \
       --resize-request=RESIZE_REQUEST_NAME \
       --resize-by=COUNT \
       --zone=ZONE
    

Haz los cambios siguientes:

  • INSTANCE_GROUP_NAME: el nombre del MIG.
  • INSTANCE_TEMPLATE_URL: la URL de la plantilla de instancia que quieres usar para crear VMs en el MIG. La URL puede contener el ID o el nombre de la plantilla de instancia. Especifica uno de los siguientes valores:
    • En el caso de una plantilla de instancia regional, haz lo siguiente: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • En el caso de una plantilla de instancia global, haz lo siguiente: INSTANCE_TEMPLATE_ID
  • ZONE: una de las zonas disponibles para Compute Engine.
  • RESIZE_REQUEST_NAME: el nombre de la solicitud de cambio de tamaño.
  • COUNT: el número de VMs que se van a añadir al grupo a la vez.

REST

  1. Crea un MIG zonal haciendo una solicitud POST al método instanceGroupManagers.insert.

    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"
     }
    }
    
  2. En el MIG, crea una solicitud de cambio de tamaño haciendo una solicitud POST al método instanceGroupManagerResizeRequests.insert. En el cuerpo de la solicitud, especifica el número de VMs con GPU que quieras crear a la vez y la duración que quieras que se ejecuten esas VMs.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests
    
    {
     "name": "RESIZE_REQUEST_NAME",
     "resizeBy": COUNT
    }
    

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto en el que quieres crear el MIG.
  • INSTANCE_GROUP_NAME: el nombre del MIG.
  • INSTANCE_TEMPLATE_URL: la URL de la plantilla de instancia que quieres usar para crear VMs en el MIG. La URL puede contener el ID o el nombre de la plantilla de instancia. Especifica uno de los siguientes valores:
    • En el caso de una plantilla de instancia regional, haz lo siguiente: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • En el caso de una plantilla de instancia global, haz lo siguiente: INSTANCE_TEMPLATE_ID
  • ZONE: una de las zonas disponibles para Compute Engine.
  • RESIZE_REQUEST_NAME: el nombre de la solicitud de cambio de tamaño.
  • COUNT: el número de VMs que se van a añadir al grupo a la vez.

La solicitud de cambio de tamaño que crees permanecerá en el estado ACCEPTED hasta que el MIG cree todas las VMs con GPU solicitadas. Una vez que se hayan creado todas las VMs con GPU en el grupo, el estado de la solicitud cambiará a SUCCEEDED.

Siguientes pasos