Crea un MIG para cargas de trabajo de HPC con consumo vinculado a la reserva


En este instructivo, se muestra cómo crear un grupo de instancias administrado (MIG) que use un tipo de máquina H4D. El MIG usa el modelo de aprovisionamiento vinculado a la reserva para obtener recursos de procesamiento.

Crear un MIG te permite administrar varias máquinas virtuales (VMs) como una sola entidad. Cada VM en un MIG se basa en una plantilla de instancias. Al administrar automáticamente las VMs del grupo, los MIG ofrecen alta disponibilidad y escalabilidad. Para obtener más información sobre los MIG, consulta Grupos de instancias administrados.

Para obtener información sobre las opciones de creación de VMs y clústeres de HPC, consulta la Descripción general de la creación de clústeres de HPC.

Este instructivo está dirigido a ingenieros de HPC, administradores y operadores de plataformas, y especialistas en datos y MPI que deseen crear un grupo de instancias de HPC interconectadas para ejecutar sus cargas de trabajo. Las instancias resultantes no usan un orquestador para la administración de instancias ni la programación de trabajos.

Si deseas crear un grupo de instancias administrado, pero no necesitas crear una implementación densa de instancias, consulta Situaciones básicas para crear grupos de instancias administrados (MIG).

Objetivos

  • Reservar bloques de capacidad para las instancias de VM
  • Opcional: Crea redes de nube privada virtual (VPC).
  • Opcional: Crea una política de cargas de trabajo.
  • Crea una plantilla de instancias.
  • Crea un MIG con uno de los siguientes métodos:
    • Crea un MIG con un tamaño objetivo.
    • Crea un MIG y una solicitud de cambio de tamaño.
  • Limpia los recursos que creaste.

Costos

En este documento, usarás los siguientes componentes facturables de Google Cloud:

Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios.

Es posible que los usuarios de Google Cloud nuevos cumplan con los requisitos para acceder a una prueba gratuita.

Cuando completes las tareas que se describen en este documento, podrás borrar los recursos que creaste para evitar que se te siga facturando. Para obtener más información, consulta Realiza una limpieza.

Antes de comenzar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.

  3. Si usas un proveedor de identidad externo (IdP), primero debes acceder a gcloud CLI con tu identidad federada.

  4. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  5. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the required API:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable compute.googleapis.com
  8. Install the Google Cloud CLI.

  9. Si usas un proveedor de identidad externo (IdP), primero debes acceder a gcloud CLI con tu identidad federada.

  10. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  11. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  12. Verify that billing is enabled for your Google Cloud project.

  13. Enable the required API:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable compute.googleapis.com
  14. Grant roles to your user account. Run the following command once for each of the following IAM roles: roles/compute.instanceAdmin.v1,roles/compute.networkAdmin

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Replace the following:

    • PROJECT_ID: your project ID.
    • USER_IDENTIFIER: the identifier for your user account—for example, myemail@example.com.
    • ROLE: the IAM role that you grant to your user account.
  15. Reservar capacidad

    Para usar los comandos de este instructivo, debes reservar la capacidad para crear las instancias en el MIG.

    Crea una reserva futura para bloques de capacidad

    Esta acción te permite reservar bloques de capacidad durante un período definido, a partir de una fecha y hora específicas que elijas. La reserva aparta bloques o subbloques de capacidad en un clúster, lo que permite implementaciones densas de instancias de VM.

    Para crear una reserva futura para una implementación densa, el proceso es el siguiente:

    1. Sigue el proceso para reservar capacidad comunicándote con tu equipo de cuentas en la documentación de AI Hypercomputer. En tu solicitud de reserva futura, proporciona la información según se documenta, con las siguientes excepciones:

      • Tipo de máquina: Especifica el tipo de máquina H4Dh4d-highmem-192-lssd.
      • Zona: Especifica una de las zonas en las que las instancias H4D están disponibles, como se documenta en la tabla de Regiones y zonas disponibles. Para mostrar las zonas disponibles solo para H4D, en la lista Select a machine series, selecciona H4D.
      • Tipo de programación de mantenimiento: Para las instancias H4D, puedes especificar GROUPED o INDEPENDENT.
      • Modo operativo de la reserva: Para las instancias de H4D, especifica el valor HIGHLY_AVAILABLE_CAPACITY.
    2. La cuota se aumenta automáticamente antes de que se entregue la capacidad. No es necesario que realices ninguna acción.

    3. Cuando crees la plantilla de instancias, especifica el modelo de aprovisionamiento vinculado a la reserva. Las instancias de VM del MIG se aprovisionan a partir de tu capacidad reservada.

    Se te cobrará por todo el período de la reserva, independientemente de si usas los recursos reservados durante todo el período. Para obtener más información, consulta Facturación de reservas.

    Crea una reserva futura en el modo de calendario

    Si necesitas usar la capacidad reservada por menos de 90 días, puedes crear una reserva futura en modo de calendario con el programador dinámico de cargas de trabajo. Para obtener recursos de reservas futuras, el proceso es el siguiente:

    1. Busca capacidad disponible y reserva recursos con la consola, gcloud CLI o la API de Compute Engine. Google Cloud
    2. No se cobra ninguna cuota y no es necesario que realices ninguna acción.
    3. Cuando crees la plantilla de instancias, especifica el modelo de aprovisionamiento vinculado a la reserva. Las instancias de VM del MIG se aprovisionan a partir de tu capacidad reservada.

    Se te cobrará por todo el período de la reserva, independientemente de si usas los recursos reservados durante todo el período. Para obtener más información, consulta los precios del Programador de cargas de trabajo dinámico.

    Opcional: Crea redes de VPC

    A menos que decidas inhabilitarla, cada proyecto tiene una red predeterminada, que se puede usar para proporcionar conectividad de red a tus instancias. Cuando creas una VM, puedes especificar una red y una subred de VPC. Si omites esta configuración, se usarán la red y la subred predeterminadas.

    Las instancias H4D se pueden configurar para usar Cloud RDMA. Cloud RDMA habilita capacidades de mensajería confiables y de baja latencia con un controlador de red IRDMA que admite el acceso directo a la memoria remoto (RDMA) entre instancias de Compute Engine.

    En este instructivo, harás lo siguiente:

    • Si deseas configurar las instancias H4D para que usen Cloud RDMA, completa los pasos que se indican en esta sección.
    • Si no quieres usar Cloud RDMA, puedes omitir esta sección y usar la red predeterminada.

    Las instancias habilitadas para RDMA requieren un mínimo de dos interfaces de red (NIC):

    • Tipo de NIC GVNIC: Usa el controlador gve para el tráfico de TCP/IP y de Internet en la comunicación normal entre VM y entre VM e Internet.
    • Tipo de NIC IRDMA: Usa controladores IDPF/iRDMA para redes RDMA de Cloud entre instancias.

    Las instancias que usan Cloud RDMA solo pueden tener una interfaz IRDMA. Puedes agregar hasta ocho interfaces de red GVNIC adicionales para un total de 10 NIC por instancia.

    Para configurar las redes de VPC de Falcon y usarlas con tus instancias, puedes seguir las instrucciones documentadas o usar la secuencia de comandos proporcionada.

    Guías de instrucciones

    Para crear las redes, puedes usar las siguientes instrucciones:

    Secuencia de comandos

    Puedes crear hasta nueve interfaces de red GVNIC y una interfaz de red IRDMA por instancia. Cada interfaz de red debe adjuntarse a una red independiente. Para crear las redes, puedes usar la siguiente secuencia de comandos, que crea dos redes para GVNIC y una red para IRDMA.

    1. Opcional: Antes de ejecutar la secuencia de comandos, enumera los perfiles de red de RDMA para verificar que haya uno disponible.
        gcloud beta compute network-profiles list
        
    2. Copia el siguiente código y ejecútalo en una ventana de shell de Linux.

        #!/bin/bash
        # Set the number of GVNIC interfaces to create. You can create up to 9.
        NUM_GVNIC=NUMBER_OF_GVNIC
      
        # Create standard VPC (networks and subnets) for the GVNIC interfaces
          for N in $(seq 0 $(($NUM_GVNIC - 1))); do
            gcloud compute networks create GVNIC_NAME_PREFIX-net-$N \
                --subnet-mode=custom
      
            gcloud compute networks subnets create GVNIC_NAME_PREFIX-sub-$N \
                --network=GVNIC_NAME_PREFIX-net-$N \
                --region=REGION \
                --range=10.$N.0.0/16
      
            gcloud compute firewall-rules create GVNIC_NAME_PREFIX-internal-$N \
                --network=GVNIC_NAME_PREFIX-net-$N \
                --action=ALLOW \
                --rules=tcp:0-65535,udp:0-65535,icmp \
                --source-ranges=10.0.0.0/8
        done
      
        # Create SSH firewall rules
        gcloud compute firewall-rules create GVNIC_NAME_PREFIX-ssh \
            --network=GVNIC_NAME_PREFIX-net-0 \
            --action=ALLOW \
            --rules=tcp:22 \
            --source-ranges=IP_RANGE
      
        # Optional: Create a firewall rule for the external IP address for the
        #  first GVNIC network interface
        gcloud compute firewall-rules create GVNIC_NAME_PREFIX-allow-ping-net-0 \
            --network=GVNIC_NAME_PREFIX-net-0 \
            --action=ALLOW \
            --rules=icmp \
            --source-ranges=IP_RANGE
      
        # Create a network for the RDMA over Falcon network interface
        gcloud beta compute networks create RDMA_NAME_PREFIX-irdma \
            --network-profile=ZONE-vpc-falcon \
            --subnet-mode custom
      
        # Create a subnet for the RDMA network
        gcloud beta compute networks subnets create RDMA_NAME_PREFIX-irdma-sub \
            --network=RDMA_NAME_PREFIX-irdma \
            --region=REGION \
            --range=10.2.0.0/16  # offset to avoid overlap with GVNIC subnet ranges
        

      Reemplaza lo siguiente:

      • NUMBER_OF_GVNIC: Es la cantidad de interfaces de gVNIC que se crearán. Especifica un número del 1 al 9.
      • GVNIC_NAME_PREFIX: Es el prefijo del nombre que se usará para la subred y la red de VPC estándar que usa un tipo de NIC de GVNIC.
      • REGION: Es la región en la que deseas crear las redes. Debe corresponder a la zona especificada para la marca --network-profile cuando se crea la red de RDMA. Por ejemplo, si especificas la zona como europe-west4-b, tu región será europe-west4.
      • IP_RANGE: Es el rango de direcciones IP fuera de la red de VPC que se usará para las reglas de firewall de SSH. Como práctica recomendada, especifica los rangos de direcciones IP específicos desde los que necesitas permitir el acceso, en lugar de todas las fuentes IPv4 o IPv6. No uses 0.0.0.0/0 ni ::/0 como rango de origen, ya que esto permite el tráfico desde todas las fuentes IPv4 o IPv6, incluidas las fuentes fuera de Google Cloud.
      • RDMA_NAME_PREFIX: Es el prefijo del nombre que se usará para la red de VPC y la subred que usa el tipo de NIC de IRDMA.
      • ZONE: La zona en la que deseas crear las redes y las instancias de procesamiento. Usa us-central1-a o europe-west4-b.
    3. Opcional: Para verificar que los recursos de la red de VPC se hayan creado correctamente, consulta la configuración de red en la consola de Google Cloud :

      1. En la consola de Google Cloud , ve a la página Redes de VPC.

        Ir a las redes de VPC

      2. Busca en la lista las redes que creaste en el paso anterior.
      3. Para ver las subredes, las reglas de firewall y otros parámetros de configuración de la red, haz clic en el nombre de la red.

    Opcional: Crea una política de carga de trabajo

    Si deseas que Compute Engine coloque instancias de VM en un solo bloque o en bloques adyacentes, especifica la posición de la instancia creando una política de cargas de trabajo. Sin embargo, si deseas que Compute Engine coloque tus instancias en un bloque específico, omite este paso y proporciona el nombre del bloque en la afinidad de reserva cuando crees la plantilla de instancia.

    Si ya tienes una política de cargas de trabajo, puedes volver a usarla. Cuando aplicas una política de carga de trabajo a tu MIG, Compute Engine hace todo lo posible para crear instancias que estén lo más cerca posible entre sí. Si tu aplicación es sensible a la latencia y quieres que las instancias estén más cerca entre sí (máxima compactación), especifica el campo maxTopologyDistance cuando crees una política de carga de trabajo.

    No puedes actualizar una política de carga de trabajo después de crearla. Para realizar cambios en una política de cargas de trabajo, debes crear una nueva.

    Para crear una política de cargas de trabajo, selecciona una de las siguientes opciones:

    gcloud

    Para crear una política de cargas de trabajo, usa el comando gcloud compute resource-policies create workload-policy.

    • Para una colocación de mejor esfuerzo de las VMs, especifica solo la marca --type=high-throughput en el comando:

      gcloud compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \
          --type=high-throughput \
          --region=REGION
      
    • Para la colocación estricta de VMs, especifica la marca --max-topology-distance en el comando:

      gcloud compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \
          --type=high-throughput \
          --max-topology-distance=TOPOLOGY_DISTANCE \
          --region=REGION
      

    Reemplaza lo siguiente:

    • WORKLOAD_POLICY_NAME: Es el nombre de la política de carga de trabajo.
    • REGION: Es la región en la que deseas crear la política de cargas de trabajo. Especifica una región en la que deseas crear el MIG y el tipo de máquina que deseas usar está disponible. Para obtener información sobre las regiones y las zonas, consulta Regiones y zonas disponibles.

    REST

    Para crear una política de cargas de trabajo, realiza una solicitud POST al método resourcePolicies.insert.

    • Para una colocación de mejor esfuerzo de las VMs, especifica solo el campo type en la solicitud de la siguiente manera:

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies
        {
          "name": "WORKLOAD_POLICY_NAME"
          "workloadPolicy": {
            "type": "HIGH_THROUGHPUT"
          }
        }
      
    • Para la colocación estricta de VMs, especifica el campo maxTopologyDistance en la solicitud de la siguiente manera:

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies
        {
          "name": "WORKLOAD_POLICY_NAME"
          "workloadPolicy": {
            "type": "HIGH_THROUGHPUT",
            "maxTopologyDistance": "TOPOLOGY_DISTANCE"
          }
        }
      

    Reemplaza lo siguiente:

    • PROJECT_ID: El ID de tu proyecto
    • REGION: Es la región en la que deseas crear la política de cargas de trabajo. Especifica una región en la que deseas crear el MIG y el tipo de máquina que deseas usar está disponible. Para obtener información sobre las regiones y las zonas, consulta Regiones y zonas disponibles.
    • WORKLOAD_POLICY_NAME: Es el nombre de la política de carga de trabajo.

    Crea una plantilla de instancias

    Para especificar las propiedades de instancia y consumo de cada instancia del MIG, crea una plantilla de instancias con uno de los siguientes métodos:

    gcloud

    Para crear una plantilla de instancias regional, usa el comando gcloud compute instance-templates create.

    gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
        --machine-type=MACHINE_TYPE \
        --image-family=IMAGE_FAMILY \
        --image-project=IMAGE_PROJECT \
        --instance-template-region=REGION \
        --boot-disk-type=hyperdisk-balanced \
        --boot-disk-size=DISK_SIZE \
        --scopes=cloud-platform \
        
    --network-interface=nic-type=GVNIC, \
          network=GVNIC_NAME_PREFIX-net-0, \
          subnet=GVNIC_NAME_PREFIX-sub-0, \
          stack-type=STACK_TYPE, \
          address=EXTERNAL_IPV4_ADDRESS \
    --network-interface=nic-type=GVNIC, \
          network=GVNIC_NAME_PREFIX-net-1, \
          subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
    --network-interface=nic-type=IRDMA, \
          network=RDMA_NAME_PREFIX-irdma, \
          subnet=RDMA_NAME_PREFIX-irdma-sub, \
          stack-type=IPV4_ONLY,no-address \
        --reservation-affinity=specific \
        --reservation=RESERVATION \
        --provisioning-model=RESERVATION_BOUND \
        --instance-termination-action=DELETE \
        --maintenance-policy=TERMINATE
    
    

    Reemplaza lo siguiente:

    • INSTANCE_TEMPLATE_NAME: el nombre de la plantilla de instancias.
    • MACHINE_TYPE: Es el tipo de máquina H4D que se usará para la instancia.
    • IMAGE_FAMILY: Es la familia de imágenes de la imagen de SO que deseas usar. Para obtener una lista de los sistemas operativos compatibles, consulta Sistemas operativos compatibles.
    • IMAGE_PROJECT: Es el ID del proyecto de la imagen de SO.
    • REGION: Es la región en la que deseas crear la plantilla de instancias. Especifica una región en la que esté disponible el tipo de máquina que deseas usar.
    • DISK_SIZE: Es el tamaño del disco de arranque en GiB.
    • GVNIC_NAME_PREFIX: Es el prefijo de nombre que usaste cuando creaste las subredes y las redes de VPC estándar para las interfaces de gVNIC.

      Si usas la red predeterminada, incluye solo un campo --network-interface con el campo nic-type establecido en GVNIC. Además, omite la configuración de network y subnetwork para esta interfaz de red.

    • STACK_TYPE: Es el tipo de pila que se usará para la interfaz de gVNIC (opcional). Especifica IPV4_ONLY o IPV4_IPV6. Si no especificas un valor, se usa IPV4_ONLY de forma predeterminada.
    • EXTERNAL_IPV4_ADDRESS: Opcional: Es una dirección IPv4 externa estática para usar con la interfaz de red gVNIC. Debes haber reservado una dirección IPv4 externa con anterioridad. Realiza una de las siguientes acciones:

      • Especifica una dirección IPv4 válida de la subred.
      • Usa la marca no-address si no deseas que la interfaz de red tenga una dirección IP externa.
      • Especifica address='' si deseas que la interfaz de red reciba una dirección IP externa efímera.

      Para especificar una dirección IPv6 externa para la interfaz de red gVNIC, usa la marca --external-ipv6-address.

    • RDMA_NAME_PREFIX: Es el prefijo de nombre que usaste cuando creaste la red de VPC y la subred para la interfaz de red de IRDMA.

      Si no usas Cloud RDMA con tus instancias H4D, omite el campo --network-interface para la interfaz IRDMA.

    • RESERVATION: Es el nombre de la reserva que deseas usar.

      RESERVATION: Es el nombre de la reserva o un bloque específico dentro de una reserva. Para obtener el nombre de la reserva o los bloques disponibles, consulta Cómo ver la capacidad reservada. Según tus requisitos de ubicación de la instancia, elige una de las siguientes opciones:
      • Para crear instancias en varios bloques o en un solo bloque, sigue estos pasos:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

        Además, para un solo bloque, crea el MIG aplicando una política de carga de trabajo que especifique una colocación de bloques (maxTopologyDistance=BLOCK). Luego, Compute Engine aplica la política a la reserva y crea instancias en el mismo bloque.

      • Para crear instancias en un bloque específico, sigue estos pasos:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME

    REST

    Para crear una plantilla de instancias regional, realiza una solicitud POST al método regionInstanceTemplates.insert.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates
    {
      "name":"INSTANCE_TEMPLATE_NAME",
      "properties":{
        "disks":[
          {
            "boot":true,
            "initializeParams":{
              "diskSizeGb":"DISK_SIZE",
              "diskType":"hyperdisk-balanced",
              "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
            },
            "mode":"READ_WRITE",
            "type":"PERSISTENT"
          }
        ],
        "machineType":"MACHINE_TYPE",
        
            "networkInterfaces": [
            {
              "network": "GVNIC_NAME_PREFIX-net-0",
              "subnetwork": "GVNIC_NAME_PREFIX-sub-0",
              "accessConfigs": [
                {
                    "type": "ONE_TO_ONE_NAT",
                    "name": "External IP",
                    "natIP": "EXTERNAL_IPV4_ADDRESS"
                }
              ],
              "stackType": "IPV4_ONLY",
              "nicType": "GVNIC",
          },
          {
              "network": "GVNIC_NAME_PREFIX-net-1",
              "subnetwork": "GVNIC_NAME_PREFIX-sub-1",
              "stackType": "IPV4_ONLY",
              "nicType": "GVNIC",
          },
          {
              "network": "RDMA_NAME_PREFIX-irdma",
              "subnetwork": "RDMA_NAME_PREFIX-irdma-sub",
              "stackType": "IPV4_ONLY",
              "nicType": "IRDMA",
          }
        ],
    ,
        "reservationAffinity":{
            "consumeReservationType":"SPECIFIC_RESERVATION",
            "key":"compute.googleapis.com/reservation-name",
            "values":[
              "RESERVATION"
            ]
          },
        "scheduling":{
            "provisioningModel":"RESERVATION_BOUND",
            "instanceTerminationAction":"DELETE",
            "onHostMaintenance": "TERMINATE",
            "automaticRestart":true
          }
      }
    }
    

    Reemplaza lo siguiente:

    • INSTANCE_TEMPLATE_NAME: el nombre de la plantilla de instancias.
    • MACHINE_TYPE: Es el tipo de máquina que se usará para la instancia. Especifica un tipo de máquina H4D. Para obtener más información, consulta Tipos de máquinas H4D.
    • IMAGE_FAMILY: Es la familia de imágenes de la imagen de SO que deseas usar. Para obtener una lista de los sistemas operativos compatibles, consulta Sistemas operativos compatibles.
    • IMAGE_PROJECT: Es el ID del proyecto de la imagen de SO.
    • REGION: Es la región en la que deseas crear la plantilla de instancias. Especifica una región en la que esté disponible el tipo de máquina que deseas usar. Para obtener información sobre las regiones, consulta Regiones y zonas.
    • DISK_SIZE: Es el tamaño del disco de arranque en GiB.
    • GVNIC_NAME_PREFIX: Es el prefijo de nombre que usaste cuando creaste las subredes y las redes de VPC estándar para las interfaces de gVNIC.

      Si usas la red predeterminada, incluye solo un campo --network-interface con el campo nic-type establecido en GVNIC. Además, omite la configuración de network y subnetwork para esta interfaz de red.

    • EXTERNAL_IPV4_ADDRESS: Opcional: Es una dirección IPv4 externa estática para usar con la interfaz de red gVNIC. Debes haber reservado una dirección IPv4 externa con anterioridad.

      Para especificar una dirección IPv6 externa para la interfaz de red gVNIC, usa la marca --external-ipv6-address.

    • RDMA_NAME_PREFIX: Es el prefijo de nombre que usaste cuando creaste la red de VPC y la subred para la interfaz de red de IRDMA.

      Si no usas Cloud RDMA con tus instancias H4D, omite el campo --network-interface para la interfaz IRDMA.

    • RESERVATION: Es el nombre de la reserva que deseas usar.

      RESERVATION: Es el nombre de la reserva o un bloque específico dentro de una reserva. Para obtener el nombre de la reserva o los bloques disponibles, consulta Cómo ver la capacidad reservada. Según tus requisitos de ubicación de la instancia, elige una de las siguientes opciones:
      • Para crear instancias en varios bloques o en un solo bloque, sigue estos pasos:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

        Además, para un solo bloque, crea el MIG aplicando una política de carga de trabajo que especifique una colocación de bloques (maxTopologyDistance=BLOCK). Luego, Compute Engine aplica la política a la reserva y crea instancias en el mismo bloque.

      • Para crear instancias en un bloque específico, sigue estos pasos:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME

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

    Crear un MIG

    Según los requisitos de tu carga de trabajo, puedes crear una MIG con cualquiera de las siguientes configuraciones:

    Crea un MIG con un tamaño objetivo

    Si puedes iniciar tu trabajo sin crear todas las instancias de VM a la vez, crea un MIG con un tamaño objetivo. El tamaño objetivo determina la cantidad de instancias en el MIG. El MIG comienza a crear instancias según la disponibilidad de recursos actual. Si algún recurso no está disponible temporalmente, el MIG intenta continuamente crear instancias para alcanzar el tamaño objetivo.

    Para crear un MIG con un tamaño objetivo, selecciona una de las siguientes opciones:

    gcloud

    Para crear un MIG con un tamaño objetivo especificado, usa el comando instance-groups managed create.

    En este paso, los comandos para crear un MIG usan una política de carga de trabajo para especificar la posición de la VM. Si no quieres usar una política de carga de trabajo, quita la marca --workload-policy.

    Crea un MIG zonal o regional de la siguiente manera:

    • Para crear un MIG zonal, usa el siguiente comando:
      gcloud compute instance-groups managed create MIG_NAME \
        --template=INSTANCE_TEMPLATE_URL \
        --size=TARGET_SIZE \
        --workload-policy=WORKLOAD_POLICY_URL \
        --zone=ZONE
      
    • Para crear un MIG regional, usa el siguiente comando:
      gcloud compute instance-groups managed create MIG_NAME \
          --template=INSTANCE_TEMPLATE_URL \
          --size=TARGET_SIZE \
          --workload-policy=WORKLOAD_POLICY_URL \
          --region=REGION
      
    Reemplaza lo siguiente:
    • MIG_NAME: Es el nombre del MIG.
    • INSTANCE_TEMPLATE_URL: Es la URL de la plantilla de instancias que deseas usar para crear VMs 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
    • TARGET_SIZE: Es la cantidad de VMs que deseas en el MIG.
    • WORKLOAD_POLICY_URL: Opcional: URL de la política de carga de trabajo. Si no quieres usar una política de cargas de trabajo, puedes quitar la marca --workload-policy.
    • ZONE: Es la zona en la que deseas crear el MIG. Si usas una política de cargas de trabajo, especifica una zona dentro de la región de la política.
    • REGION: la región en la que deseas crear el MIG. Si usas una política de carga de trabajo, especifica la misma región que la de la política. En un MIG regional, en lugar de una región, puedes especificar las zonas de esa región con la marca --zones.

    REST

    Para crear un MIG con un tamaño objetivo especificado, realiza una solicitud POST de la siguiente manera.

    En este paso, las solicitudes para crear un MIG usan una política de cargas de trabajo para especificar la posición de la VM. Si no quieres usar una política de carga de trabajo, quita el campo resourcePolicies.workloadPolicy del cuerpo de la solicitud.

    Crea un MIG zonal o regional de la siguiente manera:

    • 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
      {
        "versions": [
          {
            "instanceTemplate": "INSTANCE_TEMPLATE_URL"
          }
        ],
        "name": "MIG_NAME",
        "instanceTemplate": "INSTANCE_TEMPLATE_URL",
        "targetSize": "TARGET_SIZE",
        "resourcePolicies": {
          "workloadPolicy": WORKLOAD_POLICY_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
        {
          "versions": [
            {
              "instanceTemplate": "INSTANCE_TEMPLATE_URL"
            }
          ],
          "name": "MIG_NAME",
          "instanceTemplate": "INSTANCE_TEMPLATE_URL",
          "targetSize": "TARGET_SIZE",
          "resourcePolicies": {
            "workloadPolicy": WORKLOAD_POLICY_URL
          }
        }
      
    Reemplaza lo siguiente:
    • PROJECT_ID: El ID del proyecto.
    • ZONE: Es la zona en la que deseas crear el MIG. Si usas una política de cargas de trabajo, especifica una zona dentro de la región de la política.
    • REGION: Es la región en la que deseas crear un MIG. Si usas una política de carga de trabajo, especifica la misma región que la de la política.
    • INSTANCE_TEMPLATE_URL: Es la URL de la plantilla de instancias que deseas usar para crear VMs 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
    • MIG_NAME: Es el nombre del MIG.
    • TARGET_SIZE: La cantidad de VMs que deseas que haya en el MIG.
    • WORKLOAD_POLICY_URL: Opcional: URL de la política de carga de trabajo. Si no quieres usar una política de cargas de trabajo, puedes quitar el campo resourcePolicies.workloadPolicy.

    Crea un MIG y una solicitud de cambio de tamaño

    Para crear todas las instancias solicitadas al mismo tiempo, crea un MIG sin instancias. Después de crear el MIG vacío, crea una solicitud de cambio de tamaño en el MIG. Cuando los recursos están disponibles para crear todas las instancias a la vez, la solicitud de cambio de tamaño agrega las instancias al MIG.

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

    gcloud

    En este paso, los comandos para crear un MIG usan una política de carga de trabajo para especificar la posición de la VM. Si no quieres usar una política de carga de trabajo, quita la marca --workload-policy.

    Crea un MIG zonal o regional y una solicitud de cambio de tamaño de la siguiente manera:

    • Para crear un MIG zonal y una solicitud de cambio de tamaño en él, haz lo siguiente:

      1. Crea un MIG zonal con el comando instance-groups managed create de la siguiente manera.

        gcloud compute instance-groups managed create MIG_NAME \
            --template=INSTANCE_TEMPLATE_URL \
            --size=0 \
            --workload-policy=WORKLOAD_POLICY_URL \
            --zone=ZONE
        
      2. Crea una solicitud de cambio de tamaño en el MIG zonal con el comando instance-groups managed resize-requests create de la siguiente manera:

        gcloud compute instance-groups managed resize-requests create MIG_NAME \
            --resize-request=RESIZE_REQUEST_NAME \
            POPULATION_METHOD \
            --zone=ZONE
        
    • Para crear un MIG regional y una solicitud de cambio de tamaño en él, haz lo siguiente:

      1. Crea un MIG regional con el comando instance-groups managed create de la siguiente manera.

        gcloud compute instance-groups managed create MIG_NAME \
            --template=INSTANCE_TEMPLATE_URL \
            --size=0 \
            --workload-policy=WORKLOAD_POLICY_URL \
            --zones=ZONE \
            --target-distribution-shape=any-single-zone \
            --instance-redistribution-type=none
          
      2. Crea una solicitud de cambio de tamaño en el MIG regional con el comando instance-groups managed resize-requests create beta de la siguiente manera:

        gcloud beta compute instance-groups managed resize-requests create MIG_NAME \
            --resize-request=RESIZE_REQUEST_NAME \
            POPULATION_METHOD \
            --region=REGION
        

    Reemplaza lo siguiente:

    • MIG_NAME: Es el nombre del MIG.
    • INSTANCE_TEMPLATE_URL: Es la URL de la plantilla de instancias que deseas usar para crear VMs 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
    • WORKLOAD_POLICY_URL: Opcional: URL de la política de carga de trabajo. Si no quieres usar una política de cargas de trabajo, puedes quitar la marca --workload-policy.
    • ZONE: Es la zona en la que deseas crear el MIG. En el caso de un MIG regional, también debes especificar una zona. Esta zona debe ser la que contiene el perfil de tu red de VPC y debe ser una zona en la que el tipo de máquina esté disponible. Para obtener más información, consulta Limitaciones.
    • RESIZE_REQUEST_NAME: El nombre de la solicitud de cambio de tamaño, que debe ser único dentro del MIG especificado. De lo contrario, la creación de la solicitud de cambio de tamaño fallará.
    • POPULATION_METHOD: Es el método para agregar instancias al MIG. Usa una de las siguientes opciones:

      • --resize-by=COUNT: Agrega la cantidad especificada de instancias al MIG a la vez. Los nombres de las instancias se generan automáticamente.
      • --instances=INSTANCE_NAME_LIST: Agrega instancias con los nombres especificados al MIG de una sola vez. Reemplaza INSTANCE_NAME_LIST por una lista de nombres de instancias separados por comas. La cantidad de nombres que proporciones determinará la cantidad de instancias que se crearán con esta solicitud de cambio de tamaño.
    • REGION: Es la región en la que se encuentra el MIG.

    REST

    En este paso, las solicitudes para crear un MIG usan una política de cargas de trabajo para especificar la posición de la VM. Si no quieres usar una política de carga de trabajo, quita el campo resourcePolicies.workloadPolicy del cuerpo de la solicitud.

    Crea un MIG zonal o regional y una solicitud de cambio de tamaño de la siguiente manera:

    • Para crear un MIG zonal y una solicitud de cambio de tamaño en él, haz lo siguiente:
      1. Para crear un MIG zonal, realiza una solicitud POST al 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": "MIG_NAME",
          "targetSize": 0,
          "resourcePolicies": {
            "workloadPolicy": WORKLOAD_POLICY_URL
          }
        }
        
      2. Crea una solicitud de cambio de tamaño en el MIG zonal realizando una solicitud POST al método instanceGroupManagerResizeRequests.insert de la siguiente manera:
        POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME/resizeRequests
        {
          "name": "RESIZE_REQUEST_NAME",
          POPULATION_METHOD
        }
        
    • Para crear un MIG regional y una solicitud de cambio de tamaño en él, haz lo siguiente:
      1. Crea un MIG regional realizando una solicitud POST al 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": "MIG_NAME",
          "targetSize": 0,
          "distributionPolicy": {
            "targetShape": "ANY_SINGLE_ZONE",
            "zones": [
              {
                "zone": "projects/PROJECT_ID/zones/ZONE"
              }
            ]
          },
          "updatePolicy": {
            "instanceRedistributionType": "NONE"
          },
          "resourcePolicies": {
            "workloadPolicy": WORKLOAD_POLICY_URL
          }
        }
        
      2. Crea una solicitud de cambio de tamaño en el MIG regional realizando una solicitud POST al método beta.regionInstanceGroupManagerResizeRequests.insert de la siguiente manera:
        POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/resizeRequests
        {
          "name": "RESIZE_REQUEST_NAME",
          POPULATION_METHOD
        }
        

    Reemplaza lo siguiente:

    • PROJECT_ID: El ID del proyecto.
    • ZONE: Es la zona en la que deseas crear el MIG. En el caso de un MIG regional, también debes especificar una zona. Esta zona debe ser la que contiene el perfil de tu red de VPC y debe ser una zona en la que el tipo de máquina esté disponible. Para obtener más información, consulta Limitaciones.
    • REGION: la región en la que deseas crear el MIG.
    • INSTANCE_TEMPLATE_URL: Es la URL de la plantilla de instancias que deseas usar para crear VMs 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
    • MIG_NAME: Es el nombre del MIG.
    • WORKLOAD_POLICY_URL: Opcional: URL de la política de carga de trabajo. Si no quieres usar una política de cargas de trabajo, puedes quitar el campo resourcePolicies.workloadPolicy.
    • RESIZE_REQUEST_NAME: El nombre de la solicitud de cambio de tamaño, que debe ser único dentro del MIG especificado. De lo contrario, la creación de la solicitud de cambio de tamaño fallará.
    • POPULATION_METHOD: Es el método para agregar instancias al MIG. Usa una de las siguientes opciones:

      • "resizeBy":COUNT: Reemplaza COUNT por la cantidad especificada de instancias que se agregarán al MIG a la vez. Los nombres de las instancias se generan automáticamente.
      • "instanceNames":INSTANCE_NAME_LIST: Agrega instancias con los nombres especificados al MIG de una sola vez. Reemplaza INSTANCE_NAME_LIST por una lista de nombres de instancias separados por comas. La cantidad de nombres que proporciones determinará la cantidad de instancias que se crearán con esta solicitud de cambio de tamaño.

    Limpia

    Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos usados en este instructivo, borra el proyecto que contiene los recursos o conserva el proyecto y borra los recursos individuales.

    Borra tu proyecto

    Delete a Google Cloud project:

    gcloud projects delete PROJECT_ID

    Borra recursos

    1. Borra las solicitudes de cambio de tamaño en un MIG.

    2. Borra el MIG y las instancias.

    3. Si el estado de eliminación automática de los discos se estableció en False en la plantilla de instancias, los discos no se borran automáticamente cuando se borra la instancia de VM. Puedes borrar los discos con uno de los siguientes métodos:

      Console

      1. En la consola de Google Cloud , ve a la página Discos.

      Ir a Discos

      1. Selecciona las filas que contienen los discos que creaste en este instructivo. Asegúrate de que la columna En uso por esté vacía para cada disco.

      2. Haz clic en Borrar y, luego, en Borrar para confirmar.

      gcloud

      Usa el comando gcloud compute disks delete.

      gcloud compute disks delete DISK_NAME \
          --project PROJECT_ID --zone ZONE
      

      Reemplaza lo siguiente:

      • DISK_NAME : Es el nombre del disco que se borrará.
      • PROJECT_ID: Es el ID del proyecto que contiene el disco.
      • ZONE: la zona del disco

      REST

      Usa el método disks.delete para borrar los discos.

      DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME 
      

      Reemplaza lo siguiente:

      • PROJECT_ID: Es el ID del proyecto que contiene el disco.
      • ZONE: la zona del disco
      • DISK_NAME : Es el nombre del disco que se borrará.
    4. Borra las redes.

    5. Borra la plantilla de instancias

    ¿Qué sigue?