Crear un MIG para cargas de trabajo de HPC con consumo vinculado a reservas


En este tutorial se muestra cómo crear un grupo de instancias gestionado (MIG) que utilice un tipo de máquina H4D. La MIG usa el modelo de aprovisionamiento vinculado a reservas para obtener recursos de computación.

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

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

Este tutorial está dirigido a ingenieros de HPC, administradores y operadores de plataformas, y a especialistas en datos y MPI que quieran crear un grupo de instancias de HPC interconectadas para ejecutar sus cargas de trabajo. Las instancias resultantes no usan un orquestador para gestionar las instancias ni para programar los trabajos.

Si quieres crear un grupo de instancias gestionado, pero no necesitas crear una implementación densa de instancias, consulta Escenarios básicos para crear grupos de instancias gestionados.

Objetivos

  • Reserva 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 instancia.
  • Crea un MIG con uno de los siguientes métodos:
    • Crea un MIG con un tamaño de destino.
    • Crea un MIG y una solicitud de cambio de tamaño.
  • Elimina los recursos que has creado.

Costes

En este documento, se utilizan los siguientes componentes facturables de Google Cloud:

Para generar una estimación de costes basada en el uso previsto, utiliza la calculadora de precios.

Los usuarios nuevos Google Cloud pueden disfrutar de una prueba gratuita.

Cuando termines las tareas que se describen en este documento, puedes evitar que se te siga facturando eliminando los recursos que has creado. Para obtener más información, consulta la sección Limpiar.

Antes de empezar

  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 utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud 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 utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud 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. Capacidad de reserva

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

    Crear una reserva futura para bloques de capacidad

    Esta acción te permite reservar bloques de capacidad durante un periodo definido, a partir de una fecha y una hora concretas que elijas. La reserva reserva bloques o subbloques de capacidad en un clúster, lo que permite realizar despliegues densos de instancias de máquina virtual.

    Para crear una reserva futura para una implementación densa, sigue estos pasos:

    1. Sigue el proceso para reservar capacidad poniéndote en contacto con tu equipo de cuenta en la documentación de AI Hypercomputer. En tu próxima solicitud de reserva, proporciona la información tal como se indica en la documentación, con las siguientes excepciones:

      • Tipo de máquina: especifica el tipo de máquina H4D. h4d-highmem-192-lssd
      • Zona: especifica una de las zonas en las que están disponibles las instancias H4D, tal como se indica en la tabla Regiones y zonas disponibles. Para mostrar las zonas disponibles solo para H4D, en la lista Selecciona una serie de máquinas, selecciona H4D.
      • Tipo de programación del mantenimiento: en las instancias H4D, puedes especificar GROUPED o INDEPENDENT.
      • Modo operativo de la reserva: en las instancias H4D, especifica el valor HIGHLY_AVAILABLE_CAPACITY.
    2. La cuota se aumenta automáticamente antes de que se proporcione la capacidad. No es necesario que hagas nada.

    3. Cuando cree la plantilla de instancia, especifique el modelo de aprovisionamiento enlazado a la reserva. Las instancias de VM del MIG se aprovisionan a partir de tu capacidad reservada.

    Se te cobra todo el periodo de reserva, independientemente de si usas los recursos reservados durante todo el periodo o no. Para obtener más información, consulta Facturación de reservas.

    Crear una reserva futura en el modo Calendario

    Si necesitas usar la capacidad reservada durante menos de 90 días, puedes crear una reserva futura en el modo de calendario con Dynamic Workload Scheduler. Para obtener recursos de reserva futuros, sigue estos pasos:

    1. Busca capacidad disponible y reserva recursos con la Google Cloud consola, la CLI de gcloud o la API Compute Engine.
    2. No se te cobrará ninguna cuota y no es necesario que hagas nada.
    3. Cuando cree la plantilla de instancia, especifique el modelo de aprovisionamiento enlazado a la reserva. Las instancias de VM del MIG se aprovisionan a partir de tu capacidad reservada.

    Se te cobra todo el periodo de reserva, independientemente de si usas los recursos reservados durante todo el periodo o no. Para obtener más información, consulta los precios de Dynamic Workload Scheduler.

    Opcional: Crear 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 VPC y una subred. Si omite esta configuración, se usarán la red y la subred predeterminadas.

    Las instancias H4D se pueden configurar para usar Cloud RDMA. Cloud RDMA ofrece funciones de mensajería fiables y de baja latencia mediante un controlador de red IRDMA que admite el acceso directo a memoria remota (RDMA) entre instancias de Compute Engine.

    Para este tutorial, necesitarás lo siguiente:

    • Si quieres configurar las instancias H4D 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.

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

    • 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 o iRDMA para la conexión en red de Cloud RDMA 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 hace un total de 10 NICs 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 red para IRDMA.

    1. Opcional: Antes de ejecutar la secuencia de comandos, enumera los perfiles de red RDMA para verificar que hay 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
        

      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 estándar que usa 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 RDMA. 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 utilices 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 cargas de trabajo

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

    Si ya tienes una política de carga de trabajo, puedes reutilizarla. 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 compacidad), especifica el campo maxTopologyDistance al crear una política de carga de trabajo.

    Una vez creada una política de carga de trabajo, no se puede actualizar. Para hacer cambios en una política de carga de trabajo, debes crear una nueva.

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

    gcloud

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

    • Para colocar las VMs de la mejor forma posible, 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 que las máquinas virtuales estén ubicadas en el mismo lugar, 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
      

    Haz los cambios siguientes:

    • WORKLOAD_POLICY_NAME: el nombre de la política de carga de trabajo.
    • REGION: la región en la que quieres crear la política de carga de trabajo. Especifica una región en la que quieras crear el MIG y el tipo de máquina que quieras 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 carga de trabajo, haz una POST solicitud al método resourcePolicies.insert.

    • Para asignar las VMs de la mejor forma posible, 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 que las VMs se coloquen de forma estricta, 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"
          }
        }
      

    Haz los cambios siguientes:

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

    Crear una plantilla de instancia

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

    gcloud

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

    Haz los cambios siguientes:

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

      Si usas la red predeterminada, incluye solo un campo --network-interface con el campo nic-type definido como GVNIC. Además, omite los ajustes network y subnetwork de esta interfaz de red.

    • STACK_TYPE: opcional: el tipo de pila que se va a usar en la interfaz gVNIC. Especifica IPV4_ONLY o IPV4_IPV6. Si no especifica ningún valor, se usará IPV4_ONLY de forma predeterminada.
    • EXTERNAL_IPV4_ADDRESS: opcional: una dirección IPv4 externa estática que se va a usar con la interfaz de red gVNIC. Debes haber reservado una dirección IPv4 externa previamente. Elige una de estas opciones:

      • 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 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: el prefijo de nombre que usaste al crear la red VPC y la subred de la interfaz de red IRDMA.

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

    • RESERVATION: el nombre de la reserva que quieras usar.

      RESERVATION: el nombre de la reserva o un bloque específico de una reserva. Para obtener el nombre de la reserva o los bloques disponibles, consulta Ver la capacidad reservada. En función de tus requisitos de colocación de instancias, 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) . A continuación, Compute Engine aplica la política a la reserva y crea instancias en el mismo bloque.

      • Para crear instancias en un bloque específico, haz lo siguiente:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME

    REST

    Para crear una plantilla de instancia regional, envía 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
          }
      }
    }
    

    Haz los cambios siguientes:

    • INSTANCE_TEMPLATE_NAME: el nombre de la plantilla de instancia.
    • MACHINE_TYPE: el tipo de máquina que se va a usar en la instancia. Especifica un tipo de máquina H4D. Para obtener más información, consulta los tipos de máquinas H4D.
    • IMAGE_FAMILY: la familia de imágenes del SO que quieres usar. Para ver una lista de los sistemas operativos compatibles, consulta Sistemas operativos compatibles.
    • IMAGE_PROJECT: el ID de proyecto de la imagen del SO.
    • REGION: la región en la que quieres crear la plantilla de instancia. 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.
    • DISK_SIZE: tamaño del disco de arranque en GiB.
    • GVNIC_NAME_PREFIX: el prefijo de nombre que usaste al crear las redes VPC y las subredes estándar para las interfaces gVNIC.

      Si usas la red predeterminada, incluye solo un campo --network-interface con el campo nic-type definido como GVNIC. Además, omite los ajustes network y subnetwork de esta interfaz de red.

    • EXTERNAL_IPV4_ADDRESS: opcional: una dirección IPv4 externa estática que se va a usar con la interfaz de red gVNIC. Debes haber reservado una dirección IPv4 externa previamente.

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

    • RDMA_NAME_PREFIX: el prefijo de nombre que usaste al crear la red VPC y la subred de la interfaz de red IRDMA.

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

    • RESERVATION: el nombre de la reserva que quieras usar.

      RESERVATION: el nombre de la reserva o un bloque específico de una reserva. Para obtener el nombre de la reserva o los bloques disponibles, consulta Ver la capacidad reservada. En función de tus requisitos de colocación de instancias, 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) . A continuación, Compute Engine aplica la política a la reserva y crea instancias en el mismo bloque.

      • Para crear instancias en un bloque específico, haz lo siguiente:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME

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

    Crear un MIG

    En función de los requisitos de tu carga de trabajo, puedes crear un MIG con una de las siguientes configuraciones:

    Crear un MIG con un tamaño de destino

    Si puedes iniciar el trabajo sin crear todas las instancias de VM a la vez, crea un MIG con un tamaño objetivo. El tamaño objetivo determina el número de instancias de la MIG. La MIG empieza a crear instancias en función de la disponibilidad de recursos actual. Si algún recurso no está disponible temporalmente, el MIG intentará 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 de destino específico, 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 colocación de las VMs. Si no quieres usar una política de carga de trabajo, elimina la marca --workload-policy.

    Crea un MIG de zona 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
      
    Sustituye lo siguiente:
    • MIG_NAME: el nombre del MIG.
    • INSTANCE_TEMPLATE_URL: la URL de la plantilla de instancia que quieres usar para crear VMs en el MIG. La URL puede contener el ID o el nombre de la plantilla de instancia. Especifica uno de los siguientes valores:
      • En el caso de una plantilla de instancia regional, haz lo siguiente: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
      • En el caso de una plantilla de instancia global, haz lo siguiente: INSTANCE_TEMPLATE_ID
    • TARGET_SIZE: el número de VMs que quieres que haya en el MIG.
    • WORKLOAD_POLICY_URL: opcional, la URL de la política de carga de trabajo. Si no quieres usar una política de carga de trabajo, puedes quitar la marca --workload-policy.
    • ZONE: la zona en la que quieres crear el MIG. Si usas una política de carga de trabajo, especifica una zona dentro de la región de la política.
    • REGION: la región en la que quieres crear el MIG. Si usas una política de carga de trabajo, especifica la misma región que la de la política. En el caso de los MIGs regionales, en lugar de una región, puedes especificar las zonas de esa región mediante la marca --zones.

    REST

    Para crear un MIG con un tamaño de destino específico, haz una solicitud POST de la siguiente manera.

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

    Crea un MIG de zona o regional de la siguiente manera:

    • Para crear un MIG zonal, haz 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, haz 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
          }
        }
      
    Sustituye lo siguiente:
    • PROJECT_ID: el ID del proyecto.
    • ZONE: la zona en la que quieres crear el MIG. Si usas una política de carga de trabajo, especifica una zona dentro de la región de la política.
    • REGION: la región en la que quieres 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: la URL de la plantilla de instancia que quieres usar para crear VMs en el MIG. La URL puede contener el ID o el nombre de la plantilla de instancia. Especifica uno de los siguientes valores:
      • En el caso de una plantilla de instancia regional, haz lo siguiente: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
      • En el caso de una plantilla de instancia global, haz lo siguiente: INSTANCE_TEMPLATE_ID
    • MIG_NAME: el nombre del MIG.
    • TARGET_SIZE: el número de VMs que quieres que haya en el MIG.
    • WORKLOAD_POLICY_URL: opcional, la URL de la política de carga de trabajo. Si no quieres usar una política de carga de trabajo, puedes quitar el campo resourcePolicies.workloadPolicy.

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

    Para crear todas las instancias solicitadas al mismo tiempo, crea un MIG sin ninguna instancia. 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 añade 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 colocación de las VMs. Si no quieres usar una política de carga de trabajo, elimina la marca --workload-policy.

    Crea un MIG de zona 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, sigue estos pasos:

      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 mediante 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, sigue estos pasos:

      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 grupo de instancias gestionado regional con el comando beta instance-groups managed resize-requests create de la siguiente manera:

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

    Haz los cambios siguientes:

    • MIG_NAME: el nombre del MIG.
    • INSTANCE_TEMPLATE_URL: la URL de la plantilla de instancia que quieres usar para crear VMs en el MIG. La URL puede contener el ID o el nombre de la plantilla de instancia. Especifica uno de los siguientes valores:
      • En el caso de una plantilla de instancia regional, haz lo siguiente: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
      • En el caso de una plantilla de instancia global, haz lo siguiente: INSTANCE_TEMPLATE_ID
    • WORKLOAD_POLICY_URL: opcional, la URL de la política de carga de trabajo. Si no quieres usar una política de carga de trabajo, puedes quitar la marca --workload-policy.
    • ZONE: la zona en la que quieres crear el MIG. En el caso de los MIG regionales, también debe especificar una zona. Esta zona debe ser la que contenga el perfil de tu red de VPC y debe ser una zona en la que esté disponible el tipo de máquina. 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 en el MIG especificado. De lo contrario, no se podrá crear la solicitud de cambio de tamaño.
    • POPULATION_METHOD: método para añadir instancias al MIG. Usa una de las siguientes opciones:

      • --resize-by=COUNT: añade el número especificado de instancias al MIG a la vez. Los nombres de las instancias se generan automáticamente.
      • --instances=INSTANCE_NAME_LIST: añade al MIG todas las instancias con los nombres especificados a la vez. Sustituye INSTANCE_NAME_LIST por una lista de nombres de instancias separados por comas. El número de nombres que proporciones determinará el número de instancias que se crearán con esta solicitud de cambio de tamaño.
    • REGION: 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 carga de trabajo para especificar la colocación de las VMs. Si no quieres usar una política de carga de trabajo, elimina el campo resourcePolicies.workloadPolicy del cuerpo de la solicitud.

    Crea un MIG de zona 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, sigue estos pasos:
      1. Crea un MIG zonal haciendo 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 haciendo 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, sigue estos pasos:
      1. Crea un MIG regional haciendo 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 haciendo 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
        }
        

    Haz los cambios siguientes:

    • PROJECT_ID: el ID del proyecto.
    • ZONE: la zona en la que quieres crear el MIG. En el caso de los MIG regionales, también debe especificar una zona. Esta zona debe ser la que contenga el perfil de tu red de VPC y debe ser una zona en la que esté disponible el tipo de máquina. Para obtener más información, consulta Limitaciones.
    • REGION: la región en la que quieres crear el MIG.
    • INSTANCE_TEMPLATE_URL: la URL de la plantilla de instancia que quieres usar para crear VMs en el MIG. La URL puede contener el ID o el nombre de la plantilla de instancia. Especifica uno de los siguientes valores:
      • En el caso de una plantilla de instancia regional, haz lo siguiente: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
      • En el caso de una plantilla de instancia global, haz lo siguiente: INSTANCE_TEMPLATE_ID
    • MIG_NAME: el nombre del MIG.
    • WORKLOAD_POLICY_URL: opcional, la URL de la política de carga de trabajo. Si no quieres usar una política de carga 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 en el MIG especificado. De lo contrario, no se podrá crear la solicitud de cambio de tamaño.
    • POPULATION_METHOD: método para añadir instancias al MIG. Usa una de las siguientes opciones:

      • "resizeBy":COUNT: sustituye COUNT por el número de instancias que quieras añadir al MIG a la vez. Los nombres de las instancias se generan automáticamente.
      • "instanceNames":INSTANCE_NAME_LIST: añade al MIG todas las instancias con los nombres especificados a la vez. Sustituye INSTANCE_NAME_LIST por una lista de nombres de instancias separados por comas. El número de nombres que proporciones determinará el número de instancias que se crearán con esta solicitud de cambio de tamaño.

    Limpieza

    Para evitar que los recursos utilizados en este tutorial se cobren en tu cuenta de Google Cloud, elimina el proyecto que contiene los recursos o conserva el proyecto y elimina los recursos.

    Eliminar un proyecto

    Delete a Google Cloud project:

    gcloud projects delete PROJECT_ID

    Eliminar los recursos

    1. Eliminar solicitudes de cambio de tamaño en un MIG.

    2. Elimina el MIG y las instancias.

    3. Si el estado de eliminación automática de los discos se ha definido como False en la plantilla de instancia, los discos no se eliminarán automáticamente cuando se elimine la instancia de máquina virtual. Puede eliminar los discos con uno de los siguientes métodos:

      Consola

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

      Ir a Discos

      1. Seleccione las filas que contengan los discos que ha creado en este tutorial. Asegúrate de que la columna En uso por esté vacía en cada disco.

      2. Haz clic en Eliminar y, a continuación, haz clic en Eliminar para confirmar la acción.

      gcloud

      Usa el gcloud compute disks deletecomando.

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

      Haz los cambios siguientes:

      • DISK_NAME : el nombre del disco que se va a eliminar
      • PROJECT_ID: el ID del proyecto que contiene el disco.
      • ZONE: la zona del disco

      REST

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

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

      Haz los cambios siguientes:

      • PROJECT_ID: el ID del proyecto que contiene el disco.
      • ZONE: la zona del disco
      • DISK_NAME : el nombre del disco que se va a eliminar
    4. Elimina las cadenas.

    5. Elimina la plantilla de instancia.

    Siguientes pasos