Crear en bloque instancias optimizadas para HPC con H4D

En este documento se explica cómo crear en bloque un gran número de instancias de máquina virtual (VM) de computación de alto rendimiento (HPC) que sean idénticas e independientes entre sí. Las instancias usan tipos de máquinas H4D y se ejecutan en bloques de capacidad reservados.

Para obtener más información sobre cómo crear VMs en bloque, consulta Información sobre la creación de VMs en bloque. Para crear instancias en bloque que no usen reservas para disfrutar de funciones de gestión de clústeres mejoradas, consulta Crear VMs en bloque.

Para obtener información sobre otras formas de crear clústeres grandes de VMs H4D estrechamente acopladas, consulta la página Descripción general de la creación de clústeres de HPC.

Antes de empezar

  • Elige una opción de consumo: para crear instancias de computación en bloque y habilitar funciones de gestión de clústeres mejoradas, puedes elegir una reserva futura en modo Calendario o VMs de spot.

    Si decides usar máquinas virtuales de Spot, es posible que no estén colocadas de forma compacta. Además, las VMs de Spot se pueden interrumpir según sea necesario y no cumplen los requisitos para gestionar eventos de mantenimiento de hosts para grupos de VMs.

  • Obtener capacidad: el proceso para obtener capacidad varía en función de la opción de consumo.

    Para obtener más información, consulta Elegir una opción de consumo y obtener capacidad.

  • 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 Google Cloud autenticación.

Roles obligatorios

Para obtener los permisos que necesitas para crear VMs en bloque, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos en el proyecto:

Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar acceso a proyectos, carpetas y organizaciones.

Estos roles predefinidos contienen los permisos necesarios para crear máquinas virtuales en bloque. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:

Permisos obligatorios

Para crear VMs en bloque, se necesitan los siguientes permisos:

  • compute.instances.create del proyecto
  • Para usar una imagen personalizada para crear la VM, sigue estos pasos: compute.images.useReadOnly en la imagen
  • Para usar una captura para crear la VM, sigue estos pasos: compute.snapshots.useReadOnly en la captura
  • Para usar una plantilla de instancia para crear la VM, haz lo siguiente: compute.instanceTemplates.useReadOnly en la plantilla de instancia
  • Para especificar una subred para tu VM, haz lo siguiente: compute.subnetworks.use en el proyecto o en la subred elegida
  • Para especificar una dirección IP estática para la máquina virtual, haz lo siguiente: compute.addresses.use en el proyecto
  • Para asignar una dirección IP externa a la VM cuando se usa una red de VPC, haz lo siguiente: compute.subnetworks.useExternalIp en el proyecto o en la subred elegida
  • Para asignar una red antigua a la VM, sigue estos pasos: compute.networks.use en el proyecto
  • Para asignar una dirección IP externa a la VM cuando se usa una red antigua, haz lo siguiente: compute.networks.useExternalIp en el proyecto
  • Para definir los metadatos de la instancia de VM: compute.instances.setMetadata en el proyecto
  • Para definir etiquetas en la VM, haz lo siguiente: compute.instances.setTags en la VM
  • Para definir etiquetas en la VM, sigue estos pasos: compute.instances.setLabels en la VM
  • Para definir una cuenta de servicio que use la VM, sigue estos pasos: compute.instances.setServiceAccount en la VM
  • Para crear un disco para la VM, sigue estos pasos: compute.disks.create en el proyecto
  • Para adjuntar un disco en modo de solo lectura o de lectura y escritura, sigue estos pasos: compute.disks.use en el disco
  • Para adjuntar un disco en modo de solo lectura: compute.disks.useReadOnly en el disco

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

Información general

Para crear instancias de HPC en bloque con el tipo de máquina H4D, sigue estos pasos:

  1. Opcional: crea redes de nube privada virtual.
  2. Opcional: crea una política de colocación si no vas a crear las instancias de proceso en el mismo bloque o subbloque.
  3. Crea instancias de H4D en bloque.

Opcional: Crea redes de nube privada virtual

Cuando creas una instancia de proceso, puedes especificar una red de VPC y una subred. Si omite esta configuración, se usarán la red y la subred predeterminadas.

  • Si quieres configurar las instancias H4D de la MIG para que usen Cloud RDMA, sigue los pasos de esta sección.
  • Si no quieres usar Cloud RDMA, puedes omitir esta sección y usar la red predeterminada.

Para usar Cloud RDMA con instancias H4D, debes tener configuradas al menos dos redes, una para cada tipo de interfaz de red (NIC):

  • Tipo de NIC GVNIC: usa el controlador gve para el tráfico TCP/IP e Internet en la comunicación normal entre máquinas virtuales y entre máquinas virtuales e Internet.
  • Tipo de NIC IRDMA: usa controladores IDPF/iRDMA para la conexión en red RDMA de Cloud entre instancias.

Las instancias que usan Cloud RDMA solo pueden tener una interfaz IRDMA. Puedes añadir hasta ocho interfaces de red GVNIC adicionales, lo que supone un total de 10 vNICs por instancia.

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

Guías de instrucciones

Para crear las redes, puedes seguir estas 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 conectarse a una red independiente. Para crear las redes, puedes usar la siguiente secuencia de comandos, que crea dos redes para gVNIC y una para IRDMA.

  1. Opcional: Antes de ejecutar la secuencia de comandos, enumera los perfiles de red de VPC de Falcon para verificar que haya uno disponible.
      gcloud 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 regular 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 Falcon VPC network for the Cloud RDMA network interface
      gcloud compute networks create RDMA_NAME_PREFIX-irdma \
          --network-profile=ZONE-vpc-falcon \
          --subnet-mode custom
    
      # Create a subnet in the Falcon VPC network
      gcloud 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
      

    Haz los cambios siguientes:

    • NUMBER_OF_GVNIC: número de interfaces de gVNIC que se van a crear. Especifica un número del 1 al 9.
    • GVNIC_NAME_PREFIX: el prefijo de nombre que se va a usar en la red VPC y la subred normales que usan un tipo de NIC GVNIC.
    • REGION: la región en la que quieras crear las redes. Debe corresponderse con la zona especificada en la marca --network-profile al crear la red de VPC de Falcon. Por ejemplo, si especificas la zona europe-west4-b, tu región será europe-west4.
    • IP_RANGE: el intervalo de direcciones IP fuera de la red VPC que se va a usar para las reglas de cortafuegos SSH. Te recomendamos que especifiques los intervalos de direcciones IP concretos 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 intervalo de origen, ya que esto permite el tráfico de todos los orígenes IPv4 o IPv6, incluidos los que están fuera de Google Cloud.
    • RDMA_NAME_PREFIX: el prefijo de nombre que se va a usar en la red VPC y la subred que usan el tipo de NIC IRDMA.
    • ZONE: la zona en la que quieres crear las redes y las instancias de computación. Usa us-central1-a o europe-west4-b.
  3. Opcional: Para verificar que los recursos de la red de VPC se han creado correctamente, comprueba la configuración de la red en la Google Cloud consola:

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

      Ir a redes de VPC

    2. Busca en la lista las redes que has creado en el paso anterior.
    3. Para ver las subredes, las reglas de cortafuegos y otros ajustes de red, haz clic en el nombre de la red.

Opcional: Crear una política de emplazamiento

Puedes especificar la colocación de las VMs creando una política de colocación compacta. Cuando aplicas una política de emplazamiento compacta a tus VMs, Compute Engine hace todo lo posible para crear VMs que estén lo más cerca posible entre sí. Si tu aplicación es sensible a la latencia y quieres que las VMs estén más cerca entre sí (máxima compacidad), especifica el campo maxDistance (vista previa) al crear una política de colocación compacta. Un valor de maxDistance más bajo asegura que las VMs estén más cerca, pero también aumenta la probabilidad de que no se creen algunas VMs.

Para crear una política de colocación compacta, selecciona una de las siguientes opciones:

gcloud

Para crear una política de posición compacta, usa el comando gcloud beta compute resource-policies create group-placement:

gcloud beta compute resource-policies create group-placement POLICY_NAME \
    --collocation=collocated \
    --max-distance=MAX_DISTANCE \
    --region=REGION

Haz los cambios siguientes:

  • POLICY_NAME: el nombre de la política de posición compacta.
  • MAX_DISTANCE: la configuración de distancia máxima de tus VMs. El valor debe ser 3 para colocar las VMs en los bloques adyacentes o 2 para colocarlas en el mismo bloque. Para obtener información sobre el número máximo de VMs admitidas por cada maxDistance por serie de máquinas, consulta el artículo Acerca de las políticas de colocación compacta de la documentación de Compute Engine.
  • REGION: la región en la que quieres crear la política de posición compacta. Especifica una región en la que esté disponible el tipo de máquina que quieras usar. Para obtener información sobre las regiones, consulta Regiones y zonas disponibles.

REST

Para crear una política de emplazamiento compacta, haz una solicitud POST al método beta resourcePolicies.insert. En el cuerpo de la solicitud, incluye el campo collocation con el valor COLLOCATED y el campo maxDistance.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/resourcePolicies
  {
    "name": "POLICY_NAME",
    "groupPlacementPolicy": {
      "collocation": "COLLOCATED",
      "maxDistance": MAX_DISTANCE
    }
  }

Haz los cambios siguientes:

  • PROJECT_ID: tu ID de proyecto
  • POLICY_NAME: el nombre de la política de posición compacta.
  • MAX_DISTANCE: la configuración de distancia máxima de tus VMs. El valor debe ser 3 para colocar las VMs en los bloques adyacentes o 2 para colocarlas en el mismo bloque. Para obtener información sobre el número máximo de VMs admitidas por cada maxDistance por serie de máquinas, consulta el artículo Acerca de las políticas de colocación compacta de la documentación de Compute Engine.
  • REGION: la región en la que quieres crear la política de posición compacta. Especifica una región en la que esté disponible el tipo de máquina que quieras usar. Para obtener información sobre las regiones, consulta Regiones y zonas disponibles.

Crear instancias de VM en bloque

En las instrucciones de esta sección se describe cómo crear máquinas virtuales H4D en bloque.

Consulta las siguientes limitaciones antes de crear instancias H4D con Cloud RDMA:

  • No puedes usar la migración en directo durante los eventos de mantenimiento del host con instancias que tengan una interfaz de red Cloud RDMA. Debes configurar la instancia para que se finalice durante los eventos de mantenimiento.
  • La interfaz de red gVNIC solo puede tener una dirección IPv6, ya sea interna o externa, pero no ambas.
  • Solo puedes usar direcciones IPv4 con interfaces de red IRDMA y redes VPC de Falcon.

gcloud

Para crear VMs en bloque, usa el comando gcloud compute instances create.

Los parámetros que debe especificar dependen de la opción de consumo que utilice en esta implementación. Selecciona la pestaña que corresponda al modelo de aprovisionamiento de tu opción de consumo.

Con reserva

Empieza con el siguiente gcloud compute instances create comando.

   gcloud compute instances bulk create \
       --name-pattern=NAME_PATTERN \
       --count=COUNT \
       --machine-type=MACHINE_TYPE \
       --image-family=IMAGE_FAMILY \
       --image=project= IMAGE_PROJECT \
       --instance-termination=action=DELETE \
       --maintenance-policy=TERMINATE \
       --region=REGION \
       --boot-disk-type=hyperdisk-balanced \
       --boot-disk-size=DISK_SIZE
   

Este agente debe seguir estos pasos:

  1. Haz los cambios siguientes:

    • NAME_PATTERN: el patrón de nombre de las instancias. Por ejemplo, si usas vm-# para el patrón de nombre, se generarán instancias con nombres como vm-1 y vm-2, hasta el número especificado por la marca --count.
    • COUNT: número de instancias que se van a crear.
    • MACHINE_TYPE: el tipo de máquina que se va a usar en las instancias. Usa uno de los tipos de máquinas H4D, como h4d-highmem-192-lssd.
    • IMAGE_FAMILY: la familia de imágenes de la imagen del SO que quieras usar. Por ejemplo, rocky-linux-9-optimized-gcp.

      Para ver una lista de las imágenes de SO compatibles, consulta Sistema operativo compatible. Elige una versión de imagen del SO que admita la interfaz IRDMA.

    • IMAGE_PROJECT: el ID del proyecto de la imagen del SO. Por ejemplo, rocky-linux-cloud.
    • REGION: especifica una región en la que esté disponible el tipo de máquina que quieras usar. Por ejemplo, europe-west4. Para obtener información sobre las regiones disponibles, consulta Regiones y zonas disponibles.
    • DISK_SIZE: opcional, tamaño del disco de arranque en GiB. El valor debe ser un número entero.
  2. Opcional: Si has elegido usar una política de emplazamiento compacta, incluye la marca --resource-policies:

             --resource-policies=POLICY_NAME
             

    Sustituye POLICY_NAME por el nombre de la política de colocación compacta.

  3. Para especificar la reserva, haz una de las siguientes acciones:

    • Si usas una política de colocación o si las VMs se pueden colocar en cualquier lugar de tu bloque de reserva, añade las siguientes marcas al comando:

                 --provisioning-model=RESERVATION_BOUND \
                 --reservation-affinity=specific \
                 --reservation=RESERVATION_NAME \
                 

      Sustituye RESERVATION_NAME por el nombre de la reserva; por ejemplo, h4d-highmem-exfr-prod.

    • Si no usas una política de colocación compacta y quieres que las instancias se coloquen en un bloque específico, añade las siguientes marcas al comando:

                 --provisioning-model=RESERVATION_BOUND \
                 --reservation-affinity=specific \
                 --reservation=<RESERVATION_BLOCK_NAME \
                 

      Sustituye RESERVATION_BLOCK_NAME por el nombre de un bloque de la reserva. Por ejemplo, h4d-highmem-exfr-prod/reservationBlocks/h4d-highmem-exfr-prod-block-1.

    Para ver el nombre de la reserva o los bloques de reserva disponibles, consulta Ver capacidad.

  4. Opcional: Para configurar las instancias de forma que usen RDMA de Cloud, añade al comando las marcas similares a las siguientes. En este ejemplo se configuran dos interfaces de red GVNIC y una interfaz de red IRDMA:

            --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 \
            

    Haz los cambios siguientes:

    • GVNIC_NAME_PREFIX: el prefijo de nombre que has usado al crear la red VPC y la subred de la interfaz gVNIC.

      En el caso de la primera interfaz de red gVNIC, puedes omitir las marcas network y subnet para usar la red default.

    • STACK_TYPE: Opcional: el tipo de pila de la interfaz de red gVNIC. STACK_TYPE debe ser IPV4_ONLY o IPV4_IPV6. El valor predeterminado es IPV4_ONLY.
    • EXTERNAL_IPV4_ADDRESS: Opcional: una dirección IPv4 externa estática que se va a usar con la interfaz de red. Debes haber reservado una dirección IPv4 externa previamente. Realiza una de las siguientes acciones:
      • Especifica una dirección IPv4 válida de la subred.
      • Usa la marca no-address si no quieres que la interfaz de red tenga una dirección IP externa.
      • Especifica address='' si quieres que la interfaz reciba una dirección IP externa efímera.

      Para especificar una dirección IPv6 externa, usa la marca --external-ipv6-address.

    • RDMA_NAME_PREFIX: el prefijo de nombre que usaste al crear la red de VPC y la subred de la interfaz IRDMA.
  5. Opcional: Añade más marcas para personalizar el resto de las propiedades de la instancia, según sea necesario.
  6. Ejecuta el comando.

Spot

Empieza con el siguiente gcloud compute instances create comando.

   gcloud compute instances bulk create \
       --name-pattern=NAME_PATTERN \
       --count=COUNT \
       --machine-type=MACHINE_TYPE \
       --image-family=IMAGE_FAMILY \
       --image=project= IMAGE_PROJECT \
       --region=REGION \
       --boot-disk-type=hyperdisk-balanced \
       --boot-disk-size=DISK_SIZE \
       --provisioning-model=SPOT \
       --instance-termination=action=TERMINATION_ACTION
   

Este agente debe seguir estos pasos:

  1. Haz los cambios siguientes:

    • NAME_PATTERN: el patrón de nombre de las instancias. Por ejemplo, si usas vm-# para el patrón de nombre, se generarán instancias con nombres como vm-1 y vm-2, hasta el número especificado por la marca --count.
    • COUNT: número de instancias que se van a crear.
    • MACHINE_TYPE: el tipo de máquina que se va a usar en las instancias. Usa uno de los tipos de máquinas H4D, como h4d-highmem-192-lssd.
    • IMAGE_FAMILY: la familia de imágenes de la imagen del SO que quieras usar. Por ejemplo, rocky-linux-9-optimized-gcp.

      Para ver una lista de las imágenes de SO compatibles, consulta Sistema operativo compatible. Elige una versión de imagen del SO que admita la interfaz IRDMA.

    • IMAGE_PROJECT: el ID del proyecto de la imagen del SO. Por ejemplo, rocky-linux-cloud.
    • REGION: especifica una región en la que esté disponible el tipo de máquina que quieras usar. Por ejemplo, europe-west4. Para obtener información sobre las regiones disponibles, consulta Regiones y zonas disponibles.
    • DISK_SIZE: opcional, tamaño del disco de arranque en GiB. El valor debe ser un número entero.
    • TERMINATION_ACTION: la acción que se debe llevar a cabo cuando Compute Engine desaloja la instancia, ya sea STOP (valor predeterminado) o DELETE.

  2. Opcional: Si has elegido usar una política de emplazamiento compacta, añade la siguiente marca al comando:

          --resource-policies=POLICY_NAME \
          

    Sustituye POLICY_NAME por el nombre de la política de colocación compacta.

  3. Opcional: Para configurar las instancias de forma que usen RDMA de Cloud, añade al comando las marcas similares a las siguientes. En este ejemplo se configuran dos interfaces de red GVNIC y una interfaz de red IRDMA:

          --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 \
          

    Haz los cambios siguientes:

    • GVNIC_NAME_PREFIX: el prefijo de nombre que has usado al crear la red VPC y la subred de la interfaz gVNIC.

      En el caso de la primera interfaz de red gVNIC, puedes omitir las marcas network y subnet para usar la red default.

    • STACK_TYPE: Opcional: el tipo de pila de la interfaz de red gVNIC. STACK_TYPE debe ser IPV4_ONLY o IPV4_IPV6. El valor predeterminado es IPV4_ONLY.
    • EXTERNAL_IPV4_ADDRESS: Opcional: una dirección IPv4 externa estática que se va a usar con la interfaz de red. Debes haber reservado una dirección IPv4 externa previamente. Realiza una de las siguientes acciones:
      • Especifica una dirección IPv4 válida de la subred.
      • Usa la marca no-address si no quieres que la interfaz de red tenga una dirección IP externa.
      • Especifica address='' si quieres que la interfaz reciba una dirección IP externa efímera.

      Para especificar una dirección IPv6 externa, usa la marca --external-ipv6-address.

    • RDMA_NAME_PREFIX: el prefijo de nombre que usaste al crear la red de VPC y la subred de la interfaz IRDMA.
  4. Opcional: Añade más marcas para personalizar el resto de las propiedades de la instancia, según sea necesario.
  5. Ejecuta el comando.

REST

Para crear instancias de VM en bloque, haz una solicitud POST al método instances.bulkInsert.

Los parámetros que debe especificar dependen de la opción de consumo que utilice en esta implementación. Selecciona la pestaña que corresponda al modelo de aprovisionamiento de tu opción de consumo.

Con reserva

Empieza con la siguiente solicitud POST al método instances.bulkInsert.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert
    {
      "namePattern":"NAME_PATTERN",
      "count":"COUNT",
      "instanceProperties":{
        "machineType":"MACHINE_TYPE",
        "disks":[
          {
            "boot":true,
            "initializeParams":{
              "diskSizeGb":"DISK_SIZE",
              "diskType":"hyperdisk-balanced",
              "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
            },
            "mode":"READ_WRITE",
            "type":"PERSISTENT"
          }
        ],
        "scheduling":{
            "provisioningModel":"RESERVATION_BOUND",
            "instanceTerminationAction":"DELETE",
            "onHostMaintenance": "TERMINATE",
            "automaticRestart":true
        }
      }
    }
    

Este agente debe seguir estos pasos:

  1. Haz los cambios siguientes:

    • PROJECT_ID: el ID del proyecto en el que quieres crear las instancias.
    • ZONE: especifica una zona en la que esté disponible el tipo de máquina que quieras usar. Si usas una política de colocación compacta, utiliza una zona de la misma región que la política de colocación compacta. Para obtener información sobre las regiones en las que están disponibles los tipos de máquinas H4D, consulta Regiones y zonas disponibles.
    • NAME_PATTERN: el patrón de nombre de las instancias. Por ejemplo, si se usa vm-# como patrón de nombre, se generarán instancias con nombres como vm-1 y vm-2, hasta el número especificado en el campo count.
    • COUNT: número de instancias que se van a crear.
    • MACHINE_TYPE: el tipo de máquina que se va a usar en las instancias. Usa uno de los tipos de máquinas H4D, como h4d-highmem-192-lssd.
    • DISK_SIZE: tamaño del disco de arranque en GiB.
    • IMAGE_PROJECT: el ID de proyecto de la imagen del SO, por ejemplo, debian-cloud.
    • IMAGE_FAMILY: la familia de imágenes del SO de la imagen que quieras usar. Por ejemplo, rocky-linux-9-optimized-gcp. Para consultar una lista de imágenes de SO compatibles, consulta Sistema operativo compatible. Elige una versión de imagen del SO que admita la interfaz IRDMA.
  2. Opcional: Si has elegido usar una política de emplazamiento compacta, incluye el parámetro resourcePolicies en el cuerpo de la solicitud como parte del parámetro "instanceProperties".

              "resourcePolicies": [
                "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
              ],
              

    Sustituye POLICY_NAME por el nombre de la política de colocación compacta.

  3. Para especificar la reserva, haz una de las siguientes acciones:

    • Si utilizas una política de colocación o si las máquinas virtuales se pueden colocar en cualquier lugar de tu bloque de reserva, añade lo siguiente al cuerpo de la solicitud como parte del parámetro "instanceProperties":

                 "reservationAffinity":{
                   "consumeReservationType":"SPECIFIC_RESERVATION",
                   "key":"compute.googleapis.com/reservation-name",
                   "values":[
                     "RESERVATION_NAME"
                   ],
                 },
                 

      Sustituye RESERVATION_NAME por el nombre de la reserva; por ejemplo, h4d-highmem-exfr-prod.

    • Si no usas una política de colocación compacta o quieres que las instancias se coloquen en un bloque específico, añade lo siguiente al cuerpo de la solicitud como parte del parámetro "instanceProperties":

                  "reservationAffinity":{
                    "consumeReservationType":"SPECIFIC_RESERVATION",
                    "key":"compute.googleapis.com/reservation-name",
                    "values":[
                      "RESERVATION_BLOCK_NAME"
                    ],
                  },
                 

      Sustituye RESERVATION_BLOCK_NAME por el nombre de un bloque de la reserva. Por ejemplo, h4d-highmem-exfr-prod/reservationBlocks/h4d-highmem-exfr-prod-block-1.

    Para ver el nombre de la reserva o los bloques de reserva disponibles, consulta Ver capacidad.

  4. Si quieres configurar las instancias para que usen Cloud RDMA, incluye un bloque de parámetros similar al siguiente en el cuerpo de la solicitud como parte del parámetro "instanceProperties". En este ejemplo, se configuran dos interfaces de red GVNIC y una interfaz de red IRDMA:

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

    Haz los cambios siguientes:

    • GVNIC_NAME_PREFIX: el prefijo de nombre que has usado al crear la red VPC y la subred de la interfaz gVNIC.

      En el caso de la interfaz de red gVNIC, puedes omitir los campos network y subnetwork para usar la red default.

    • EXTERNAL_IPV4_ADDRESS: Opcional: una dirección IPv4 externa estática que se va a usar con la interfaz de red. Debes haber reservado una dirección IPv4 externa previamente.
    • RDMA_NAME_PREFIX: el prefijo de nombre que usaste al crear la red VPC y la subred de la interfaz IRDMA.
  5. Opcional: Personaliza el resto de las propiedades de la instancia según sea necesario.
  6. Envía la solicitud.

Spot

Empieza con la siguiente solicitud POST al método instances.bulkInsert.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert
    {
      "namePattern":"NAME_PATTERN",
      "count":"COUNT",
      "instanceProperties":{
        "machineType":"MACHINE_TYPE",
        "disks":[
          {
            "boot":true,
            "initializeParams":{
              "diskSizeGb":"DISK_SIZE",
              "diskType":"hyperdisk-balanced",
              "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
            },
            "mode":"READ_WRITE",
            "type":"PERSISTENT"
          }
        ],
        "scheduling":{
            "provisioningModel":"SPOT",
            "instanceTerminationAction":"TERMINATION_ACTION"
        }
      }
    }
    

Este agente debe seguir estos pasos:

  1. Haz los cambios siguientes:

    • PROJECT_ID: el ID del proyecto en el que quieres crear las instancias.
    • ZONE: especifica una zona en la que esté disponible el tipo de máquina que quieras usar. Si usas una política de colocación compacta, utiliza una zona de la misma región que la política de colocación compacta. Para obtener información sobre las regiones en las que están disponibles los tipos de máquinas H4D, consulta Regiones y zonas disponibles.
    • NAME_PATTERN: el patrón de nombre de las instancias. Por ejemplo, si se usa vm-# como patrón de nombre, se generarán instancias con nombres como vm-1 y vm-2, hasta el número especificado en el campo count.
    • COUNT: número de instancias que se van a crear.
    • MACHINE_TYPE: el tipo de máquina que se va a usar en las instancias. Usa uno de los tipos de máquinas H4D, como h4d-highmem-192-lssd.
    • DISK_SIZE: tamaño del disco de arranque en GiB.
    • IMAGE_PROJECT: el ID de proyecto de la imagen del SO, por ejemplo, debian-cloud.
    • IMAGE_FAMILY: la familia de imágenes del SO de la imagen que quieras usar. Por ejemplo, rocky-linux-9-optimized-gcp. Para consultar una lista de imágenes de SO compatibles, consulta Sistema operativo compatible. Elige una versión de imagen del SO que admita la interfaz IRDMA.
    • TERMINATION_ACTION: la acción que se debe llevar a cabo cuando Compute Engine desaloja la instancia. Puede ser STOP (valor predeterminado) o DELETE.

  2. Opcional: Si has elegido usar una política de emplazamiento compacta, incluye el parámetro resourcePolicies como parte del parámetro "instanceProperties".

              "resourcePolicies": [
                "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
              ]
              
  3. Si quieres configurar las instancias para que usen Cloud RDMA, incluye un bloque de parámetros similar al siguiente en el cuerpo de la solicitud como parte del parámetro "instanceProperties". En este ejemplo, se configuran dos interfaces de red GVNIC y una interfaz de red IRDMA:

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

    Haz los cambios siguientes:

    • GVNIC_NAME_PREFIX: el prefijo de nombre que has usado al crear la red VPC y la subred de la interfaz gVNIC.

      En el caso de la interfaz de red gVNIC, puedes omitir los campos network y subnetwork para usar la red default.

    • EXTERNAL_IPV4_ADDRESS: Opcional: una dirección IPv4 externa estática que se usará con la interfaz de red. Debes haber reservado una dirección IPv4 externa previamente.
    • RDMA_NAME_PREFIX: el prefijo de nombre que usaste al crear la red VPC y la subred de la interfaz IRDMA.
  4. Opcional: Personaliza el resto de las propiedades de la instancia según sea necesario.
  5. Envía la solicitud.

Siguientes pasos