Crea un MIG que use VMs de inicio flexible

En este documento, se explica cómo crear un grupo de instancias administrado (MIG) que use instancias de máquina virtual (VM) con inicio flexible. Las VMs de inicio flexible se ejecutan sin interrupciones durante un máximo de siete días y te ayudan a obtener recursos de alta demanda, como las GPUs, a un precio con descuento. Estas características hacen que las VMs de inicio flexible sean una solución rentable para ejecutar cargas de trabajo de corta duración, como el ajuste de modelos y las cargas de trabajo de inferencia por lotes.

En este documento, se explican los pasos para crear un MIG que cree VMs individuales de Flex-start a medida que los recursos estén disponibles. Por lo tanto, es posible que el MIG cree inicialmente solo una parte de las VMs solicitadas y, luego, agregue las VMs restantes a medida que la capacidad lo permita. Si deseas crear VMs de inicio flexible de una sola vez en un MIG, consulta Acerca de las solicitudes de cambio de tamaño del MIG.

Para conocer otros métodos que puedes usar para crear MIG, consulta Situaciones básicas para crear un MIG.

Antes de comenzar

  • Verifica que tengas suficiente cuota para los recursos que deseas solicitar. Para obtener más información, consulta Cuotas de asignación.
  • 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 .

Roles obligatorios

Para obtener los permisos que necesitas para crear MIGs que usen VMs de inicio flexible, 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 MIGs que usen VMs de inicio flexible. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para crear MIGs que usen VMs de inicio flexible:

  • Para crear una plantilla de instancias: compute.instanceTemplates.create en el proyecto
  • Para crear un MIG, haz lo siguiente: compute.instanceGroupManagers.create en el proyecto

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

Crea un MIG que use VMs de inicio flexible

Para crear un MIG que use VMs de inicio flexible, debes completar los siguientes pasos:

  1. Crea una plantilla de instancias configurada para crear VMs de Flex-start

  2. Crea un MIG regional o zonal

Crea una plantilla de instancias configurada para crear VMs de inicio flexible

Debes crear una plantilla de instancias configurada para crear VMs de inicio flexible, como se describe en esta sección. Después de crear la plantilla, la usas para crear el MIG.

Para crear una plantilla de instancias configurada para crear VMs de inicio flexible, 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. Aparecerá 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 el tipo de plantilla de instancias que deseas crear:

    • Para una plantilla de instancias regional, selecciona Regional y, luego, la región en la que deseas crear la plantilla. Según el tipo de máquina que deseas que usen tus VMs de inicio flexible, especifica una región admitida.

    • Para una plantilla de instancias global, selecciona Global.

  5. En la sección Configuración de la máquina, selecciona una serie de máquinas compatible para las VMs de Flex-start.

  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 que se crean a través de la plantilla de instancias, en el campo Ingresa la cantidad de horas, ingresa la cantidad de horas durante las que se ejecutarán las VMs. El valor debe estar entre una hora (1) y siete días (168). Cuando las VMs alcanzan el final de su duración de ejecución, Compute Engine borra cada VM de forma individual en relación con su propio tiempo de creación.

  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 VMs de inicio flexible, usa el comando gcloud compute instance-templates create.

El siguiente comando crea 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 \
    --instance-termination-action=DELETE \
    --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: Una familia de imágenes, que especifica la imagen de SO no obsoleta más reciente. Por ejemplo, si especificas debian-12, usas 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. Según el tipo de máquina que deseas que usen las VMs de inicio flexible, especifica una región admitida.

  • MACHINE_TYPE: Es el tipo de máquina con GPU o el tipo de máquina H4D que se usará para las VMs de inicio flexible. Si especificas un tipo de máquina N1, debes incluir 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. Cuando las VMs alcanzan el final de su duración de ejecución, Compute Engine borra cada VM de forma individual en relación con su propio tiempo de creación. Debes formatear la duración de la ejecución 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 VMs de inicio flexible, realiza una de las siguientes solicitudes POST:

Por ejemplo, para crear una plantilla de instancias regional, realiza una solicitud 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": {
      "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. Según el tipo de máquina que deseas que usen las VMs de inicio flexible, especifica una región admitida.

  • 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. Este valor 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 el tipo de máquina con GPU que se usará para las VMs. Si especificas un tipo de máquina N1, debes incluir el campo guestAccelerators 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. Cuando las VMs alcanzan el final de su duración de ejecución, Compute Engine borra cada VM de forma individual en relación con su propio tiempo de creación. La duración de la ejecución 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 ver sus detalles para revisar sus propiedades.

Crea un MIG regional o zonal

Crea un MIG regional o zonal como se describe en esta sección. No debes configurar el ajuste de escala automático y debes desactivar las reparaciones. Si los recursos que solicitaste no están disponibles, Compute Engine seguirá intentando asignarlos hasta que la solicitud se realice correctamente, reduzcas la cantidad de VMs en el MIG o borres el MIG.

Para crear un MIG regional o zonal, 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. Aparecerá 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.

  5. En el campo Cantidad de instancias, ingresa la cantidad de VMs de inicio flexible que se crearán en el MIG. Si tu carga de trabajo requiere nombres de VM específicos, ingresa 0 para no crear ninguna VM. Después de crear el MIG, agrégale VMs con nombres específicos.

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

    1. Para crear un MIG zonal, selecciona Single zone. 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 única.

      2. En el diálogo que aparece, haz clic en Inhabilitar la redistribución de instancias.

  7. Para borrar la configuración del ajuste de escala automático, en la sección Ajuste de escala automático, haz lo siguiente:

    1. Haz clic en Configurar ajuste de escala automático.

    2. En la lista Modo de ajuste de escala automático, haz clic en Borrar configuración del ajuste de escala automático.

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

  8. Para desactivar las reparaciones, en la sección Acción en caso de error, en la lista Acción predeterminada en caso de error, selecciona Sin acción.

  9. Haz clic en Crear.

gcloud

Para crear un MIG, usa el comando gcloud compute instance-groups managed create.

Según el tipo de MIG que desees crear, incluye las siguientes marcas en el comando:

  • Para crear un MIG zonal, incluye la marca --zone:

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
        --default-action-on-vm-failure=do-nothing \
        --size=SIZE \
        --template=INSTANCE_TEMPLATE_URL \
        --zone=ZONE
    
  • Para crear un MIG regional, incluye las marcas --region y --target-distribution-shape:

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
        --default-action-on-vm-failure=do-nothing \
        --size=SIZE \
        --template=INSTANCE_TEMPLATE_URL \
        --region=REGION \
        --target-distribution-shape=SHAPE
    

Reemplaza lo siguiente:

  • INSTANCE_GROUP_NAME: Es el nombre del MIG.

  • INSTANCE_TEMPLATE_URL: Es la URL de la plantilla de instancias que creaste en la sección anterior. 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

  • SIZE: Es la cantidad de VMs con inicio flexible que se crearán en el MIG. Si tu carga de trabajo requiere nombres de VM específicos, especifica 0 para no crear ninguna VM. Después de crear el MIG, agrégale VMs con nombres específicos.

  • ZONE: La zona en la que se creará el MIG zonal. Si usas una plantilla de instancias regional para crear el MIG, debes especificar una zona dentro de la misma región que la plantilla.

  • REGION: Es la región en la que se creará el MIG regional. Si usas una plantilla de instancias regional para crear el MIG, debes especificar la misma región que la de la plantilla.

  • SHAPE: Indica cómo tu MIG distribuye las VMs de inicio flexible en las zonas de tu MIG regional. Especifica uno de los siguientes valores:

    • Para crear VMs en varias zonas según la disponibilidad, haz lo siguiente: ANY

    • Para crear VMs en una sola zona según la disponibilidad, haz lo siguiente: ANY_SINGLE_ZONE

    Para obtener más información, consulta Forma de distribución objetivo del MIG regional.

REST

Para crear un MIG, realiza una solicitud POST a uno de los siguientes métodos:

  • Para crear un MIG zonal, realiza la siguiente solicitud al método instanceGroupManagers.insert:

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

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers
    
    {
      "name": "INSTANCE_GROUP_NAME",
      "instanceTemplate": "INSTANCE_TEMPLATE_URL",
      "instanceLifecyclePolicy": {
        "defaultActionOnFailure": "DO_NOTHING"
      },
      "targetSize": SIZE,
      "distributionPolicy": {
        "targetShape": "SHAPE"
      }
    }
    

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto en el que se creará el MIG regional o zonal.

  • ZONE: La zona en la que se creará el MIG zonal. Si usas una plantilla de instancias regional para crear el MIG, debes especificar una zona dentro de la misma región que la plantilla.

  • REGION: Es la región en la que se creará el MIG regional. Si usas una plantilla de instancias regional para crear el MIG, debes especificar la misma región que la de la plantilla.

  • INSTANCE_GROUP_NAME: Es el nombre del MIG.

  • INSTANCE_TEMPLATE_URL: Es la URL de la plantilla de instancias que creaste en la sección anterior. 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

  • SIZE: Es la cantidad de VMs con inicio flexible que se crearán en el MIG. Si tu carga de trabajo requiere nombres de VM específicos, especifica 0 para no crear ninguna VM. Después de crear el MIG, agrégale VMs con nombres específicos.

  • SHAPE: Indica cómo tu MIG distribuye las VMs de inicio flexible en las zonas de tu MIG regional. Especifica uno de los siguientes valores:

    • Para crear VMs en varias zonas según la disponibilidad, haz lo siguiente: ANY

    • Para crear VMs en una sola zona según la disponibilidad, haz lo siguiente: ANY_SINGLE_ZONE

    Para obtener más información, consulta Forma de distribución objetivo del MIG regional.

¿Qué sigue?