Crear solicitudes de cambio de tamaño en un MIG


Este documento describe cómo crear solicitudes de cambio de tamaño en un grupo de instancias administrado (MIG) de instancias de máquinas virtuales (VM) que tienen GPU conectadas. Para crear una solicitud de cambio de tamaño en un MIG que pueda utilizar las funciones y servicios disponibles en Cluster Director, consulte Crear un MIG y una solicitud de cambio de tamaño en la documentación de AI Hypercomputer.

La creación de solicitudes de cambio de tamaño en un MIG le ayuda a obtener recursos muy demandados, como GPU, y optimizar los costos al crear la cantidad exacta de máquinas virtuales a la vez.

Antes de comenzar

  • Revise cómo funcionan las solicitudes de cambio de tamaño .
  • Para asegurarse de tener suficiente cuota de GPU para los recursos que solicita, verifique su cuota de GPU .
  • Si aún no lo has hecho, configura la autenticación. La autenticación es el proceso mediante el cual se verifica su identidad para acceder a Google Cloud servicios y API. 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 requeridos

Para obtener los permisos que necesita para crear solicitudes de cambio de tamaño en un MIG, solicite a su administrador que le otorgue el rol de IAM Compute Instance Admin (v1) ( roles/compute.instanceAdmin.v1 ) en el proyecto. Para obtener más información sobre cómo otorgar roles, consulte Administrar el acceso a proyectos, carpetas y organizaciones .

Esta función predefinida contiene los permisos necesarios para crear solicitudes de cambio de tamaño en un MIG. Para ver los permisos exactos que se requieren, expanda la sección Permisos requeridos :

Permisos requeridos

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

  • Para crear una plantilla de instancia: 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

Es posible que también pueda obtener estos permisos con roles personalizados u otros roles predefinidos .

Prepare un MIG para solicitudes de cambio de tamaño

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

Crear una plantilla de instancia

Si desea crear solicitudes de cambio de tamaño en un MIG, entonces el MIG debe usar una plantilla de instancia con las siguientes configuraciones:

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

Consola

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

    Ir a plantillas de instancia

  2. Haga clic en Crear plantilla de instancia .

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

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

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

    • Para crear una plantilla de instancia regional, seleccione Regional y luego seleccione la región en la que crear la plantilla de instancia.

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

    1. Haga clic en la pestaña GPU .

    2. En la lista de tipos de GPU , seleccione el tipo de GPU.

    3. En la lista Número de GPU , seleccione la cantidad de GPU.

    4. Opcional: si su modelo de GPU admite estaciones de trabajo virtuales NVIDIA RTX (vWS) para cargas de trabajo de gráficos y planea ejecutar cargas de trabajo con uso intensivo de gráficos, seleccione Habilitar estación de trabajo virtual (NVIDIA GRID) .

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

  6. Opcional: Para cambiar el tipo o imagen del disco de inicio del valor predeterminado, en la sección Disco de inicio , haga clic en Cambiar . Luego siga las indicaciones para cambiar el disco de arranque.

  7. Expanda la sección Opciones avanzadas y luego haga lo siguiente:

    1. Expanda la sección Gestión .

    2. En la lista de Reservas , seleccione No usar .

  8. Haga clic en Crear .

nube de gcloud

Para crear una plantilla de instancia configurada para crear solicitudes de cambio de tamaño en un MIG, use el comando instance-templates create con las siguientes opciones:

  • El indicador --maintenance-policy establecido en TERMINATE .

  • El indicador --reservation-affinity establecido en none .

Por ejemplo, utilice el siguiente comando para crear una plantilla de instancia regional. Si desea crear una plantilla de instancia global, utilice el mismo comando sin el indicador --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

Reemplace lo siguiente:

  • INSTANCE_TEMPLATE_NAME : el nombre de la plantilla de instancia 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 admitidos, consulte Imágenes públicas .

  • IMAGE_FAMILY : una familia de imágenes . Esto especifica la imagen del sistema operativo más reciente y no obsoleta. Por ejemplo, si especifica debian-12 , se utiliza la última versión de la familia de imágenes de Debian 12. Para obtener más información sobre el uso de familias de imágenes, consulte Mejores prácticas de familias de imágenes .

    Si desea utilizar una versión específica de la imagen del sistema operativo, como debian-12-buster-v20240701 , reemplace el indicador --image-family con el indicador --image .

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

  • MACHINE_TYPE : un tipo de máquina que admite GPU . Si especifica un tipo de máquina N1, incluya el indicador --accelerator para especificar la cantidad y el tipo de GPU que se conectarán a sus máquinas virtuales.

DESCANSAR

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

En el cuerpo de la solicitud, haga lo siguiente:

  • Incluya el campo scheduling.onHostMaintenance y configúrelo en TERMINATE .

  • Incluya el campo reservationAffinity.consumeReservationType y configúrelo en NO_RESERVATION .

Por ejemplo, para crear una plantilla de instancia regional, realice 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"
    }
  }
}

Reemplace lo siguiente:

  • PROJECT_ID : el ID del proyecto en el que 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 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 admitidos, consulte Imágenes públicas .

  • IMAGE : especifique uno de los siguientes:

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

    • Una familia de imágenes , que debe tener el formato family/ IMAGE_FAMILY . Esto especifica la imagen del sistema operativo más reciente y no obsoleta. Por ejemplo, si especifica family/debian-12 , se utiliza la última versión de la familia de imágenes de Debian 12. Para obtener más información sobre el uso de familias de imágenes, consulte Mejores prácticas de familias de imágenes .

  • MACHINE_TYPE : un tipo de máquina que admite GPU . Si especifica un tipo de máquina N1, incluya el campo guestAccelerators en el cuerpo de la solicitud para especificar la cantidad y el tipo de GPU que se conectarán a sus máquinas virtuales.

Para obtener más información sobre la creación de una plantilla de instancia, consulte Crear plantillas de instancia .

Crear o actualizar un MIG

Después de crear la plantilla de instancia como se describe en la sección anterior, use esa plantilla de instancia para crear un MIG de la siguiente manera o actualice un MIG . Además, debe hacer lo siguiente para preparar el MIG para solicitudes de cambio de tamaño:

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

Consola

  1. En la consola de Google Cloud, vaya a la página de 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 , ingrese un nombre para el MIG.

  4. En la lista Plantilla de instancia , seleccione la plantilla de instancia que creó en la sección anterior. Si selecciona una plantilla de instancia regional, la lista de regiones se establece en la región de la plantilla de instancia.

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

    1. Para crear un MIG zonal, seleccione Zona única . O, para crear un MIG regional, seleccione Múltiples zonas .

    2. Seleccione la Región y Zonas del MIG.

    3. Si está creando un MIG regional, haga lo siguiente:

      1. En el campo Forma de distribución objetivo , seleccione Cualquier zona única . Puede seleccionar esta opción solo después de eliminar la configuración de escalado automático en los pasos siguientes.

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

  6. Elimine la configuración de escalado automático de la siguiente manera:

    1. En la sección Escala automática , haga clic en la lista Modo de escala automática y luego haga clic en Eliminar configuración de escala automática .

    2. En el cuadro de diálogo de confirmación, haga clic en Eliminar .

  7. Apague las reparaciones de la siguiente manera:

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

    2. Seleccione Ninguna acción .

  8. Haga una de las siguientes cosas:

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

      1. En el campo Número de instancias , ingrese la cantidad de máquinas virtuales que desea crear todas a la vez.

        El campo de número de instancias en la página Crear grupo de instancias.

      2. Seleccione la casilla Usar solicitud de cambio de tamaño para crear máquinas virtuales todas a la vez .

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

    • De lo contrario, en el campo Número de instancias , ingrese 0 . Más adelante podrá agregar máquinas virtuales al grupo creando solicitudes de cambio de tamaño .

  9. Haga clic en Crear .

nube de gcloud

Utilice el comando instance-groups managed create con el indicador --default-action-on-vm-failure establecido en do_nothing . Si está creando un MIG regional, también debe incluir el indicador --target-distribution-shape establecido en any-single-zone y el indicador --instance-redistribution-type establecido en none .

  • Para crear un MIG zonal, ejecute 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, ejecute 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
    

Reemplace lo siguiente:

  • INSTANCE_GROUP_NAME : el nombre del MIG a crear.

  • INSTANCE_TEMPLATE_URL : la URL parcial de la plantilla de instancia que creó en la sección anterior. Si desea utilizar una plantilla de instancia regional para crear el MIG, solo puede crear el MIG dentro de la región de la plantilla. Especifique uno de los siguientes valores:

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

    • Para una plantilla de instancia global: INSTANCE_TEMPLATE_NAME

  • ZONE : la zona en la que crear el MIG.

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

DESCANSAR

  • Para crear un MIG zonal, envíe una solicitud POST utilizando 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íe una solicitud POST utilizando 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"
      }
    }
    

Reemplace lo siguiente:

  • PROJECT_ID : el ID del proyecto donde se encuentra la plantilla de instancia que creó en la sección anterior.

  • INSTANCE_TEMPLATE_URL : la URL parcial de la plantilla de instancia que creó en la sección anterior. Si desea utilizar una plantilla de instancia regional para crear el MIG, solo puede crear el MIG dentro de la región de la plantilla. Especifique uno de los siguientes valores:

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

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

  • ZONE : la zona en la que crear el MIG.

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

  • INSTANCE_GROUP_NAME : el nombre del MIG a crear.

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

Antes de crear solicitudes de cambio de tamaño, asegúrese 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 VM de una sola vez. Las máquinas virtuales se ejecutan hasta que el MIG las elimina después de que finaliza la duración de ejecución especificada, o hasta que usted las elimina .

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

Consola

  1. En la consola de Google Cloud, vaya a la página de grupos de instancias .

    Ir a grupos de instancias

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

    Se abre la página de descripción general del MIG.

  3. En la fila Solicitudes de cambio de tamaño , haga clic Editar solicitudes de cambio de tamaño .

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

    Aparece el panel Nuevas solicitudes de cambio de tamaño .

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

  6. En el campo Número de instancias adicionales necesarias , ingrese la cantidad de VM para agregar al MIG todas a la vez.

  7. En los campos Duración de ejecución solicitada y Unidad , especifique la duración que desea que se ejecuten las máquinas virtuales solicitadas. La duración debe ser entre 1 hora y 7 días.

  8. Haga clic en Crear .

nube de gcloud

  • Para crear una solicitud de cambio de tamaño en un MIG zonal, use 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, use 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
    

Reemplace 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 único dentro del MIG especificado. De lo contrario, se producirá un error al crear la solicitud de cambio de tamaño.

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

  • RUN_DURATION : la duración que desea que se ejecuten las máquinas virtuales solicitadas. El valor debe tener el formato del número de días, horas, minutos o segundos seguidos de d , h , m y s respectivamente. Por ejemplo, especifique 30m para 30 minutos o 1d2h3m4s para 1 día, 2 horas, 3 minutos y 4 segundos. El valor debe estar entre 10 minutos y 7 días.

  • ZONE : la zona donde se encuentra el MIG.

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

DESCANSAR

  • Para crear una solicitud de cambio de tamaño en un MIG zonal, envíe una solicitud POST utilizando 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íe una solicitud POST utilizando 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, incluya lo siguiente:

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

Reemplace lo siguiente:

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

  • ZONE : la zona donde se encuentra el MIG.

  • REGION : la región donde se encuentra 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 único dentro del MIG especificado. De lo contrario, se producirá un error al crear la solicitud de cambio de tamaño.

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

  • RUN_DURATION : la duración, en segundos, que desea que se ejecuten las máquinas virtuales solicitadas. El valor debe estar entre 600 , que son 600 segundos (10 minutos), y 604800 , que son 604.800 segundos (7 días).

Después de crear una solicitud de cambio de tamaño, puede ver su estado o solucionar el problema viendo los detalles de la solicitud de cambio de tamaño .

¿Qué sigue?