Aprovisionar máquinas virtuales en nodos de único inquilino


Esta página describe cómo aprovisionar máquinas virtuales en nodos de único inquilino, que son servidores físicos que ejecutan máquinas virtuales únicamente desde un único proyecto. Antes de aprovisionar máquinas virtuales en nodos de único inquilino, lea la descripción general del nodo de único inquilino .

El aprovisionamiento de una máquina virtual en un nodo de único inquilino requiere lo siguiente:

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

  2. Crear un grupo de nodos de único inquilino utilizando la plantilla de nodo de único inquilino creada anteriormente.

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

Antes de comenzar

  • Antes de aprovisionar máquinas virtuales en un nodo de inquilino único, verifique su cuota . Dependiendo de la cantidad y el tamaño de los nodos que reserve, es posible que deba solicitar una cuota adicional .
  • Si aún no lo has hecho, configura la autenticación. La autenticación es el proceso mediante el cual se verifica su identidad para acceder a Google Cloud servicios y API. Para ejecutar código o muestras 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. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    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.

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

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

Crear una plantilla de nodo de único inquilino

Las plantillas de nodos de inquilino único son recursos regionales que especifican propiedades para grupos de nodos de inquilino único. Debe 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 único inquilino.

Consola

Debe crear una plantilla de nodo de único inquilino antes de crear un grupo de nodos. Al utilizar la consola de Google Cloud, debes crear la plantilla de nodo durante la creación de un grupo de nodos de único inquilino. La nueva plantilla de nodo se crea en la misma región que especifica en las propiedades del grupo de nodos.

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

    Ir a nodos de único inquilino

  2. Haga clic en Crear grupo de nodos .

  3. Especifique un nombre para el grupo de nodos.

  4. Especifique una región para crear la plantilla de nodo. Puede utilizar la plantilla de nodo para crear grupos de nodos en cualquier zona de esta región.

  5. Especifique la Zona y haga clic en Continuar .

  6. En la lista Plantilla de nodo , haga clic en Crear plantilla de nodo para comenzar a crear una plantilla de nodo de único inquilino.

  7. Especifique un nombre para la plantilla de nodo.

  8. Especifique el tipo de nodo para cada nodo de único inquilino en el grupo de nodos para crear en función de esta plantilla de nodo.

  9. Opcional: también puede especificar las siguientes propiedades para la plantilla de nodo.

    • Agregue un acelerador SSD y GPU local .
    • Seleccione Habilitar sobreasignación de CPU para controlar los niveles de sobreasignación de CPU para cada VM programada en el nodo.

    • Agregar etiquetas de afinidad de nodo . Las etiquetas de afinidad le permiten agrupar lógicamente nodos y grupos de nodos y, más adelante, al aprovisionar máquinas virtuales, puede especificar etiquetas de afinidad en las máquinas virtuales para programar máquinas virtuales en un conjunto específico de nodos o grupos de nodos. Para obtener más información, consulte Afinidad y antiafinidad de nodos .

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

  11. Opcional: para agregar una nueva plantilla de nodo de único inquilino en una región diferente, repita los pasos anteriores.

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

nube de 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]

Reemplace lo siguiente:

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

  • NODE_TYPE : el tipo de nodo para los nodos de único inquilino creados en base a 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 : la región en la que se creará la plantilla de nodo. Puede utilizar esta plantilla para crear grupos de nodos en cualquier zona de esta región.

  • AFFINITY_LABELS : las claves y valores, [KEY=VALUE,...] , para las etiquetas de afinidad. Las etiquetas de afinidad le permiten agrupar lógicamente nodos y grupos de nodos y, más adelante, al aprovisionar máquinas virtuales, puede especificar etiquetas de afinidad en las máquinas virtuales para programar máquinas virtuales en un conjunto específico de nodos o grupos de nodos. Para obtener más información, consulte Afinidad y antiafinidad de nodos .

  • GPU_TYPE : el tipo de GPU para cada nodo de propietario único creado en función de esta plantilla de nodo. Para obtener información sobre la disponibilidad zonal de las GPU, use el comando gcloud compute accelerator-types list y elija una zona donde esté disponible el tipo de nodo de inquilino único n1 o g2 . Dependiendo de la disponibilidad zonal, configúrelo en uno de:

    • nvidia-l4
    • nvidia-tesla-p100
    • nvidia-tesla-p4
    • nvidia-tesla-t4
    • nvidia-tesla-v100
  • GPU_COUNT : la cantidad de GPU que se especificarán según el tipo de GPU. Establezca 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 : número de discos SSD. Establezca en 16 o 24 .

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

  • CPU_OVERCOMMIT_TYPE : el tipo de sobreasignación para CPU en una VM. Establecer en enabled o none .

DESCANSAR

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

Reemplace lo siguiente:

  • PROJECT_ID : el ID del proyecto.

  • REGION : la región en la que se creará la plantilla de nodo. Puede utilizar 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 para los nodos de único inquilino creados en base a esta plantilla. Utilice el método nodeTypes.list para obtener una lista de los tipos de nodos disponibles en cada zona.

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

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

  • GPU_TYPE : el tipo de GPU para cada nodo de propietario único creado en función de esta plantilla de nodo. Para obtener información sobre la disponibilidad zonal de las GPU, use el comando gcloud compute accelerator-types list y elija una zona donde esté disponible el tipo de nodo de inquilino único n1 o g2 . Dependiendo de la disponibilidad zonal, configúrelo en uno de:

    • nvidia-l4
    • nvidia-tesla-p100
    • nvidia-tesla-p4
    • nvidia-tesla-t4
    • nvidia-tesla-v100
  • GPU_COUNT : la cantidad de GPU para cada nodo de inquilino único creado en función de esta plantilla de nodo. Establezca 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 : valor opcional para el tamaño de la partición del SSD local en GB. El único tamaño de partición admitido es 375 y, si no establece este valor, el valor predeterminado es 375 .

  • DISK_COUNT : número de discos SSD. Establezca en 16 o 24 .

  • CPU_OVERCOMMIT_TYPE : tipo de sobreasignación de CPU. Establezca en enabled , none o CPU_OVERCOMMIT_TYPE_UNSPECIFIED .

Crear un grupo de nodos de único inquilino

Con la plantilla de nodo de único inquilino creada anteriormente, cree un grupo de nodos de único inquilino. Un grupo de nodos de único inquilino hereda las propiedades especificadas por la plantilla de nodo de único inquilino y tiene valores adicionales que debe especificar.

Consola

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

    Ir a nodos de único inquilino

  2. Haga clic en Crear grupo de nodos para comenzar a crear un grupo de nodos.

  3. Especifique un nombre para el grupo de nodos.

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

  5. Especifique la zona dentro de la región en la que crear el grupo de nodos.

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

  7. Elija una de las siguientes opciones para el modo de escalado automático del escalador automático del grupo de nodos :

    • Apagado : administre manualmente el tamaño del grupo de nodos.

    • Activado : agregar o eliminar nodos automáticamente del grupo de nodos.

    • Solo escalamiento horizontal : agregue nodos al grupo de nodos cuando se requiera capacidad adicional.

  8. Especifique el número de nodos para el grupo. Si habilita el escalador automático del grupo de nodos , especifique un rango para el tamaño del grupo de nodos. Puede cambiar manualmente los valores más adelante.

  9. Establezca la política de mantenimiento del grupo de nodos de inquilino único en la sección Configurar ajustes de mantenimiento en uno de los siguientes valores. La política de mantenimiento le permite configurar el comportamiento de las máquinas virtuales en el grupo de nodos durante los eventos de mantenimiento del host. Para obtener más información, consulte Políticas de mantenimiento .

    • Por defecto
    • Reiniciar en su lugar
    • Migrar dentro del grupo de nodos
  10. Puede elegir entre ventanas de mantenimiento regular y control de mantenimiento avanzado para gestionar el mantenimiento de su grupo de nodos de único inquilino, de la siguiente manera:

    • Ventana de mantenimiento: seleccione el período de tiempo durante el cual desea que se realicen los eventos de mantenimiento planificados para los nodos de los grupos de nodos de único inquilino.

    • Opte por el control de mantenimiento avanzado para inquilinos únicos: el control de mantenimiento avanzado para inquilinos únicos le permite controlar los eventos de mantenimiento planificados para grupos de nodos de inquilinos únicos y minimizar las interrupciones relacionadas con el mantenimiento. Para optar por el control de mantenimiento avanzado, haga clic en el botón Aceptar para el control de mantenimiento avanzado para inquilino único y cambie a la posición activado . Si elige utilizar esta opción para el mantenimiento del nodo, el campo Ventana de mantenimiento se desactiva y el mantenimiento se produce según lo configurado en el control de mantenimiento avanzado.

    Tenga en cuenta que el control de mantenimiento avanzado solo admite la política de mantenimiento predeterminada .

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

    • Para compartir el grupo de nodos con todos los proyectos de su organización, elija 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 su organización, elija Compartir este grupo de nodos con proyectos seleccionados dentro de la organización .

    Si no desea compartir el grupo de nodos, elija No compartir este grupo de nodos con otros proyectos . Para obtener más información sobre cómo compartir grupos de nodos, consulte Compartir grupos de nodos de único inquilino .

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

nube de gcloud

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

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]

Reemplace lo siguiente:

  • GROUP_NAME : el nombre del nuevo grupo de nodos.

  • TEMPLATE_NAME : el nombre de la plantilla de nodo que se utilizará para crear este grupo.

  • TARGET_SIZE : la cantidad de nodos a crear en el grupo.

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

  • MAINTENANCE_POLICY : la política de mantenimiento para el grupo de nodos. Para obtener más información, consulte Políticas de mantenimiento . Este debe ser uno de los siguientes valores:

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

    Como alternativa, puede optar por el control de mantenimiento avanzado para el grupo de nodos de único inquilino, utilizando el indicador --maintenance-interval . Para obtener más información, consulte Habilitar el control de mantenimiento avanzado en un nodo de único inquilino .

  • START_TIME : la hora de inicio en GMT para la ventana de mantenimiento de las máquinas virtuales en este grupo de nodos. Establezca uno de: 00:00 , 04:00 , 08:00 , 12:00 , 16:00 o 20:00 . Si no se establece, el grupo de nodos no tiene una ventana de mantenimiento establecida.

  • AUTOSCALER_MODE : la política de escalador automático para el grupo de nodos. Este debe ser uno de:

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

    • on : agregar o eliminar nodos automáticamente del grupo de nodos.

    • only-scale-out : agregue nodos al grupo de nodos cuando se requiera capacidad adicional.

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

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

DESCANSAR

Utilice el método nodeGroups.insert para crear un grupo de nodos basado en una plantilla de nodo creada previamente:

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

Reemplace lo siguiente:

  • PROJECT_ID : el ID del proyecto.

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

  • TARGET_SIZE : la cantidad de nodos a crear en el grupo.

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

  • TEMPLATE_NAME : el nombre de la plantilla de nodo que se utilizará para crear este grupo.

  • GROUP_NAME : el nombre del nuevo grupo de nodos.

  • MAINTENANCE_POLICY : la política de mantenimiento para el grupo de nodos. Este debe ser uno de los siguientes valores:

    • DEFAULT
    • RESTART_IN_PLACE
    • MIGRATE_WITHIN_NODE_GROUP

    Como alternativa, puede optar por el control de mantenimiento avanzado para el grupo de nodos de inquilino único, utilizando el campo maintenanceInterval . Para obtener más información, consulte Habilitar el control de mantenimiento avanzado en un nodo de único inquilino .

  • START_TIME : la hora de inicio en GMT para la ventana de mantenimiento de las máquinas virtuales en este grupo de nodos. Establezca uno de: 00:00 , 04:00 , 08:00 , 12:00 , 16:00 o 20:00 . Si no se establece, el grupo de nodos no tiene una ventana de mantenimiento establecida.

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

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

    • ON : agregar o eliminar nodos automáticamente del grupo de nodos.

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

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

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

Aprovisionar una máquina virtual de inquilino único

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

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

O puede utilizar el siguiente procedimiento para aprovisionar una máquina virtual en un nodo de inquilino único desde la página de detalles del grupo de nodos. Según el grupo de nodos en el que aprovisionas las VM, Compute Engine asigna etiquetas de afinidad .

Consola

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

    Ir a nodos de único inquilino

  2. Haga clic en Grupos de nodos .

  3. Haga clic en el Nombre del grupo de nodos para aprovisionar una instancia de VM y luego, opcionalmente, para aprovisionar una VM en un nodo de único inquilino específico, haga clic en el nombre del nodo de único inquilino específico para aprovisionar la VM.

  4. Haga clic en Crear instancia para aprovisionar una instancia de VM en este grupo de nodos, observe los valores aplicados automáticamente para Nombre , Región y Zona , y modifique esos valores según sea necesario.

  5. Seleccione una configuración de máquina especificando la familia de máquina , la serie y el tipo de máquina . Elija la serie que corresponda al tipo de nodo de inquilino único .

  6. Modifique el disco de arranque , el firewall y otras configuraciones según sea necesario.

  7. Haga clic en Sole Tenancy , observe las etiquetas de afinidad de nodo asignadas automáticamente y use Examinar para realizar los ajustes necesarios.

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

    • Migrar instancia de VM (recomendado) : la VM se migró a otro nodo en el grupo de nodos durante los eventos de mantenimiento.

    • Terminar : la máquina virtual se detuvo durante eventos de mantenimiento.

  9. Elija una de las siguientes opciones para el reinicio automático :

    • Activado (recomendado) : reinicia automáticamente las máquinas virtuales si se detienen por eventos de mantenimiento.

    • Apagado : no reinicia automáticamente las máquinas virtuales después de un evento de mantenimiento.

  10. Haga clic en Crear para terminar de crear su máquina virtual de único inquilino.

nube de gcloud

Usa el comando gcloud compute instances create para aprovisionar una máquina virtual en un grupo de nodos de único inquilino:

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]

El indicador --restart-on-failure indica si las máquinas virtuales de único inquilino se reinician después de detenerse. Esta bandera está habilitada de forma predeterminada. Utilice --no-restart-on-failure para desactivarlo.

Reemplace lo siguiente:

  • VM_NAME : el nombre de la nueva máquina virtual de único inquilino.

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

  • IMAGE_FAMILY : la familia de imágenes de la imagen que se utilizará 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 máquina virtual de único inquilino. Usa el comando gcloud compute machine-types list para obtener una lista de los tipos de máquinas disponibles para el proyecto.

  • MAINTENANCE_POLICY : especifica el comportamiento de reinicio de las máquinas virtuales de único inquilino durante los eventos de mantenimiento. Establezca uno de los siguientes:

    • MIGRATE : la máquina virtual migró a otro nodo del grupo de nodos durante los eventos de mantenimiento.

    • TERMINATE : la máquina virtual se detuvo durante eventos de mantenimiento.

  • GPU_TYPE : tipo de GPU. Establezca uno de los tipos de acelerador especificados cuando se creó la plantilla de nodo.

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

  • SSD_INTERFACE : tipo de interfaz SSD local. Solo puede configurar esto para instancias creadas a partir de una plantilla de nodo con soporte SSD local. Si especifica esto al crear la instancia y la plantilla de nodo no admite SSD local, la creación de la instancia falla. Establezca en nvme si los controladores de imagen del disco de arranque están optimizados para NVMe; de ​​lo contrario, configúrelo en scsi . Especifique este indicador y un valor correspondiente una vez para cada partición SSD local.

DESCANSAR

Utilice el método instances.insert para aprovisionar una máquina virtual en un grupo de nodos de único inquilino:

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

Reemplace lo siguiente:

  • PROJECT_ID : el ID del proyecto.

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

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

  • MACHINE_TYPE : el tipo de máquina de la máquina virtual de único inquilino. Utilice el método machineTypes.list para obtener una lista de los tipos de máquinas disponibles para el proyecto.

  • VM_NAME : el nombre de la nueva máquina virtual de único inquilino.

  • MAINTENANCE_POLICY : especifica el comportamiento de reinicio de las máquinas virtuales de único inquilino durante los eventos de mantenimiento. Establezca uno de los siguientes:

    • MIGRATE : la máquina virtual migró a otro nodo del grupo de nodos durante los eventos de mantenimiento.

    • TERMINATE : la máquina virtual se detuvo durante eventos de mantenimiento.

  • RESTART_ON_FAILURE : indica si las máquinas virtuales de único 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 : la URL del recurso de red para esta VM.

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

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

  • GPU_TYPE : el tipo de GPU. Establezca 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 nodo para adjuntar a esta VM. El valor predeterminado es 1 .

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

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

  • LOCAL_SSD_ZONE : la zona del SSD local.

  • SSD_INTERFACE : el tipo de interfaz SSD local. Configúrelo en NVME si los controladores de imagen del disco de arranque están optimizados para NVMe; de ​​lo contrario, configúrelo en SCSI .

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

Los grupos de instancias administrados (MIG) le permiten aprovisionar un grupo de máquinas virtuales idénticas de único inquilino. Las etiquetas de afinidad le permiten especificar el nodo o grupo de nodos de único inquilino en el que aprovisionar el grupo de máquinas virtuales de único inquilino.

Para los MIG regionales, debe crear grupos de nodos en cada una de las zonas del MIG regional y debe especificar afinidades de nodo para esos grupos de nodos en la plantilla de instancia del MIG regional.

nube de gcloud

  1. Usa el comando gcloud compute instance-templates create para crear una plantilla de grupo de instancias administrada para que un grupo de VM la cree en un grupo de nodos de único inquilino:

    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]
    

    Reemplace lo siguiente:

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

    • MACHINE_TYPE : el tipo de máquina de la máquina virtual de único inquilino. 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 utilizará para crear la VM.

    • GROUP_NAME : el nombre del grupo de nodos en el que se aprovisionará la VM. Alternativamente, si desea utilizar esta plantilla de instancia para crear un MIG regional que exista en más de una zona, use el indicador --node-affinity-file para especificar una lista de valores para los grupos de nodos del MIG regional.

    • GPU_TYPE : tipo de GPU. Establezca uno de los tipos de acelerador especificados cuando se creó la plantilla de nodo.

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

    • SSD_INTERFACE : tipo de interfaz SSD local. Establezca en nvme si los controladores de imagen del disco de arranque están optimizados para NVMe; de ​​lo contrario, configúrelo en scsi . Especifique este indicador y un valor correspondiente una vez para cada partición SSD local.

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

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

    Reemplace lo siguiente:

    • INSTANCE_GROUP_NAME : el nombre de este grupo de instancias.

    • SIZE : la cantidad de VM que se incluirán en este grupo de instancias. Su grupo de nodos debe tener suficientes recursos para dar cabida a las instancias de este grupo de instancias administrado. Utilice el escalador automático de grupos de instancias administrados para administrar automáticamente el tamaño de los grupos de instancias administrados.

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

    • ZONE : la zona en la que se creará el grupo de instancias administrado. Para un MIG regional, reemplace el indicador --zone con el indicador --region y especifique una región; También agregue el indicador --zones para especificar todas las zonas donde existen los grupos de nodos.

DESCANSAR

  1. Utilice el método instanceTemplates.insert para crear una plantilla de grupo de instancias administrada dentro de su grupo de nodos de único 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" } ] } }

    Reemplace lo siguiente:

    • PROJECT_ID : el ID del proyecto.

    • TEMPLATE_ZONE : la zona para 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 máquina virtual de único inquilino. Utilice el método machineTypes.list para obtener una lista de los tipos de máquinas disponibles para el proyecto.

    • GROUP_NAME : nombre del grupo de nodos en el que se aprovisionará la máquina virtual. Si desea utilizar esta plantilla de instancia para crear un MIG regional que exista en más de una zona, especifique una lista de grupos de nodos que existan en las mismas zonas que las zonas del MIG regional.

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

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

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

    • GPU_TYPE : el tipo de GPU. Establezca 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 nodo para adjuntar 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 utilizará para crear la VM.

    • LOCAL_SSD_ZONE : la zona del SSD local.

    • SSD_INTERFACE : el tipo de interfaz SSD local. Configúrelo en NVME si los controladores de imagen del disco de arranque están optimizados para NVMe; de ​​lo contrario, configúrelo en SCSI .

  2. Utilice el método instanceGroupManagers.insert para crear un MIG dentro de su grupo de nodos de único inquilino en función de la plantilla de instancia creada previamente. O, si desea crear un MIG regional, utilice el método regionInstanceGroupManagers.insert y especifique la región y las zonas de todos los grupos de nodos como se especifica en la plantilla de instancia.

    Por ejemplo, para crear un MIG zonal, utilice 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"
    }
    

    Reemplace lo siguiente:

    • PROJECT_ID : el ID del proyecto.

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

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

    • INSTANCE_GROUP_NAME : el nombre del grupo de instancias.

    • SIZE : la cantidad de VM que se incluirán en este grupo de instancias. Su grupo de nodos debe tener suficientes recursos para dar cabida a las instancias de este grupo de instancias administrado. Utilice el escalador automático de grupos de instancias administrados para administrar automáticamente el tamaño de los grupos de instancias administrados.

    • INSTANCE_TEMPLATE : la URL de la plantilla de instancia que se utilizará para crear este grupo. La plantilla debe tener una etiqueta de afinidad de nodo que apunte al grupo de nodos apropiado.

Configurar etiquetas de afinidad de nodos

Las etiquetas de afinidad de nodos le permiten agrupar lógicamente grupos de nodos y programar máquinas virtuales en un conjunto específico de grupos de nodos. También puede usar etiquetas de afinidad de nodos para programar máquinas virtuales en grupos de nodos en diferentes zonas y aún así mantener los grupos de nodos en un grupo lógico. El siguiente procedimiento es un ejemplo del uso de etiquetas de afinidad para asociar máquinas virtuales con un grupo de nodos específico que se utiliza para cargas de trabajo de producción. Este ejemplo muestra cómo programar una única VM, pero también puedes usar grupos de instancias administrados para programar un grupo de VM.

nube de 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 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 sus máquinas virtuales de producción, cree un archivo node-affinity-prod.json para especificar la afinidad de sus máquinas virtuales de producción. Por ejemplo, puede crear un archivo que especifique que las máquinas virtuales se ejecutan solo en nodos con afinidades workload=frontend y environment=prod . Cree el archivo de afinidad de nodo mediante Cloud Shell o créelo en la ubicación que elija.

    [
      {
        "key" : "workload",
        "operator" : "IN",
        "values" : ["frontend"]
      },
      {
        "key" : "environment",
        "operator" : "IN",
        "values" : ["prod"]
      }
    ]
    
  5. Use el archivo node-affinity-prod.json con el gcloud compute instances create para programar una máquina virtual 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. Utilice el comando gcloud compute instances describe y verifique el campo scheduling para ver las afinidades de nodo asignadas a la VM.

Configurar etiquetas antiafinidad de nodos

Las etiquetas de afinidad de nodo se pueden configurar como etiquetas antiafinidad para evitar que las máquinas virtuales se ejecuten en nodos específicos. Por ejemplo, puede utilizar etiquetas antiafinidad para evitar que las máquinas virtuales que utiliza con fines de desarrollo se programen en los mismos nodos que su máquina virtual de producción. El siguiente ejemplo muestra cómo utilizar etiquetas de afinidad para evitar que las máquinas virtuales se ejecuten en grupos de nodos específicos. Este ejemplo muestra cómo programar una única VM, pero también puedes usar grupos de instancias administrados para programar un grupo de VM.

nube de gcloud

  1. Para las máquinas virtuales de desarrollo, especifique la afinidad de sus máquinas virtuales de desarrollo creando un node-affinity-dev.json con Cloud Shell o creándolo en una ubicación de su elección. Por ejemplo, cree un archivo que configure las máquinas virtuales 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 máquina virtual de desarrollo:

    gcloud compute instances create dev-vm \
      --node-affinity-file=node-affinity-dev.json \
      --machine-type=n1-standard-2
    
  3. Utilice el comando gcloud compute instances describe y verifique el campo scheduling para ver las antiafinidades de nodo asignadas a la máquina virtual.

Eliminar un grupo de nodos

Si necesita eliminar un grupo de nodos de único inquilino, primero elimine las máquinas virtuales del grupo de nodos.

Consola

  1. Vaya a la página Nodos de único inquilino .

    Ir a nodos de único inquilino

  2. Haga clic en el nombre del grupo de nodos que desea eliminar.

  3. Para cada nodo del grupo de nodos, haga clic en el nombre del nodo y elimine instancias de VM individuales en la página de detalles del nodo, o siga el procedimiento estándar para eliminar una VM individual . Para eliminar máquinas virtuales en un grupo de instancias administrado, elimine el grupo de instancias administrado .

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

    Ir a nodos de único inquilino

  5. Haga clic en Grupos de nodos .

  6. Seleccione el nombre del grupo de nodos que necesita eliminar.

  7. Haga clic en Eliminar .

nube de gcloud

  1. Enumere 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

    Reemplace lo siguiente:

    • GROUP_NAME : nombre del grupo de nodos

    • ZONE : zona del grupo de nodos

  2. Si hay máquinas virtuales ejecutándose en el grupo de nodos, siga el procedimiento para eliminar una VM individual o el procedimiento para eliminar un grupo de instancias administrado .

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

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

    Reemplace lo siguiente:

    • GROUP_NAME : el nombre del grupo de nodos

    • ZONE : la zona del grupo de nodos

DESCANSAR

  1. Enumere 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

    Reemplace lo siguiente:

    • PROJECT_ID : el ID del proyecto

    • ZONE : la zona del grupo de nodos

    • GROUP_NAME : el grupo para el cual enumerar las máquinas virtuales

  2. Si hay máquinas virtuales ejecutándose en el grupo de nodos, siga el procedimiento para eliminar una VM individual o el procedimiento para eliminar un grupo de instancias administrado .

  3. Después de eliminar todas las máquinas virtuales que se ejecutan en todos los nodos del grupo de nodos, elimine el grupo de nodos utilizando el método nodeGroups.delete :

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

    Reemplace lo siguiente:

    • PROJECT_ID : el ID del proyecto

    • ZONE : la zona del grupo de nodos

    • GROUP_NAME : el nombre del grupo de nodos a eliminar

Eliminar una plantilla de nodo

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

Consola

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

    Ir a nodos de único inquilino

  2. Haga clic en Plantillas de nodo .

  3. Seleccione el nombre de una plantilla de nodo no utilizada.

  4. Haga clic en Eliminar .

nube de gcloud

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

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

Reemplace lo siguiente:

  • TEMPLATE_NAME : el nombre de la plantilla de nodo a eliminar

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

DESCANSAR

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

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

Reemplace lo siguiente:

  • PROJECT_ID : ID de tu proyecto

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

  • TEMPLATE_NAME : el nombre de la plantilla de nodo a eliminar

¿Qué sigue?