Aprovisiona VM en nodos de usuario único.


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

Para aprovisionar una VM en un nodo de usuario único, haz lo siguiente:

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

  2. Crea un grupo de nodos de usuario único con la plantilla que creaste antes.

  3. Crea VM y aprovisiónalas en un grupo de nodos de usuario único.

Antes de comenzar

  • Antes de aprovisionar las VM en un nodo de usuario único, verifica tu cuota. Según la cantidad y el tamaño de los nodos que reservas, es posible que debas solicitar una cuota adicional.
  • Configura la autenticación si aún no lo hiciste. La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera

    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. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.

Crea una plantilla de nodo de usuario único

Las plantillas de nodos de usuario único son recursos regionales que especifican propiedades para grupos de nodos de usuario único. 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 nodos durante la creación de un grupo de nodos de usuario único.

Console

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

  1. En la consola de Google Cloud, ve a la página Nodos de usuario único.

    Ir a Nodos de usuario único

  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 se 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 Plantilla de nodo, haz clic en Crear plantilla de nodo para comenzar a crear una plantilla de nodo de usuario único.

  7. Especifica un Nombre para la plantilla de nodo.

  8. Especifica el Tipo de nodo para cada nodo de usuario único del grupo de nodos que deseas crear en función de esta plantilla.

  9. También puedes especificar las siguientes propiedades para la plantilla de nodo (opcional).

    • Agrega un SSD local y un acelerador de GPU.
    • Selecciona Habilitar el exceso de compromiso de CPU a fin de controlar los niveles de exceso de compromiso de CPU de cada VM programada en el nodo.

    • Agrega Etiquetas de afinidad de nodo. Las etiquetas de afinidad te permiten agrupar nodos y grupos de nodos de forma lógica y, luego, cuando aprovisionas VM, puedes especificar etiquetas de afinidad en las VM 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. Haz clic en Crear para terminar de crear tu plantilla de nodo.

  11. Para agregar una plantilla de nodos de usuario único nueva en una región diferente, repite los pasos anteriores (opcional).

Para ver las plantillas de nodos, haz clic en Plantillas de nodos en la página Nodos de usuario único.

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]

Reemplaza lo siguiente:

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

  • NODE_TYPE: Es el tipo de nodo para los nodos de usuario único que se crearon según esta plantilla. Usa el comando gcloud compute sole-tenancy node-types list para obtener una lista de los tipos de nodos disponibles en cada zona.

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

  • AFFINITY_LABELS: Son las claves y los valores, [KEY=VALUE,...], de las etiquetas de afinidad. Las etiquetas de afinidad te permiten agrupar nodos y grupos de nodos de forma lógica y, luego, cuando aprovisionas VM, puedes especificar etiquetas de afinidad en las VM 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: Es el tipo de GPU para cada nodo de usuario único que se creó según esta plantilla de nodo. Para obtener información sobre la disponibilidad zonal de las GPU, usa el comando gcloud compute accelerator-types list y elige una zona en la que esté disponible el tipo de nodo de usuario único n1 o g2. Según la disponibilidad zonal, establece una de las siguientes opciones:

    • nvidia-l4
    • nvidia-tesla-p100
    • nvidia-tesla-p4
    • nvidia-tesla-t4
    • nvidia-tesla-v100
  • GPU_COUNT: Es la cantidad de GPU que se debe especificar según el tipo de GPU. Se establece en el valor especificado para el tipo de GPU, 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: Es la cantidad de discos SSD. Se establece en 16 o 24.

  • DISK_SIZE: Es el valor opcional para el tamaño de partición del SSD local en GB. El único tamaño de partición admitido es 375 y, si no estableces este valor, el valor predeterminado será 375.

  • CPU_OVERCOMMIT_TYPE: Es el tipo de exceso de compromiso de las CPU en una VM. Se establece en 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
}

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto.

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

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

  • NODE_TYPE: Es el tipo de nodo para los nodos de usuario único que se crearon según esta plantilla. Usa el método nodeTypes.list para obtener una lista de los tipos de nodos disponibles en cada zona.

  • KEY: Es el valor nodeAffinityLabels que especifica la porción de clave de una etiqueta de afinidad de nodo expresada como un par clave-valor. Las etiquetas de afinidad te permiten agrupar nodos y grupos de nodos de forma lógica y, luego, cuando aprovisionas VM, puedes especificar etiquetas de afinidad en las VM 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: Es el valor nodeAffinityLabels que especifica la porción del valor de una etiqueta de afinidad de nodo expresada como un par clave-valor.

  • GPU_TYPE: Es el tipo de GPU para cada nodo de usuario único que se creó según esta plantilla de nodo. Para obtener información sobre la disponibilidad zonal de las GPU, usa el comando gcloud compute accelerator-types list y elige una zona en la que esté disponible el tipo de nodo de usuario único n1 o g2. Según la disponibilidad zonal, establece una de las siguientes opciones:

    • nvidia-l4
    • nvidia-tesla-p100
    • nvidia-tesla-p4
    • nvidia-tesla-t4
    • nvidia-tesla-v100
  • GPU_COUNT: La cantidad de GPU para cada nodo de usuario único que se creó según esta plantilla de nodo. Se establece en el valor especificado para el tipo de GPU, 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: Es el valor opcional para el tamaño de partición del SSD local en GB. El único tamaño de partición admitido es 375 y, si no estableces este valor, el valor predeterminado será 375.

  • DISK_COUNT: Es la cantidad de discos SSD. Se establece en 16 o 24.

  • CPU_OVERCOMMIT_TYPE: Tipo de exceso de compromiso de CPU. Se establece en enabled, none o CPU_OVERCOMMIT_TYPE_UNSPECIFIED.

Crea un grupo de nodo de usuario único

Con la plantilla de nodo de usuario único que creaste antes, crea un grupo de nodos de usuario único. Un grupo de nodos de usuario único hereda las propiedades especificadas por la plantilla de nodo de usuario único y tiene valores adicionales que debes especificar.

Console

  1. En la consola de Google Cloud, ve a la página Nodos de usuario único.

    Ir a Nodos de usuario único

  2. Haz clic en Crear grupo de nodos para comenzar.

  3. Especifica un Nombre para el grupo de nodos.

  4. Especifica la Región para que el grupo de nodos muestre las plantillas de nodo disponibles en esa región.

  5. Especifica la Zona dentro de la región en la que se creará el grupo de nodos.

  6. Especifica la Plantilla de nodo a partir de la que se creará el grupo de nodos o haz clic en Crear plantilla de nodo a fin de crear una plantilla de nodo de usuario único nueva. La plantilla de nodos seleccionada se aplica al grupo de nodos.

  7. Elige una de las siguientes opciones del modo de ajuste de escala automático para el escalador automático del grupo de nodos:

    • Desactivado: se administra de forma manual el tamaño del grupo de nodos.

    • Activo: permite que los nodos se agreguen o quiten de forma automática del grupo de nodos.

    • Solo escalar horizontalmente: se agregan nodos al grupo de nodos cuando se requiere capacidad adicional.

  8. Especifica un valor en Cantidad de nodos para el grupo. Si habilitas el escalador automático de grupos de nodos, especifica un rango para el tamaño del grupo de nodos. Puedes cambiar los valores de forma manual más adelante.

  9. Establece la Política de mantenimiento del grupo de nodos de usuario único en la sección Establece la configuración de mantenimiento en uno de los siguientes valores. La política de mantenimiento te permite configurar el comportamiento de las VM en el grupo de nodos durante los eventos de mantenimiento del host. Para obtener más información, consulta Políticas de mantenimiento.

    • Valor predeterminado
    • Reiniciar en su ubicación
    • Migrar dentro del grupo de nodos
  10. Puedes elegir entre períodos de mantenimiento regulares y control de mantenimiento avanzado para controlar el mantenimiento de tu grupo de nodos de usuario único de la siguiente manera:

    • Período de mantenimiento: Selecciona el período durante el cual deseas que se realicen los eventos de mantenimiento planificados para los nodos de los grupos de nodos de usuario único.

    • Habilita el control de mantenimiento avanzado para usuarios únicos: El control de mantenimiento avanzado para usuarios únicos te permite controlar los eventos de mantenimiento planificados de grupos de nodos de usuario único y minimizar las interrupciones relacionadas con el mantenimiento. Para habilitar el control de mantenimiento avanzado, haz clic en el botón de activación Habilita el control de mantenimiento avanzado para usuarios únicos y muévelo a la posición activado. Si decides usar esta opción para el mantenimiento de los nodos, se inhabilita el campo Período de mantenimiento y el mantenimiento se realiza según la configuración del control de mantenimiento avanzado.

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

  11. Para establecer la configuración de uso compartido, especifica una de las siguientes opciones en Establece la configuración de uso compartido:

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

    Si no deseas compartir el grupo de nodos, elige No compartir este grupo de nodos con otros proyectos. Para obtener más información sobre el uso compartido de grupos de nodos, consulta Comparte grupos de nodos de usuario único.

  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 antes:

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]

Reemplaza lo siguiente:

  • GROUP_NAME: Es el nombre del grupo de nodos nuevo.

  • TEMPLATE_NAME: es el nombre de la plantilla de nodos que se usará para crear este grupo.

  • TARGET_SIZE: es la cantidad de nodos que se crearán en el grupo.

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

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

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

    Como alternativa, puedes habilitar el control de mantenimiento avanzado para el grupo de nodos de usuario único con la marca --maintenance-interval. Para obtener más información, consulta Habilita el control de mantenimiento avanzado en un nodo de usuario único.

  • START_TIME: Es la hora de inicio en GMT para el período de mantenimiento de las VM en este grupo de nodos. Establece en una de las siguientes opciones: 00:00, 04:00, 08:00, 12:00, 16:00 o 20:00. Si no se configura, el grupo de nodos no tendrá un período de mantenimiento establecido.

  • AUTOSCALER_MODE: Es la política de escalador automático para el grupo de nodos. Debe ser una de las siguientes:

    • off: Administra de forma manual el tamaño del grupo de nodos.

    • on: Permite que los nodos se agreguen o quiten de forma automática del grupo de nodos.

    • only-scale-out: Agrega nodos al grupo de nodos cuando se requiere capacidad adicional.

  • MIN_NODES: Es el tamaño mínimo del grupo de nodos. El valor predeterminado es 0 y debe ser un número entero menor o igual que MAX_NODES.

  • MAX_NODES: Es el tamaño máximo del grupo de nodos. Debe ser menor o igual que 100 y mayor o igual que MIN_NODES. Es obligatorio si AUTOSCALER_MODE no está configurado como off.

REST

Usa el método nodeGroups.insert para crear un grupo de nodos basado en una plantilla de nodos creada antes:

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

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto.

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

  • TARGET_SIZE: es la cantidad de nodos que se crearán en el grupo.

  • REGION: Es 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: es el nombre de la plantilla de nodos que se usará para crear este grupo.

  • GROUP_NAME: Es el nombre del grupo de nodos nuevo.

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

    • DEFAULT
    • RESTART_IN_PLACE
    • MIGRATE_WITHIN_NODE_GROUP

    Como alternativa, puedes habilitar el control de mantenimiento avanzado para el grupo de nodos de usuario único con el campo maintenanceInterval. Para obtener más información, consulta Habilita el control de mantenimiento avanzado en un nodo de usuario único.

  • START_TIME: Es la hora de inicio en GMT para el período de mantenimiento de las VM en este grupo de nodos. Establece en una de las siguientes opciones: 00:00, 04:00, 08:00, 12:00, 16:00 o 20:00. Si no se configura, el grupo de nodos no tendrá un período de mantenimiento establecido.

  • AUTOSCALER_MODE: Es la política de escalador automático para el grupo de nodos. Debe ser uno de los siguientes valores:

    • OFF: Administra de forma manual el tamaño del grupo de nodos.

    • ON: Permite que los nodos se agreguen o quiten de forma automática del grupo de nodos.

    • ONLY_SCALE_OUT: Agrega nodos al grupo de nodos cuando se requiere capacidad adicional.

  • MIN_NODES: Es el tamaño mínimo del grupo de nodos. El valor predeterminado es 0 y debe ser un número entero menor o igual que MAX_NODES.

  • MAX_NODES: Es el tamaño máximo del grupo de nodos. Debe ser menor o igual que 100 y mayor o igual que MIN_NODES. Es obligatorio si AUTOSCALER_MODE no está configurado como OFF.

Aprovisiona una VM de usuario único

Después de crear un grupo de nodos a partir de una plantilla de nodo, puedes aprovisionar VM individuales en un grupo de nodos de usuario único.

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

Como alternativa, puedes usar el siguiente procedimiento para aprovisionar una VM en un nodo de usuario único desde la página de detalles del grupo de nodos. Según el grupo de nodos en el que aprovisionas VM, Compute Engine asigna las etiquetas de afinidad.

Console

  1. En la consola de Google Cloud, ve a la página Nodos de usuario único.

    Ir a Nodos de usuario único

  2. Haz clic en Grupos de nodos.

  3. Haz clic en el Nombre del grupo de nodos para aprovisionar una instancia de VM y, de forma opcional, haz clic en el nombre del nodo de usuario único específico a fin de aprovisionar la VM en este.

  4. Haz clic en Crear instancia para aprovisionar una instancia de VM en este grupo de nodos, toma nota de los valores que se aplicaron de forma automática en el Nombre, la Región y la Zona y modifica esos valores según sea necesario.

  5. Para seleccionar una opción de Configuración de la máquina, especifica los valores de Familia de máquinas, Serie y Tipo de máquina. Elige la opción de Serie que corresponda al tipo de nodo de usuario único.

  6. Modifica el Disco de arranque, el Firewall y otras opciones de configuración según sea necesario.

  7. Haz clic en Usuario único, observa las Etiquetas de afinidad de nodo que se asignaron de forma automática y usa Explorar para ajustarlas según sea necesario.

  8. Haz clic en Administración y, en Mantenimiento en el host, elige una de las siguientes opciones:

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

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

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

    • Activado (recomendado): se reinician las VM de forma automática si se detienen por eventos de mantenimiento.

    • Desactivado: las VM no se reinician de forma automática después de un evento de mantenimiento.

  10. Haz clic en Crear para terminar de crear tu VM de usuario único.

gcloud

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

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 VM de usuario único se reiniciarán después de detenerse. Esta marca está habilitada de forma predeterminada. Usa --no-restart-on-failure para inhabilitarla.

Reemplaza lo siguiente:

  • VM_NAME: es el nombre de la nueva VM de usuario único.

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

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

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

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

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

  • MAINTENANCE_POLICY: Especifica el comportamiento de reinicio de las VM de usuario único durante los eventos de mantenimiento. Establécela en uno de los siguientes valores:

    • MIGRATE: La VM migra a otro nodo en el grupo de nodos durante los eventos de mantenimiento.

    • TERMINATE: La VM se detuvo durante eventos de mantenimiento.

  • GPU_TYPE: Es el tipo de GPU. Establece esta opción en uno de los tipos de acelerador especificados cuando se creó la plantilla de nodo.

  • GPU_COUNT: La cantidad de GPU del total especificado por la plantilla de nodos que se adjuntarán a esta VM El valor predeterminado es 1.

  • SSD_INTERFACE: Es el tipo de interfaz de SSD local. Solo puedes establecer esto para instancias creadas a partir de una plantilla de nodo compatible con SSD local. Si especificas esta opción mientras creas la instancia y la plantilla de nodo no es compatible con SSD local, la creación de la instancia fallará. Configúrala como nvme si los controladores de imagen de disco de arranque están optimizados para NVMe. De lo contrario, configúrala como scsi. Especifica esta marca y un valor correspondiente una vez para cada partición de SSD local.

REST

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

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

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto.

  • VM_ZONE: Es la zona en la que se aprovisionará la VM de usuario único.

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

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

  • VM_NAME: es el nombre de la nueva VM de usuario único.

  • MAINTENANCE_POLICY: Especifica el comportamiento de reinicio de las VM de usuario único durante los eventos de mantenimiento. Establécela en uno de los siguientes valores:

    • MIGRATE: La VM migra a otro nodo en el grupo de nodos durante los eventos de mantenimiento.

    • TERMINATE: La VM se detuvo durante eventos de mantenimiento.

  • RESTART_ON_FAILURE: Indica si las VM de usuario única se reinician después de la detención. La ruta predeterminada es true.

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

  • NETWORK: Es la URL del recurso de red para esta VM.

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

  • SUBNETWORK: Es la URL del recurso de subred para esta VM.

  • GPU_TYPE: Es el tipo de GPU. Establece esta opción en uno de los tipos de acelerador especificados cuando se creó la plantilla de nodo.

  • GPU_COUNT: Es la cantidad de GPU del total especificado por la plantilla de nodos que se adjuntarán a esta VM El valor predeterminado es 1.

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

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

  • LOCAL_SSD_ZONE: Es la zona del SSD local.

  • SSD_INTERFACE: Es el tipo de interfaz de SSD local. Configúralo como NVME si los controladores de imagen de disco de arranque están optimizados para NVMe. De lo contrario, configúralo como SCSI.

Aprovisiona un grupo de VM de usuario único

Los grupos de instancias administrados (MIG) te permiten aprovisionar un grupo de VM de usuario único idénticas. Las etiquetas de afinidad te permiten especificar el nodo de usuario único o grupo de nodos en el que se aprovisionará el grupo de VM de usuario único.

Para los MIG regionales, debes crear grupos de nodos en cada una de sus zonas y especificar afinidades de nodos para esos grupos en la plantilla de instancias del MIG regional.

gcloud

  1. Usa el comando gcloud compute instance-templates create a fin de crear una plantilla de grupo de instancias administrado para que un grupo de VM se cree en un grupo de nodos de usuario único:

    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]
    

    Reemplaza lo siguiente:

    • INSTANCE_TEMPLATE: Es el nombre de la planilla nueva.

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

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

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

    • GROUP_NAME: Es el nombre del grupo de nodos en el que se aprovisionará la VM. Como alternativa, si deseas usar esta plantilla de instancias para crear un MIG regional que exista en más de una zona, usa la marca --node-affinity-file a fin de realizar las siguientes acciones: especificar una lista de valores para los grupos de nodos del MIG regional

    • GPU_TYPE: Es el tipo de GPU. Establece esta opción en uno de los tipos de acelerador especificados cuando se creó la plantilla de nodo.

    • GPU_COUNT: Es la cantidad de GPU del total especificado por la plantilla de nodos que se adjuntarán a esta VM El valor predeterminado es 1.

    • SSD_INTERFACE: Es el tipo de interfaz de SSD local. Configúralo como nvme si los controladores de imagen de disco de arranque están optimizados para NVMe. De lo contrario, configúralo como scsi. Especifica esta marca y un valor correspondiente una vez para cada partición de SSD local.

  2. Usa el comando gcloud compute instance-groups managed create para crear un grupo de instancias administrado dentro de tu grupo de nodos de usuario único:

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

    Reemplaza lo siguiente:

    • INSTANCE_GROUP_NAME: El nombre de este grupo de instancias

    • SIZE: es la cantidad de VM que se incluirán en este grupo de instancias. Tu grupo de nodos debe tener suficientes recursos para admitir las instancias en este grupo de instancias administrado Usa el escalador automático de grupos de instancias administrados para administrar de forma automática el tamaño de los grupos de instancias administrados.

    • INSTANCE_TEMPLATE: Es el nombre de la plantilla de instancias que se usará para crear este MIG. La plantilla debe tener una o más etiquetas de afinidad de nodos que apunten a los grupos de nodos adecuados.

    • ZONE: Es la zona en la que se creará el grupo de instancias administrado. En un MIG regional, reemplaza la marca --zone por la marca --region y especifica una región. También agrega la marca --zones para especificar todas las zonas en las que existen los grupos de nodos.

REST

  1. Usa el método instanceTemplates.insert para crear una plantilla de grupo de instancias administrado dentro de tu grupo de nodos de usuario único:

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

    Reemplaza lo siguiente:

    • PROJECT_ID: El ID del proyecto.

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

    • INSTANCE_TEMPLATE: Es el nombre de la planilla nueva

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

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

    • GROUP_NAME: Es el nombre del grupo de nodos en el que se aprovisionará la VM. Si deseas usar esta plantilla de instancias para crear un MIG regional que existe en más de una zona, especifica una lista de grupos de nodos que existen en las mismas zonas que las del MIG regional.

    • NETWORK: Es la URL del recurso de red para esta plantilla de instancias.

    • REGION: Es la región que contiene la subred para esta plantilla de instancias.

    • SUBNETWORK: Es la URL del recurso de subred para esta plantilla de instancias.

    • GPU_TYPE: Es el tipo de GPU. Establece esta opción en uno de los tipos de acelerador especificados cuando se creó la plantilla de nodo.

    • GPU_COUNT: La cantidad de GPU del total especificado por la plantilla de nodos que se adjuntarán a esta VM El valor predeterminado es 1.

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

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

    • LOCAL_SSD_ZONE: Es la zona del SSD local.

    • SSD_INTERFACE: Es el tipo de interfaz de SSD local. Configúralo como NVME si los controladores de imagen de disco de arranque están optimizados para NVMe. De lo contrario, configúralo como SCSI.

  2. Usa el método instanceGroupManagers.insert para crear un MIG dentro del grupo de nodos de usuario único en función de la plantilla de instancias creada con anterioridad. O bien, si deseas crear un MIG regional, usa el método regionInstanceGroupManagers.insert y especifica la región y las zonas de todos los grupos de nodos como se especifica en el plantilla de instancias.

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

    Reemplaza lo siguiente:

    • PROJECT_ID: El ID del proyecto.

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

    • NAME_PREFIX: Es el nombre del prefijo para cada una de las instancias en el grupo de instancias administrado.

    • INSTANCE_GROUP_NAME: es el nombre del grupo de instancias.

    • SIZE: es la cantidad de VM que se incluirán en este grupo de instancias. Tu grupo de nodos debe tener suficientes recursos para admitir las instancias en este grupo de instancias administrado Usa el escalador automático de grupos de instancias administrados para administrar de forma automática el tamaño de los grupos de instancias administrados.

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

Configura etiquetas de afinidad de nodo

Las etiquetas de afinidad de nodo te permiten agrupar grupos de nodos de forma lógica y programar VM en un conjunto específico de grupos de nodos. También puedes usar etiquetas de afinidad de nodo para programar VM en grupos de nodos en diferentes zonas y mantener los grupos de nodos en un grupo lógico. El siguiente procedimiento es un ejemplo del uso de etiquetas de afinidad para asociar VM con un grupo de nodos específico que se usa en 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 administrados para programar un grupo de VM.

gcloud

  1. Usa el comando gcloud compute sole-tenancy node-templates create a fin de 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 nodo 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. Para las VM de producción, crea un archivo node-affinity-prod.json a fin de especificar la afinidad de las VM de producción. Por ejemplo, puedes crear un archivo que especifique que las VM se ejecutan solo en nodos con las afinidades workload=frontend y environment=prod. Crea el archivo de afinidad de nodo mediante Cloud Shell o créalo en la ubicación que elijas.

    [
      {
        "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 verifica el campo scheduling para ver las afinidades de nodo asignadas a la VM.

Configura etiquetas de antiafinidad de nodo

Las etiquetas de afinidad de nodo se pueden configurar como etiquetas de antiafinidad para evitar que las VM se ejecuten en nodos específicos. Por ejemplo, puedes usar etiquetas de antiafinidad para evitar que las VM que usas con fines de desarrollo se programen en los mismos nodos que tu VM de producción. En el siguiente ejemplo, se muestra cómo usar etiquetas de afinidad para evitar que las VM 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 administrados para programar un grupo de VM.

gcloud

  1. En el caso de las VM de desarrollo, debes especificar su afinidad. Para ello, crea un node-affinity-dev.json con Cloud Shell o créalo en una ubicación que elijas. Por ejemplo, crea un archivo que configure las VM 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 verifica el campo scheduling para ver las antiafinidades de nodo asignadas a la VM.

Borrar un grupo de nodos

Si necesitas borrar un grupo de nodos de usuario único, primero quita cualquier VM del grupo de nodos.

Console

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

    Ir a Nodos de usuario único

  2. Haz clic en el Nombre del grupo de nodos que deseas borrar.

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

  4. Después de borrar todas las instancias de VM que se ejecutan en todos los nodos del grupo, regresa a la página Nodos de usuario único.

    Ir a Nodos de usuario único

  5. Haz clic en Grupos de nodos.

  6. Selecciona el nombre del grupo de nodos que deseas borrar.

  7. Haz clic en Borrar.

gcloud

  1. Enumera las instancias de VM en ejecución en los nodos del grupo de nodos mediante el comando gcloud compute sole-tenancy node-groups list-nodes:

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

    Reemplaza lo siguiente:

    • GROUP_NAME: el nombre del grupo de nodos

    • ZONE: la zona del grupo de nodos

  2. Si hay VM en ejecución en el grupo de nodos, sigue el procedimiento para borrar una VM individual o el procedimiento para borrar un grupo de instancias administrado.

  3. Después de borrar todas las VM que se ejecutan en todos los nodos del grupo de nodos, borra el grupo mediante el comando gcloud compute sole-tenancy node-groups delete:

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

    Reemplaza lo siguiente:

    • GROUP_NAME: es el nombre del grupo de nodos

    • ZONE: es la zona del grupo de nodos

REST

  1. Enumera las instancias de VM en ejecución en los nodos del grupo de nodos mediante el método nodeGroups.listNodes:

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

    Reemplaza lo siguiente:

    • PROJECT_ID: El ID del proyecto

    • ZONE: es la zona del grupo de nodos

    • GROUP_NAME: Es el grupo para el que se enumerarán las VM.

  2. Si hay VM en ejecución en el grupo de nodos, sigue el procedimiento para borrar una VM individual o el procedimiento para borrar un grupo de instancias administrado.

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

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

    Reemplaza lo siguiente:

    • PROJECT_ID: El ID del proyecto

    • ZONE: es la zona del grupo de nodos

    • GROUP_NAME: es el nombre del grupo de nodos que se borrará

Borrar una plantilla de nodo

Puedes borrar una plantilla de nodo después de borrar todos los grupos de nodos que la usan.

Console

  1. En la consola de Google Cloud, ve a la página Nodos de usuario único.

    Ir a Nodos de usuario único

  2. Haz clic en Plantillas de nodo.

  3. Selecciona el nombre de una plantilla de nodos sin usar.

  4. Haz clic en Borrar.

gcloud

Usa el comando gcloud compute sole-tenancy node-templates delete para borrar una plantilla de nodo sin usar:

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

Reemplaza lo siguiente:

  • TEMPLATE_NAME: el nombre de la plantilla de nodo que se borrará.

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

REST

Usa el método compute.nodeTemplates.delete para borrar una plantilla de nodos sin usar.

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

Reemplaza lo siguiente:

  • PROJECT_ID: el ID de tu proyecto

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

  • TEMPLATE_NAME: el nombre de la plantilla de nodo que se borrará.

Próximos pasos