Aprovisionar VMs en nodos de único cliente


En esta página se describe cómo aprovisionar VMs en nodos de único cliente, que son servidores físicos que ejecutan VMs de un solo proyecto. Antes de aprovisionar VMs en nodos de único cliente, consulta la descripción general de los nodos de único cliente.

Para aprovisionar una máquina virtual en un nodo de único cliente, se necesita lo siguiente:

  1. Crear una plantilla de nodo de único cliente. La plantilla de nodo de único cliente especifica propiedades uniformes para todos los nodos de único cliente de un grupo de nodos de único cliente.

  2. Crear un grupo de nodos de único cliente con la plantilla de nodo de único cliente creada anteriormente.

  3. Crear máquinas virtuales y aprovisionarlas en un grupo de nodos de único cliente.

Antes de empezar

  • Antes de aprovisionar VMs en un nodo de único cliente, consulta tu cuota. En función del número y el tamaño de los nodos que reserves, es posible que tengas que solicitar cuota adicional.
  • 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 autenticación de Google Cloud .

Crear una plantilla de nodo de único cliente

Las plantillas de nodos de único cliente son recursos regionales que especifican propiedades para grupos de nodos de único cliente. Debes crear una plantilla de nodo antes de crear un grupo de nodos. Sin embargo, si usas la consola de Google Cloud, debes crear plantillas de nodo durante la creación de un grupo de nodos de único propietario. Google Cloud

Consola

Debes crear una plantilla de nodo de único propietario antes de crear un grupo de nodos. Si usas la consola de Google Cloud , debes crear la plantilla de nodo durante la creación de un grupo de nodos de único propietario. La nueva plantilla de nodo se crea en la misma región que especifique en las propiedades del grupo de nodos.

  1. En la Google Cloud consola, ve a la página Nodos de un solo inquilino.

    Ir a nodos de único cliente

  2. Haz clic en Crear grupo de nodos.

  3. Especifica un Nombre para el grupo de nodos.

  4. Especifica una región en la que crear la plantilla de nodo. Puedes usar la plantilla de nodo para crear grupos de nodos en cualquier zona de esta región.

  5. Especifica la zona y haz clic en Continuar.

  6. En la lista Node template (Plantilla de nodo), haga clic en Create node template (Crear plantilla de nodo) para empezar a crear una plantilla de nodo de único inquilino.

  7. Especifica un nombre para la plantilla de nodo.

  8. Especifica el Tipo de nodo de cada nodo de único propietario del grupo de nodos que se va a crear a partir de esta plantilla de nodo.

  9. Opcional: también puede especificar las siguientes propiedades para el nodo template.

    • Añade un SSD local y un acelerador de GPU.
    • Selecciona Habilitar exceso de compromiso de CPU para controlar los niveles de exceso de compromiso de CPU de cada VM programada en el nodo.

    • Añade etiquetas de afinidad de nodos. Las etiquetas de afinidad te permiten agrupar de forma lógica nodos y grupos de nodos. Más adelante, cuando aprovisiones máquinas virtuales, podrás especificar etiquetas de afinidad en las máquinas virtuales para programarlas en un conjunto específico de nodos o grupos de nodos. Para obtener más información, consulta Afinidad y antiafinidad de nodos.

  10. Haga clic en Crear para terminar de crear la plantilla de nodo.

  11. Opcional: Para añadir una plantilla de nodos de único inquilino en otra región, repite los pasos anteriores.

Para ver las plantillas de nodo, haga clic en Plantillas de nodo en la página Nodos de un solo inquilino.

gcloud

Usa el comando gcloud compute sole-tenancy node-templates create para crear una plantilla de nodo:

gcloud compute sole-tenancy node-templates create TEMPLATE_NAME \
  --node-type=NODE_TYPE \
  [--region=REGION \]
  [--node-affinity-labels=AFFINITY_LABELS \]
  [--accelerator type=GPU_TYPE,count=GPU_COUNT \]
  [--disk type=local-ssd,count=DISK_COUNT,size=DISK_SIZE \]
  [--cpu-overcommit-type=CPU_OVERCOMMIT_TYPE]

Haz los cambios siguientes:

  • TEMPLATE_NAME: el nombre de la nueva plantilla de nodo.

  • NODE_TYPE: el tipo de nodo de los nodos de único cliente creados a partir de esta plantilla. Usa el comando gcloud compute sole-tenancy node-types list para obtener una lista de los tipos de nodo disponibles en cada zona.

  • REGION: la región en la que se creará la plantilla de nodo. Puede usar esta plantilla para crear grupos de nodos en cualquier zona de esta región.

  • AFFINITY_LABELS: las claves y los valores, [KEY=VALUE,...], de las etiquetas de afinidad. Las etiquetas de afinidad te permiten agrupar lógicamente nodos y grupos de nodos. Más adelante, cuando aprovisiones máquinas virtuales, podrás especificar etiquetas de afinidad en las máquinas virtuales para programarlas en un conjunto específico de nodos o grupos de nodos. Para obtener más información, consulta Afinidad y antiafinidad de nodos.

  • GPU_TYPE: el tipo de GPU de cada nodo de único inquilino creado a partir de esta plantilla de nodo. Para obtener información sobre la disponibilidad de las GPUs por zonas, usa el comando gcloud compute accelerator-types list y elige una zona en la que esté disponible el tipo de nodo de un solo inquilino n1 o g2. En función de la disponibilidad zonal, elige una de las siguientes opciones:

    • nvidia-l4
    • nvidia-tesla-p100
    • nvidia-tesla-p4
    • nvidia-tesla-t4
    • nvidia-tesla-v100
  • GPU_COUNT: el número de GPUs que se debe especificar en función del tipo de GPU. Asigna el valor especificado para el tipo de GPU, tal como se muestra en la siguiente tabla:

    GPU_TYPE GPU_COUNT
    nvidia-l4 8
    nvidia-tesla-p100 4
    nvidia-tesla-p4 4
    nvidia-tesla-t4 4
    nvidia-tesla-v100 8
  • DISK_COUNT: número de discos SSD. Su valor debe ser 16 o 24.

  • DISK_SIZE: valor opcional del tamaño de la partición de la SSD local en GB. El único tamaño de partición admitido es 375. Si no defines este valor, se asignará 375 de forma predeterminada.

  • CPU_OVERCOMMIT_TYPE: el tipo de compromiso de CPU de una VM. Su valor debe ser enabled o none.

REST

Usa el método nodeTemplates.insert para crear una plantilla de nodo:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/nodeTemplates

{
  "name": "TEMPLATE_NAME",
  "nodeType": "NODE_TYPE",
  "nodeAffinityLabels": {
    "KEY": "VALUE",
    ...
  },
  "accelerators": [
    {
      "acceleratorType": "GPU_TYPE",
      "acceleratorCount": GPU_COUNT
    }
  ],
  "disks": [
    {
      "diskType": "local-ssd",
      "diskSizeGb": DISK_SIZE,
      "diskCount": DISK_COUNT
    }
  ],
  "cpuOvercommitType": CPU_OVERCOMMIT_TYPE
}

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto.

  • REGION: la región en la que se creará la plantilla de nodo. Puede usar esta plantilla para crear grupos de nodos en cualquier zona de esta región.

  • TEMPLATE_NAME: el nombre de la nueva plantilla de nodo.

  • NODE_TYPE: el tipo de nodo de los nodos de único cliente creados a partir de esta plantilla. Usa el método nodeTypes.list para obtener una lista de los tipos de nodos disponibles en cada zona.

  • KEY: el valor nodeAffinityLabels que especifica la parte de la clave de una etiqueta de afinidad de nodo expresada como un par clave-valor. Las etiquetas de afinidad te permiten agrupar lógicamente nodos y grupos de nodos. Más adelante, al aprovisionar máquinas virtuales, puedes especificar etiquetas de afinidad en las máquinas virtuales para programarlas en un conjunto específico de nodos o grupos de nodos. Para obtener más información, consulta Afinidad y antiafinidad de nodos.

  • VALUE: el valor nodeAffinityLabels que especifica la parte del valor de un par clave-valor de etiqueta de afinidad de nodo.

  • GPU_TYPE: el tipo de GPU de cada nodo de único inquilino creado a partir de esta plantilla de nodo. Para obtener información sobre la disponibilidad de las GPUs por zonas, usa el comando gcloud compute accelerator-types list y elige una zona en la que esté disponible el tipo de nodo de único inquilino n1 o g2. En función de la disponibilidad zonal, elige una de las siguientes opciones:

    • nvidia-l4
    • nvidia-tesla-p100
    • nvidia-tesla-p4
    • nvidia-tesla-t4
    • nvidia-tesla-v100
  • GPU_COUNT: número de GPUs de cada nodo de único inquilino creado a partir de esta plantilla de nodo. Asigna el valor especificado para el tipo de GPU, tal como se muestra en la siguiente tabla:

    GPU_TYPE GPU_COUNT
    nvidia-l4 8
    nvidia-tesla-p100 4
    nvidia-tesla-p4 4
    nvidia-tesla-t4 4
    nvidia-tesla-v100 8
  • DISK_SIZE: valor opcional del tamaño de la partición de la SSD local en GB. El único tamaño de partición admitido es 375. Si no defines este valor, se asignará 375 de forma predeterminada.

  • DISK_COUNT: número de discos SSD. Su valor debe ser 16 o 24.

  • CPU_OVERCOMMIT_TYPE: tipo de exceso de compromiso de CPU. Su valor debe ser enabled, none o CPU_OVERCOMMIT_TYPE_UNSPECIFIED.

Crear un grupo de nodos de único cliente

Con la plantilla de nodo de único cliente que has creado anteriormente, crea un grupo de nodos de único cliente. Un grupo de nodos de único cliente hereda las propiedades especificadas por la plantilla de nodos de único cliente y tiene valores adicionales que debe especificar.

Consola

  1. En la Google Cloud consola, ve a la página Nodos de un solo inquilino.

    Ir a nodos de único cliente

  2. Haz clic en Crear grupo de nodos para empezar a crear un grupo de nodos.

  3. Especifica un Nombre para el grupo de nodos.

  4. Especifica la Región del grupo de nodos para ver las plantillas de nodos disponibles en esa región.

  5. Especifica la zona de la región en la que quieres crear el grupo de nodos.

  6. Especifica la plantilla de nodo para crear el grupo de nodos o haz clic en Crear plantilla de nodo para crear una plantilla de nodo de único inquilino. La plantilla de nodo seleccionada se aplica al grupo de nodos.

  7. Elige una de las siguientes opciones para el Modo de autoescalado de la herramienta de autoescalado de grupos de nodos:

    • Desactivado: gestiona manualmente el tamaño del grupo de nodos.

    • Activado: los nodos se añaden o se quitan automáticamente del grupo de nodos.

    • Solo ampliar: añade nodos al grupo de nodos cuando se necesite capacidad adicional.

  8. Especifica el Número de nodos del grupo. Si habilitas la herramienta de adaptación dinámica de grupos de nodos, especifica un intervalo para el tamaño del grupo de nodos. Puedes cambiar los valores manualmente más adelante.

  9. En la sección Configure Maintenance Settings (Configurar ajustes de mantenimiento), asigna a la Maintenance policy (Política de mantenimiento) del grupo de nodos de un solo inquilino uno de los siguientes valores. La política de mantenimiento te permite configurar el comportamiento de las VMs del grupo de nodos durante los eventos de mantenimiento del host. Para obtener más información, consulta Políticas de mantenimiento.

    • Predeterminado
    • Reinicio in situ
    • Migrar dentro del grupo de nodos
  10. Puedes elegir entre ventanas de mantenimiento habituales y control de mantenimiento avanzado para gestionar el mantenimiento de tu grupo de nodos de un solo inquilino, como se indica a continuación:

    • Ventana de mantenimiento: selecciona el periodo durante el que quieres que se produzcan los eventos de mantenimiento programados de los nodos de los grupos de nodos de único propietario.

    • Habilitar el control de mantenimiento avanzado para el alquiler exclusivo: Control de mantenimiento avanzado para el alquiler exclusivo te permite controlar los eventos de mantenimiento programados de los grupos de nodos de alquiler exclusivo y minimizar las interrupciones relacionadas con el mantenimiento. Para habilitar el control de mantenimiento avanzado, haz clic en el interruptor Habilitar el control de mantenimiento avanzado para el alquiler exclusivo y ponlo en la posición activado. Si eliges usar esta opción para el mantenimiento de nodos, el campo Ventana de mantenimiento estará inhabilitado y el mantenimiento se realizará según lo configurado en el control de mantenimiento avanzado.

    Ten en cuenta que el control de mantenimiento avanzado solo admite la política de mantenimiento Predeterminada.

  11. Configure los ajustes para compartir especificando una de las siguientes opciones en Configurar ajustes para compartir:

    • Para compartir el grupo de nodos con todos los proyectos de tu organización, elige Compartir este grupo de nodos con todos los proyectos de la organización.
    • Para compartir el grupo de nodos con proyectos específicos de tu organización, elige Compartir este grupo de nodos con proyectos seleccionados de la organización.

    Si no quieres compartir el grupo de nodos, elige No compartir este grupo de nodos con otros proyectos. Para obtener más información sobre cómo compartir grupos de nodos, consulta Compartir grupos de nodos de único cliente.

  12. Haz clic en Crear para terminar de crear el grupo de nodos.

gcloud

Ejecuta el comando gcloud compute sole-tenancy node-groups create para crear un grupo de nodos basado en una plantilla de nodo creada anteriormente:

gcloud compute sole-tenancy node-groups create GROUP_NAME \
  --node-template=TEMPLATE_NAME \
  --target-size=TARGET_SIZE \
  [--zone=ZONE \]
  [--maintenance-policy=MAINTENANCE_POLICY \]
  [--maintenance-window-start-time=START_TIME \]
  [--autoscaler-mode=AUTOSCALER_MODE: \
  --min-nodes=MIN_NODES \
  --max-nodes=MAX_NODES]

Haz los cambios siguientes:

  • GROUP_NAME: el nombre del nuevo grupo de nodos.

  • TEMPLATE_NAME: el nombre de la plantilla de nodo que se va a usar para crear este grupo.

  • TARGET_SIZE: número de nodos que se van a crear en el grupo.

  • ZONE: la zona en la que se creará el grupo de nodos. Debe ser la misma región que la plantilla de nodo en la que se basa el grupo de nodos.

  • MAINTENANCE_POLICY: la política de mantenimiento del grupo de nodos. Para obtener más información, consulta Políticas de mantenimiento. Debe tener uno de los siguientes valores:

    • default
    • restart-in-place
    • migrate-within-node-group

    También puedes habilitar el control de mantenimiento avanzado para el grupo de nodos de un solo inquilino mediante la marca --maintenance-interval. Para obtener más información, consulta Habilitar el control de mantenimiento avanzado en un nodo de único cliente.

  • START_TIME: hora de inicio en GMT del periodo de mantenimiento de las VMs de este grupo de nodos. Debe ser uno de los siguientes valores: 00:00, 04:00, 08:00, 12:00, 16:00 o 20:00. Si no se define, el grupo de nodos no tendrá ninguna ventana de mantenimiento definida.

  • AUTOSCALER_MODE: la política de escalado automático del grupo de nodos. Debe ser uno de los siguientes:

    • off: gestionar manualmente el tamaño del grupo de nodos.

    • on: añadir o quitar nodos del grupo de nodos automáticamente.

    • only-scale-out: añade nodos al grupo de nodos cuando se necesite más capacidad.

  • MIN_NODES: tamaño mínimo del grupo de nodos. El valor predeterminado es 0 y debe ser un valor entero inferior o igual a MAX_NODES.

  • MAX_NODES: tamaño máximo del grupo de nodos. Este valor debe ser inferior o igual a 100 y superior o igual a MIN_NODES. Obligatorio si AUTOSCALER_MODE no se ha definido como off.

REST

Usa el método nodeGroups.insert para crear un grupo de nodos basado en una plantilla de nodo que hayas creado anteriormente:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/nodeGroups?initialNodeCount=TARGET_SIZE
{ "nodeTemplate": "regions/REGION/nodeTemplates/TEMPLATE_NAME", "name": "GROUP_NAME", "maintenancePolicy": MAINTENANCE_POLICY, "maintenanceWindow": { "startTime": "START_TIME" } "autoscalingPolicy": { "mode": AUTOSCALER_MODE, "minNodes": MIN_NODES, "maxNodes": MAX_NODES }, }

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto.

  • ZONE: la zona en la que se creará el grupo de nodos. Debe estar en la misma región que la plantilla de nodo en la que se basa el grupo de nodos.

  • TARGET_SIZE: número de nodos que se van a crear en el grupo.

  • REGION: la región en la que se creará el grupo de nodos. Debes tener una plantilla de nodo en la región seleccionada.

  • TEMPLATE_NAME: el nombre de la plantilla de nodo que se va a usar para crear este grupo.

  • GROUP_NAME: el nombre del nuevo grupo de nodos.

  • MAINTENANCE_POLICY: la política de mantenimiento del grupo de nodos. Debe tener uno de los siguientes valores:

    • DEFAULT
    • RESTART_IN_PLACE
    • MIGRATE_WITHIN_NODE_GROUP

    También puede habilitar el control avanzado del mantenimiento del grupo de nodos de un solo inquilino mediante el campo maintenanceInterval. Para obtener más información, consulta Habilitar el control de mantenimiento avanzado en un nodo de único cliente.

  • START_TIME: hora de inicio en GMT del periodo de mantenimiento de las VMs de este grupo de nodos. Debe ser uno de los siguientes valores: 00:00, 04:00, 08:00, 12:00, 16:00 o 20:00. Si no se define, el grupo de nodos no tendrá ninguna ventana de mantenimiento definida.

  • AUTOSCALER_MODE: la política de ajuste automático del grupo de nodos. Debe tener uno de los siguientes valores:

    • OFF: gestionar manualmente el tamaño del grupo de nodos.

    • ON: añadir o quitar nodos del grupo de nodos automáticamente.

    • ONLY_SCALE_OUT: añade nodos al grupo de nodos cuando se necesite más capacidad.

  • MIN_NODES: tamaño mínimo del grupo de nodos. El valor predeterminado es 0 y debe ser un valor entero inferior o igual a MAX_NODES.

  • MAX_NODES: tamaño máximo del grupo de nodos. Este valor debe ser inferior o igual a 100 y superior o igual a MIN_NODES. Obligatorio si AUTOSCALER_MODE no se ha definido como OFF.

Aprovisionar una máquina virtual de único cliente

Después de crear un grupo de nodos basado en una plantilla de nodo creada anteriormente, puedes aprovisionar máquinas virtuales individuales en un grupo de nodos de único propietario.

Para aprovisionar una VM en un nodo o grupo de nodos específico que tenga etiquetas de afinidad que coincidan con las que has asignado previamente a la plantilla de nodo, sigue el procedimiento estándar para crear una instancia de VM y asigna etiquetas de afinidad a la VM.

También puedes seguir este procedimiento para aprovisionar una VM en un nodo de único cliente desde la página de detalles del grupo de nodos. En función del grupo de nodos en el que aprovisiones las VMs, Compute Engine asigna etiquetas de afinidad.

Consola

  1. En la Google Cloud consola, ve a la página Nodos de un solo inquilino.

    Ir a nodos de único cliente

  2. Haz clic en Grupos de nodos.

  3. Haz clic en el nombre del grupo de nodos en el que quieras aprovisionar una instancia de VM y, si quieres aprovisionar una VM en un nodo de único propietario específico, haz clic en el nombre de ese nodo.

  4. Haz clic en Crear instancia para aprovisionar una instancia de VM en este grupo de nodos. Ten en cuenta los valores que se aplican automáticamente a Nombre, Región y Zona, y modifica esos valores según sea necesario.

  5. Selecciona una configuración de máquina especificando la familia de máquinas, la serie y el tipo de máquina. Elige la serie que corresponda al tipo de nodo de un solo inquilino.

  6. Modifica el disco de arranque, el cortafuegos y otros ajustes según sea necesario.

  7. Haz clic en Tenencia exclusiva, anota las etiquetas de afinidad de nodo asignadas automáticamente y usa Buscar para hacer los ajustes necesarios.

  8. Haz clic en Management (Gestión) y, en On host maintenance (Mantenimiento en el host), elige una de las siguientes opciones:

    • Migrar instancia de VM (opción recomendada): la VM se migra a otro nodo del grupo de nodos durante los eventos de mantenimiento.

    • Finalizar: la VM se detiene durante los eventos de mantenimiento.

  9. Elige una de las siguientes opciones para Reinicio automático:

    • Activado (opción recomendada): reinicia automáticamente las VMs si se detienen por eventos de mantenimiento.

    • Desactivado: no reinicia automáticamente las VMs después de un evento de mantenimiento.

  10. Haz clic en Crear para terminar de crear tu VM de un solo inquilino.

gcloud

Usa el comando gcloud compute instances create command para aprovisionar una VM en un grupo de nodos de único cliente:

gcloud compute instances create VM_NAME \
  [--zone=ZONE \]
  --image-family=IMAGE_FAMILY \
  --image-project=IMAGE_PROJECT \
  --node-group=GROUP_NAME \
  --machine-type=MACHINE_TYPE \
  [--maintenance-policy=MAINTENANCE_POLICY \]
  [--accelerator type=GPU_TYPE,count=GPU_COUNT \]
  [--local-ssd interface=SSD_INTERFACE \]
  [--restart-on-failure]

La marca --restart-on-failure indica si las máquinas virtuales de un solo inquilino se reinician después de detenerse. Esta marca está habilitada de forma predeterminada. Usa --no-restart-on-failure para inhabilitar.

Haz los cambios siguientes:

  • VM_NAME: nombre de la nueva VM de un solo inquilino.

  • ZONE: la zona en la que se aprovisionará la VM de único cliente.

  • IMAGE_FAMILY: la familia de imágenes de la imagen que se va a usar para crear la VM.

  • IMAGE_PROJECT: el proyecto de imagen de la familia de imágenes.

  • GROUP_NAME: el nombre del grupo de nodos en el que se aprovisionará la VM.

  • MACHINE_TYPE: el tipo de máquina de la VM de único propietario. Usa el gcloud compute machine-types list comando para obtener una lista de los tipos de máquinas disponibles para el proyecto.

  • MAINTENANCE_POLICY: especifica el comportamiento de reinicio de las VMs de un solo inquilino durante los eventos de mantenimiento. Se debe configurar como uno de los siguientes valores:

    • MIGRATE: la VM se ha migrado a otro nodo del grupo de nodos durante los eventos de mantenimiento.

    • TERMINATE: la VM se detiene durante los eventos de mantenimiento.

  • GPU_TYPE: tipo de GPU. Se define como uno de los tipos de acelerador especificados al crear la plantilla de nodo.

  • GPU_COUNT: número de GPUs del total especificado por la plantilla de nodo que se adjuntarán a esta VM. El valor predeterminado es 1.

  • SSD_INTERFACE: tipo de interfaz de SSD local. Solo puedes definir este valor para las instancias creadas a partir de una plantilla de nodo con compatibilidad con SSD local. Si lo especificas al crear la instancia y la plantilla de nodo no admite SSD local, la creación de la instancia fallará. Asigna el valor nvme si los controladores de la imagen del disco de arranque están optimizados para NVMe. De lo contrario, asigna el valor scsi. Especifica esta marca y el valor correspondiente una vez por cada partición SSD local.

REST

Usa el método instances.insert para aprovisionar una VM en un grupo de nodos de único cliente:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/VM_ZONE/instances
{ "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "name": "VM_NAME", "scheduling": { "onHostMaintenance": MAINTENANCE_POLICY, "automaticRestart": RESTART_ON_FAILURE, "nodeAffinities": [ { "key": "compute.googleapis.com/node-group-name", "operator": "IN", "values": [ "GROUP_NAME" ] } ] }, "networkInterfaces": [ { "network": "global/networks/NETWORK", "subnetwork": "regions/REGION/subnetworks/SUBNETWORK" } ], "guestAccelerators": [ { "acceleratorType": GPU_TYPE, "acceleratorCount": GPU_COUNT } ], "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY" } }, { "type":"SCRATCH", "initializeParams":{ "diskType":"zones/LOCAL_SSD_ZONE/diskTypes/local-ssd" }, "autoDelete":true, "interface":"SSD_INTERFACE" } ] }

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto.

  • VM_ZONE: la zona en la que se aprovisionará la máquina virtual de único cliente.

  • MACHINE_TYPE_ZONE: la zona del tipo de máquina.

  • MACHINE_TYPE: el tipo de máquina de la VM de único propietario. Usa el machineTypes.list método para obtener una lista de tipos de máquinas disponibles para el proyecto.

  • VM_NAME: nombre de la nueva VM de un solo inquilino.

  • MAINTENANCE_POLICY: especifica el comportamiento de reinicio de las VMs de un solo inquilino durante los eventos de mantenimiento. Se debe configurar como uno de los siguientes valores:

    • MIGRATE: la VM se ha migrado a otro nodo del grupo de nodos durante los eventos de mantenimiento.

    • TERMINATE: la VM se detiene durante los eventos de mantenimiento.

  • RESTART_ON_FAILURE: indica si las VMs de un solo inquilino se reinician después de detenerse. El valor predeterminado es true.

  • GROUP_NAME: el nombre del grupo de nodos en el que se aprovisionará la VM.

  • NETWORK: URL del recurso de red de esta máquina virtual.

  • REGION: región que contiene la subred de esta VM.

  • SUBNETWORK: URL del recurso de subred de esta VM.

  • GPU_TYPE: el tipo de GPU. Se define como uno de los tipos de acelerador especificados al crear la plantilla de nodo.

  • GPU_COUNT: número de GPUs del total especificado por la plantilla de nodo que se adjuntarán a esta VM. El valor predeterminado es 1.

  • IMAGE_PROJECT: imagen proyecto de la familia de imágenes.

  • IMAGE_FAMILY: familia de imágenes de la imagen que se va a usar para crear la VM.

  • LOCAL_SSD_ZONE: la zona del SSD local.

  • SSD_INTERFACE: el tipo de interfaz de SSD local. Selecciona NVME si los controladores de la imagen del disco de arranque están optimizados para NVMe. De lo contrario, selecciona SCSI.

Aprovisionar un grupo de máquinas virtuales de único cliente

Los grupos de instancias gestionados (MIGs) te permiten aprovisionar un grupo de VMs de un solo inquilino idénticas. Las etiquetas de afinidad te permiten especificar el nodo o el grupo de nodos de único propietario en el que quieres aprovisionar el grupo de VMs de único propietario.

En el caso de los MIGs regionales, debes crear grupos de nodos en cada una de las zonas del MIG regional y especificar afinidades de nodos para esos grupos de nodos en la plantilla de instancia del MIG regional.

gcloud

  1. Usa el gcloud compute instance-templates create comando para crear una plantilla de grupo de instancias gestionado para un grupo de VMs que se crearán en un grupo de nodos de único propietario:

    gcloud compute instance-templates create INSTANCE_TEMPLATE \
      --machine-type=MACHINE_TYPE \
      --image-project=IMAGE_PROJECT \
      --image-family=IMAGE_FAMILY \
      --node-group=GROUP_NAME \
      [--accelerator type=GPU_TYPE,count=GPU_COUNT \]
      [--local-ssd interface=SSD_INTERFACE]
    

    Haz los cambios siguientes:

    • INSTANCE_TEMPLATE: el nombre de la nueva plantilla de instancia.

    • MACHINE_TYPE: el tipo de máquina de la VM de único propietario. Usa el comando gcloud compute machine-types list para obtener una lista de los tipos de máquinas disponibles para el proyecto.

    • IMAGE_PROJECT: el proyecto de imagen de la familia de imágenes.

    • IMAGE_FAMILY: la familia de imágenes de la imagen que se va a usar para crear la VM.

    • GROUP_NAME: el nombre del grupo de nodos en el que se aprovisionará la VM. Si quieres usar esta plantilla de instancia para crear un MIG regional que se encuentre en más de una zona, usa la marca --node-affinity-file para especificar una lista de valores de los grupos de nodos del MIG regional.

    • GPU_TYPE: tipo de GPU. Se define como uno de los tipos de acelerador especificados al crear la plantilla de nodo.

    • GPU_COUNT: número de GPUs del total especificado por la plantilla de nodo que se adjuntarán a esta VM. El valor predeterminado es 1.

    • SSD_INTERFACE: tipo de interfaz de SSD local. Selecciona nvme si los controladores de la imagen del disco de arranque están optimizados para NVMe. De lo contrario, selecciona scsi. Especifica esta marca y el valor correspondiente una vez por cada partición de SSD local.

  2. Usa el comando gcloud compute instance-groups managed create para crear un grupo de instancias gestionado en tu grupo de nodos de un solo inquilino:

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
      --size=SIZE \
      --template=INSTANCE_TEMPLATE \
      --zone=ZONE
    

    Haz los cambios siguientes:

    • INSTANCE_GROUP_NAME: el nombre de este grupo de instancias.

    • SIZE: el número de VMs que se incluirán en este grupo de instancias. Tu grupo de nodos debe tener suficientes recursos para alojar las instancias de este grupo de instancias gestionado. Usa el autoescalador de grupos de instancias gestionados para gestionar automáticamente el tamaño de los grupos de instancias gestionados.

    • INSTANCE_TEMPLATE: el nombre de la plantilla de instancia que se usará para crear este MIG. La plantilla debe tener una o varias etiquetas de afinidad de nodo que apunten a los grupos de nodos correspondientes.

    • ZONE: la zona en la que se creará el grupo de instancias gestionado. En el caso de un MIG regional, sustituye la marca --zone por la marca --region y especifica una región. También debes añadir la marca --zones para especificar todas las zonas en las que se encuentran los grupos de nodos.

REST

  1. Utilice el método instanceTemplates.insert para crear una plantilla de grupo de instancias gestionadas en su grupo de nodos de un solo inquilino:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/TEMPLATE_ZONE/instance-templates
    { "name": "INSTANCE_TEMPLATE", "properties": { "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "scheduling": { "nodeAffinities": [ { "key": "compute.googleapis.com/node-group-name", "operator": "IN", "values": [ "GROUP_NAME" ] } ] }, "networkInterfaces": [ { "network": "global/networks/NETWORK", "subnetwork": "regions/REGION/subnetworks/SUBNETWORK" } ], "guestAccelerators": [ { "acceleratorType": GPU_TYPE, "acceleratorCount": GPU_COUNT } ], "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY" } }, { "type":"SCRATCH", "initializeParams":{ "diskType":"zones/LOCAL_SSD_ZONE/diskTypes/local-ssd" }, "autoDelete":true, "interface":"SSD_INTERFACE" } ] } }

    Haz los cambios siguientes:

    • PROJECT_ID: el ID del proyecto.

    • TEMPLATE_ZONE: la zona en la que se creará la plantilla de instancia.

    • INSTANCE_TEMPLATE: el nombre de la nueva plantilla de instancia.

    • MACHINE_TYPE_ZONE: la zona del tipo de máquina.

    • MACHINE_TYPE: el tipo de máquina de la VM de único propietario. Usa el método machineTypes.list para obtener una lista de los tipos de máquinas disponibles en el proyecto.

    • GROUP_NAME: nombre del grupo de nodos en el que se aprovisionará la VM. Si quieres usar esta plantilla de instancia para crear un MIG regional que esté en más de una zona, especifica una lista de grupos de nodos que estén en las mismas zonas que el MIG regional.

    • NETWORK: URL del recurso de red de esta plantilla de instancia.

    • REGION: la región que contiene la subred de esta plantilla de instancia.

    • SUBNETWORK: URL del recurso de subred de esta plantilla de instancia.

    • GPU_TYPE: el tipo de GPU. Se define como uno de los tipos de acelerador especificados al crear la plantilla de nodo.

    • GPU_COUNT: número de GPUs del total especificado por la plantilla de nodo que se adjuntarán a esta VM. El valor predeterminado es 1.

    • IMAGE_PROJECT: el proyecto de imagen de la familia de imágenes.

    • IMAGE_FAMILY: la familia de imágenes de la imagen que se va a usar para crear la VM.

    • LOCAL_SSD_ZONE: la zona del SSD local.

    • SSD_INTERFACE: el tipo de interfaz de SSD local. Selecciona NVME si los controladores de la imagen del disco de arranque están optimizados para NVMe. De lo contrario, selecciona SCSI.

  2. Usa el instanceGroupManagers.insertmétodo para crear un MIG en tu grupo de nodos de un solo inquilino a partir de la plantilla de instancia que has creado anteriormente. Si quieres crear un MIG regional, usa el método regionInstanceGroupManagers.insert y especifica la región y las zonas de todos los grupos de nodos, tal como se indica en la plantilla de instancia.

    Por ejemplo, para crear un MIG zonal, usa la siguiente solicitud:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
    {
      "baseInstanceName": "NAME_PREFIX",
      "name": "INSTANCE_GROUP_NAME",
      "targetSize": SIZE,
      "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE"
    }
    

    Haz los cambios siguientes:

    • PROJECT_ID: el ID del proyecto.

    • ZONE: la zona en la que se creará el grupo de instancias gestionado.

    • NAME_PREFIX: el prefijo de nombre de cada una de las instancias del grupo de instancias gestionado.

    • INSTANCE_GROUP_NAME: el nombre del grupo de instancias.

    • SIZE: el número de VMs que se incluirán en este grupo de instancias. Tu grupo de nodos debe tener suficientes recursos para alojar las instancias de este grupo de instancias gestionado. Usa el autoescalador de grupos de instancias gestionados para gestionar automáticamente el tamaño de los grupos de instancias gestionados.

    • INSTANCE_TEMPLATE: URL de la plantilla de instancia que se va a usar para crear este grupo. La plantilla debe tener una etiqueta de afinidad de nodo que apunte al grupo de nodos adecuado.

Configurar etiquetas de afinidad de nodos

Las etiquetas de afinidad de nodos te permiten agrupar lógicamente grupos de nodos y programar VMs en un conjunto específico de grupos de nodos. También puedes usar etiquetas de afinidad de nodos para programar máquinas virtuales en grupos de nodos de diferentes zonas y, aun así, mantener los grupos de nodos en un grupo lógico. El siguiente procedimiento es un ejemplo de cómo usar etiquetas de afinidad para asociar VMs a un grupo de nodos específico que se usa para cargas de trabajo de producción. En este ejemplo se muestra cómo programar una sola VM, pero también puedes usar grupos de instancias gestionadas para programar un grupo de VMs.

gcloud

  1. Usa el comando gcloud compute sole-tenancy node-templates create para crear una plantilla de nodo con un conjunto de etiquetas de afinidad para una carga de trabajo de producción:

    gcloud compute sole-tenancy node-templates create prod-template \
      --node-type=n1-node-96-624 \
      --node-affinity-labels workload=frontend,environment=prod
    
  2. Usa el comando gcloud compute sole-tenancy node-templates describe para ver las etiquetas de afinidad de nodos asignadas a la plantilla de nodo.

  3. Usa el comando gcloud compute sole-tenancy node-groups create para crear un grupo de nodos que use la plantilla de producción:

    gcloud compute sole-tenancy node-groups create prod-group \
      --node-template=prod-template \
      --target-size=1
    
  4. En el caso de las VMs de producción, cree un archivo node-affinity-prod.json para especificar la afinidad de las VMs de producción. Por ejemplo, puedes crear un archivo que especifique que las máquinas virtuales solo se ejecuten en nodos con las afinidades workload=frontend y environment=prod. Crea el archivo de afinidad de nodos con Cloud Shell o en la ubicación que quieras.

    [
      {
        "key" : "workload",
        "operator" : "IN",
        "values" : ["frontend"]
      },
      {
        "key" : "environment",
        "operator" : "IN",
        "values" : ["prod"]
      }
    ]
    
  5. Usa el archivo node-affinity-prod.json con el comando gcloud compute instances create para programar una VM en el grupo de nodos con etiquetas de afinidad coincidentes.

    gcloud compute instances create prod-vm \
      --node-affinity-file node-affinity-prod.json \
      --machine-type=n1-standard-2
    
  6. Usa el comando gcloud compute instances describe y consulta el campo scheduling para ver las afinidades de nodo asignadas a la VM.

Configurar etiquetas de antiafinidad de nodos

Las etiquetas de afinidad de nodos se pueden configurar como etiquetas de antiafinidad para evitar que las VMs se ejecuten en nodos específicos. Por ejemplo, puedes usar etiquetas de antiafinidad para evitar que las máquinas virtuales que usas con fines de desarrollo se programen en los mismos nodos que tu máquina virtual de producción. En el siguiente ejemplo se muestra cómo usar etiquetas de afinidad para evitar que las VMs se ejecuten en grupos de nodos específicos. En este ejemplo se muestra cómo programar una sola VM, pero también puedes usar grupos de instancias gestionadas para programar un grupo de VMs.

gcloud

  1. En el caso de las máquinas virtuales de desarrollo, especifica la afinidad de tus máquinas virtuales de desarrollo creando un node-affinity-dev.json con Cloud Shell o creándolo en la ubicación que elijas. Por ejemplo, crea un archivo que configure las VMs para que se ejecuten en cualquier grupo de nodos con la afinidad workload=frontend siempre que no sea environment=prod:

    [
      {
        "key" : "workload",
        "operator" : "IN",
        "values" : ["frontend"]
      },
      {
        "key" : "environment",
        "operator" : "NOT_IN",
        "values" : ["prod"]
      }
    ]
    
  2. Usa el archivo node-affinity-dev.json con el comando gcloud compute instances create para crear la VM de desarrollo:

    gcloud compute instances create dev-vm \
      --node-affinity-file=node-affinity-dev.json \
      --machine-type=n1-standard-2
    
  3. Usa el comando gcloud compute instances describe y consulta el campo scheduling para ver las antiafinidades de nodos asignadas a la VM.

Eliminar un grupo de nodos

Si necesitas eliminar un grupo de nodos de único propietario, primero debes eliminar las VMs del grupo de nodos.

Consola

  1. Ve a la página Nodos de único cliente.

    Ir a nodos de único cliente

  2. Haz clic en el Nombre del grupo de nodos que quieras eliminar.

  3. En cada nodo del grupo de nodos, haz clic en el nombre del nodo y elimina las instancias de VM individuales en la página de detalles del nodo o sigue el procedimiento estándar para eliminar una VM individual. Para eliminar VMs de un grupo de instancias gestionado, elimina el grupo de instancias gestionado.

  4. Después de eliminar todas las instancias de VM que se ejecutan en todos los nodos del grupo de nodos, vuelve a la página Nodos de un solo inquilino.

    Ve a Nodos de único cliente.

  5. Haz clic en Grupos de nodos.

  6. Selecciona el nombre del grupo de nodos que quieras eliminar.

  7. Haz clic en Eliminar.

gcloud

  1. Para ver una lista de las instancias de VM que se están ejecutando en los nodos del grupo de nodos, usa el comando gcloud compute sole-tenancy node-groups list-nodes:

    gcloud compute sole-tenancy node-groups list-nodes GROUP_NAME \
      --zone=ZONE

    Haz los cambios siguientes:

    • GROUP_NAME: nombre del grupo de nodos

    • ZONE: zona del grupo de nodos

  2. Si hay alguna VM que se esté ejecutando en el grupo de nodos, sigue el procedimiento para eliminar una VM concreta o el procedimiento para eliminar un grupo de instancias gestionado.

  3. Después de eliminar todas las VMs que se ejecutan en todos los nodos del grupo de nodos, elimina el grupo de nodos con el comando gcloud compute sole-tenancy node-groups delete:

    gcloud compute sole-tenancy node-groups delete GROUP_NAME \
        --zone=ZONE

    Haz los cambios siguientes:

    • GROUP_NAME: el nombre del grupo de nodos

    • ZONE: la zona del grupo de nodos

REST

  1. Para mostrar las instancias de máquina virtual en ejecución en los nodos del grupo de nodos, usa el método nodeGroups.listNodes:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/nodeGroups/GROUP_NAME/listNodes

    Haz los cambios siguientes:

    • PROJECT_ID: el ID del proyecto

    • ZONE: la zona del grupo de nodos

    • GROUP_NAME: el grupo del que se van a enumerar las VMs

  2. Si hay alguna VM que se esté ejecutando en el grupo de nodos, sigue el procedimiento para eliminar una VM concreta o el procedimiento para eliminar un grupo de instancias gestionado.

  3. Después de eliminar todas las VMs que se ejecutan en todos los nodos del grupo de nodos, elimina el grupo de nodos mediante el método nodeGroups.delete:

    DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/nodeGroups/GROUP_NAME
    

    Haz los cambios siguientes:

    • PROJECT_ID: el ID del proyecto

    • ZONE: la zona del grupo de nodos

    • GROUP_NAME: el nombre del grupo de nodos que se va a eliminar

Eliminar plantilla de nodo

Puedes eliminar una plantilla de nodo después de haber eliminado todos los grupos de nodos que la usen.

Consola

  1. En la Google Cloud consola, ve a la página Nodos de un solo inquilino.

    Ir a nodos de único cliente

  2. Haz clic en Plantillas de nodos.

  3. Seleccione el nombre de una plantilla de nodo que no se haya usado.

  4. Haz clic en Eliminar.

gcloud

Usa el comando gcloud compute sole-tenancy node-templates delete para eliminar una plantilla de nodo que no se use:

gcloud compute sole-tenancy node-templates delete TEMPLATE_NAME \
  --region=REGION

Haz los cambios siguientes:

  • TEMPLATE_NAME: el nombre de la plantilla de nodo que se va a eliminar

  • REGION: la región de la plantilla de nodo

REST

Utilice el compute.nodeTemplates.delete método para eliminar una plantilla de nodo no utilizada:

 DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/nodeTemplates/TEMPLATE_NAME
 

Haz los cambios siguientes:

  • PROJECT_ID: tu ID de proyecto

  • REGION: la región Google Cloud que contiene la plantilla de nodo

  • TEMPLATE_NAME: el nombre de la plantilla de nodo que se va a eliminar

Siguientes pasos