Aprovisiona VM en nodos de usuario único

En esta página, se describe cómo aprovisionar instancias de VM en los nodos de usuario único. Los nodos de usuario único son servidores físicos dedicados a ejecutar las VM de un proyecto específico. Antes de aprovisionar VM en nodos de usuario único, lee la descripción general de los nodos de usuario único.

El proceso de aprovisionar VM en nodos de usuario único implica las siguientes acciones:

  1. Crear una plantilla de nodos de usuario único para especificar propiedades de los nodos
  2. Crear un grupo de nodos de usuario único a partir de la plantilla
  3. Crear VM para usar nodos de usuario único

Antes de comenzar

Crea una plantilla de nodo de usuario único

Antes de crear grupos de nodos y aprovisionar VM en esos grupos, crea una plantilla de nodos de usuario único. Una plantilla de nodos es un recurso regional que define las propiedades de los nodo en grupos creados a partir de la plantilla.

Console

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

    Ir a Nodos de usuario único

  2. Haz clic en Plantillas de nodos.

  3. Haz clic en Crear plantilla de nodos para comenzar a crear una plantilla de nodos.

  4. Especifica un Nombre para la plantilla de nodos.

  5. Especifica una Región. Puedes usar la plantilla de nodos para crear grupos de nodos en cualquier zona de esta región.

  6. Especifica el Tipo de nodo para cada nodo de usuario único en el grupo que crearás a partir de esta plantilla.

  7. Agrega Etiquetas de afinidad de nodo. Las etiquetas de afinidad te permiten programar VM mediante usuarios únicos. Los nodos en los grupos de nodos creados a partir de esta plantilla usan solo estas etiquetas de afinidad. No puedes agregar etiquetas de afinidad a un grupo de nodos por separado. Para obtener más información, consulta Afinidad y antiafinidad de nodos.

  8. Haz clic en Crear para terminar de crear la plantilla de nodos.

gcloud

  1. Usa el comando compute sole-tenancy node-types list para obtener una lista de los tipos de nodos de usuario único disponibles en cada zona de Google Cloud.

    gcloud compute sole-tenancy node-types list
    
  2. A fin de usar el comando compute sole-tenancy node-templates create para crear una plantilla de nodos nueva, especifica el tipo de nodo:

    gcloud compute sole-tenancy node-templates create template-name \
      --region=region \
      --node-type=node-type \
      --node-affinity-labels=affinity-labels \
      --server-binding=server-binding
    

    Reemplaza lo siguiente:

    • template-name: el nombre de la nueva plantilla de nodo
    • region: la región en la que usarás esta plantilla

    • node-type: el tipo de nodo de esta plantilla. Por ejemplo, selecciona el tipo de nodo n2-node-80-640 para crear un nodo con 80 CPU virtuales y 624 GB de memoria.

    • affinity-labels: las claves y los valores de las etiquetas de afinidad. Las etiquetas de afinidad te permiten programar instancias de VM mediante un usuario único. Los nodos de los grupos de nodos creados a partir de esta plantilla solo usan estas etiquetas de afinidad. No puedes agregar etiquetas de afinidad a un grupo de nodos por separado. Para obtener más información, consulta las etiquetas de afinidad de nodos

    • server-binding: te permite controlar cómo Google Cloud asigna los nodos a los servidores físicos. Especifica restart-node-on-any-server, o bien omite la marca server-binding para permitir que Google Cloud aprovisione cualquier servidor físico a fin de que actúe como un nodo después de un evento de mantenimiento de nodos. Especifica restart-node-on-minimal-servers a fin de forzar a Google Cloud a usar el mismo servidor físico para el nodo. Para obtener más información, consulta --server-binding

API

  1. Usa elmétodo compute.nodeTypes.list para obtener una lista de tipos de nodos:

    GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/nodeTypes
    

    Reemplaza los siguientes elementos:

    • project-id: el ID de tu proyecto
    • zone: la zona de Google Cloud desde la que se recuperarán los tipos de nodos disponibles
  2. Usa el método compute.nodeTemplates.insert para crear una plantilla de nodos que use un tipo de nodo:

    POST https://compute.googleapis.com/compute/v1/projects/project-id/regions/region/nodeTemplates
    
        {
         "name": "template-name",
         "nodeType": "node-type",
         "nodeAffinityLabels": {
             "key": "value",
             ....
         },
         "serverBinding":
         {
             "type": "server-binding"
         }
        }
    

    Reemplaza los siguientes elementos:

    • project-id: el ID de tu proyecto
    • region: la región de Google Cloud 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: el nombre de la plantilla de nodo que se creará

    • node-type: el tipo de nodo de esta plantilla. Por ejemplo, selecciona el tipo de nodo n2-node-80-640 para crear un nodo con 80 CPU virtuales y 640 GB de memoria.

    • Usa nodeAffinityLabels para especificar los pares key y value que definen las etiquetas de afinidad de nodo. Las etiquetas de afinidad te permiten programar instancias de VM mediante un usuario único. Los nodos de los grupos de nodos creados a partir de esta plantilla solo usan estas etiquetas de afinidad. No puedes agregar etiquetas de afinidad a un grupo de nodos por separado. Para obtener más información, consulta las etiquetas de afinidad de nodos.

    • server-binding: te permite controlar cómo Google Cloud asigna nodos a servidores físicos con este parámetro. Especifica restart-node-on-any-server, o bien omite el parámetro serverBinding para permitir que Google Cloud aprovisione cualquier servidor físico a fin de que actúe como un nodo después de un evento de mantenimiento de nodos. Especifica restart-node-on-minimal-servers para forzar a Google Cloud a usar el mismo servidor físico para el nodo. Para obtener más información, consulta --server-binding

Crea un grupo de nodos de usuario único

Después de crear una plantilla de nodos, crea un grupo de nodos basado en esa plantilla. Cuando creas un grupo de nodos, debes especificar los siguientes valores, que se aplican a cada nodo del grupo:

  • Región: elige la región que contiene la plantilla de nodos que deseas aplicar al grupo de nodos.

  • Zona: elige la zona dentro de la región en la que deseas crear el grupo de nodos.

  • Plantilla de nodos: elige la plantilla de nodos desde la que deseas crear el grupo de nodos.

  • Cantidad de nodos: Especifica la cantidad de nodos de usuario único que se crearán dentro del grupo y usa el escalador automático de grupos de nodos para administrar el tamaño de estos. Según la cantidad de nodos que crees, es posible que debas solicitar una cuota adicional. Por ejemplo, si creas un grupo de nodos de tamaño 2 y eliges n2-node-80-640 como tipo de nodo, necesitarás una cuota de CPU virtual de 160 como mínimo.

  • Política de mantenimiento: especifica la política de mantenimiento para las VM durante los eventos de mantenimiento del host. Elige si las VM del host se migrarán en vivo a un servidor físico nuevo o dentro del grupo de servidores físicos que usa el grupo de nodos, o si se finalizarán y reiniciarán en el mismo servidor físico. Usa la política de mantenimiento predeterminada, a menos que tengas requisitos de afinidad de servidor físico, por ejemplo, si tienes licencias de software que se evalúan por núcleo físico.

  • Grupos de nodos con ajuste de escala automático: habilita el escalador automático de grupos de nodos para aumentar o reducir automáticamente la cantidad de nodos del grupo de acuerdo con tus necesidades.

Console

  1. En Google Cloud Console, 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 nodos disponibles en esa región.

  5. Especifica la Zona dentro de la región en la que deseas ejecutar el grupo de nodos.

  6. Especifica la Plantilla de nodos que deseas usar. Debes tener una plantilla de nodos en la región seleccionada.

  7. Especifica la cantidad de nodos que deseas ejecutar en el grupo. Puedes cambiar esta cantidad de forma manual más adelante o puedes habilitar el escalador automático del grupo de nodos. En la actualidad, el escalador automático del grupo de nodos se encuentra en versión Beta.

  8. Especifica la política de mantenimiento:

    • Predeterminado: migra en vivo la VM a un nuevo servidor físico.
    • Reinicio en el lugar: reinicia las VM en el mismo servidor físico.
    • Migración dentro del grupo de nodos: migra la VM dentro del grupo de nodos.
  9. Haz clic en Crear para terminar de crear el grupo de nodos.

gcloud

Ejecuta el siguiente comando para crear un grupo de nodos a partir de una plantilla de nodos creada con anterioridad:

gcloud compute sole-tenancy node-groups create group-name \
  --zone=zone \
  --node-template=template-name \
  --target-size=target-size \
  --maintenance-policy=maintenance-policy \
  --autoscaler-mode=autoscaler-mode \
  --min-nodes=min-nodes \
  --max-nodes=max-nodes

Reemplaza los siguientes elementos:

  • group-name: El nombre del grupo de nodos nuevo
  • zone: La zona en la que se creará el grupo de nodos. Debe ser la misma región que la de la plantilla de nodos en la que se basa el grupo de nodos
  • template-name: El nombre de la plantilla de nodos que se usará para crear este grupo
  • target-size: La cantidad de nodos que se crearán en el grupo
  • maintenance-policy: La política de mantenimiento del grupo de nodos. Debe ser uno de las siguientes:
    • default: Las VM se migran en vivo a un servidor físico nuevo
    • migrate-within-node-group: Las VM se migran en vivo a otro nodo del grupo de nodos. Esta política se encuentra en versión Beta y debe especificarse mediante el comando gcloud beta compute sole-tenancy node-groups create
    • restart-in-place: Las VM se finalizan y se reinician en el mismo servidor físico después del evento de mantenimiento.
  • autoscaler-mode: La política de escalador automático para el grupo de nodos. Debe ser una de las siguientes:
    • off: Desactiva el ajuste de escala automático en el grupo de nodos.
    • on: Habilita el ajuste de escala automático dentro y fuera del grupo de nodos.
    • only-scale-out: Habilita el ajuste de escala automático solo de manera horizontal
  • min-nodes: 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: 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

API

Después de crear la plantilla de nodos, crea un grupo de nodos. Usa el método nodeGroups.insert para crear un grupo de nodos:

POST https://www.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, "autoscalingPolicy": { "mode": autoscaler-mode, "minNodes": min-nodes, "maxNodes": max-nodes }, }

Reemplaza los siguientes elementos:

  • 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 nodos en la que se basa el grupo de nodos
  • target-size: La cantidad de nodos que se crearán en el grupo
  • region: La región en la que se encuentra la plantilla de nodos en la que se basa este grupo de nodos
  • template-name: El nombre de la plantilla de nodos que se usará para crear este grupo
  • group-name: El nombre del grupo de nodos nuevo
  • maintenance-policy: La política de mantenimiento del grupo de nodos. Debe ser uno de las siguientes:
    • DEFAULT: Las VM siguen el comportamiento de mantenimiento tradicional durante los eventos de mantenimiento del host y pueden migrar en vivo a un host nuevo si la VM está configurada para migrar durante los eventos de mantenimiento del host. Se cancelarán las VM que no estén configuradas para migrar durante los eventos de mantenimiento del host.
    • MIGRATE_WITHIN_NODE_GROUP: Las VM se migran en vivo a otro nodo del grupo de nodos. Esta política está en versión Beta y debe especificarse con el comando gcloud beta compute sole-tenancy node-groups create.
    • RESTART_IN_PLACE: Las VM se finalizan y se reinician en el mismo servidor físico después del evento de mantenimiento.
  • autoscaler-mode: La política de escalador automático para el grupo de nodos. Debe ser una de las siguientes:
    • OFF: Desactiva el ajuste de escala automático en el grupo de nodos.
    • ON: Habilita el ajuste de escala automático dentro y fuera del grupo de nodos.
    • ONLY_SCALE_OUT: Habilita el ajuste de escala automático solo de manera horizontal.
  • max-nodes: El tamaño máximo del grupo de nodos. Debe ser menor o igual que 100 y mayor o igual que min- nodes. Se debe especificar si autoscaler-mode no está configurado como off
  • min-nodes: El 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

Aprovisiona VM individuales en un nodo de usuario único

Después de crear un grupo de nodos a partir de una plantilla de nodos, aprovisiona VM individuales directamente en un nodo de usuario único o un grupo de nodos mediante cualquier tipo predefinido o personalizado de máquina con 2 CPU virtuales o más. Cuando aprovisionas una VM de esta manera, Compute Engine asigna etiquetas de afinidad automáticamente según el nodo o el grupo de nodos en el que aprovisionas la VM.

En el siguiente procedimiento, se describe cómo aprovisionar una VM individual en un grupo de nodos.

Console

  • Mediante etiquetas de afinidad de nodos: Sigue el procedimiento estándar para crear una instancia de VM y usa Cloud Console para asociar una instancia de VM nueva con un nodo de usuario único mediante etiquetas de afinidad.

  • Como alternativa, crea una instancia de VM desde la página de detalles del grupo de nodos:

    1. En Google Cloud Console, 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 en el que se aprovisionará una instancia de VM.

    4. Haz clic en Crear instancia a fin de aprovisionar una instancia de VM en este grupo de nodos. Anota los valores que Compute Engine aplicó automáticamente para la región, la zona, la configuración de la máquina, las etiquetas de afinidad de nodos, el mantenimiento en el host y el reinicio automático, y modifícalos según los requisitos de tu carga de trabajo.

    5. Haz clic en Crear para terminar de crear la instancia.

gcloud

Aprovisiona una VM con un tipo personalizado de máquina en un grupo de nodos con el siguiente comando:

gcloud compute instances create vm-name \
  --zone=zone \
  --image-family=image-family \
  --image-project=image-project \
  --node-group=group-name \
  --custom-cpu=vcpus \
  --custom-memory=memory \
  --maintenance-policy=maintenance-policy \
  --restart-on-failure

Reemplaza los siguientes elementos:

  • vm-name: El nombre de la VM nueva
  • zone: La zona en la que se creará la VM nueva
  • image-family: La familia de imágenes que contiene la imagen que se usará para crear la VM
  • image-project: El proyecto de imagen al que pertenece la familia de imágenes
  • group-name: El nombre del grupo de nodos en el que se aprovisionará la VM
  • vcpus: La cantidad de CPU virtuales que se usarán con esta VM
  • memory: La cantidad de memoria en incrementos de 256 MB. Por ejemplo, 5.25 GB o 5,376 MB
  • maintenance-policy: Especifica el comportamiento de las VM durante el mantenimiento. Configúrala en uno de los siguientes valores:
    • MIGRATE: Las VM se migraron al host nuevo.
    • TERMINATE: Las VM se cancelaron.
  • --restart-on-failure: Un parámetro que indica si se deben reiniciar las VM una vez finalizadas. Usa --no-restart-on- failure para inhabilitarlo

API

Aprovisiona una VM con un tipo personalizado de máquina en un grupo de nodos con la siguiente solicitud de REST instances.insert:

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instances
{ "machineType": "zones/zone/machineTypes/custom-vcpus-memory", "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" } ], "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/image-project/global/images/family/image-family" } } ] }

Reemplaza los siguientes elementos:

  • project-id: El ID del proyecto
  • zone: La zona en la que se creará la VM nueva
  • vcpus: La cantidad de CPU virtuales que se usarán con esta VM
  • memory: La cantidad de memoria en incrementos de 256 MB. Por ejemplo, 5.25 GB o 5,376 MB
  • vm-name: El nombre de la VM nueva
  • maintenance-policy: Especifica el comportamiento de las VM durante el mantenimiento. Configúrala en uno de los siguientes valores:
    • MIGRATE: Las VM se migraron al host nuevo.
    • TERMINATE: Las VM se cancelaron.
  • restart-on-failure: Un parámetro que indica si se deben reiniciar las VM una vez finalizadas. El valor predeterminado es true
  • group-name: El nombre del grupo de nodos en el que se aprovisionará la VM
  • network: La URL de la red de esta VM
  • region: La región que contiene la subred de esta VM
  • subnetwork: La URL de la subred de esta VM
  • image-project: El proyecto de imagen al que pertenece la familia de imágenes
  • image-family: La familia de imágenes que contiene la imagen que se usará para crear la VM

Aprovisiona varias VM en un nodo de usuario único

Usa grupos de instancias administrados (MIG) a fin de aprovisionar varias VM idénticas de manera simultánea en un nodo o un grupo de nodos, y usa una etiqueta de afinidad para especificar en qué nodo de usuario único o grupo de nodos se ejecuta el grupo de instancias.

Usa el escalador automático de MIG a fin de administrar automáticamente el tamaño de un grupo de instancias administrado y el escalador automático de grupos de nodos para administrar automáticamente el tamaño de los grupos de nodos.

Mediante el siguiente comando, se muestra cómo crear un grupo de instancias administrado con un tipo personalizado de máquina.

gcloud

  1. Crea una plantilla de MIG dentro del grupo de nodos mediante el comando gcloud compute instance-templates create:

    gcloud compute instance-templates create instance-template \
    --image-family=image-family \
    --image-project=image-project \
    --node-group=group-name \
    --custom-cpu=vcpus \
    --custom-memory=memory
    

    Reemplaza los siguientes elementos:

    • instance-template: El nombre de la plantilla de instancias nueva
    • image-family: La familia de imágenes que contiene la imagen que se usará para crear la VM
    • image-project: El proyecto de imagen al que pertenece la familia de imágenes
    • group-name: El nombre del grupo de nodos en el que se aprovisionará la VM
    • vcpus: La cantidad de CPU virtuales que se usarán con esta VM
    • memory: La cantidad de memoria en incrementos de 256 MB. Por ejemplo, 5.25 GB o 5,376 MB
  2. Crea un grupo de instancias mediante el comando gcloud compute instance-groups managed create:

    gcloud compute instance-groups managed create instance-group-name --zone zone --size size --template instance-template
    

    Reemplaza los siguientes elementos:

    • instance-group-name: El nombre de este grupo de instancias
    • zone: La zona en la que se creará el grupo de instancias administrado
    • size: 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
    • instance-template: El nombre de la plantilla de instancias que se usará para crear este grupo. La plantilla debe tener una afinidad de nodos que apunte al grupo de nodos apropiado

API

  1. Crea una plantilla de MIG dentro del grupo de nodos mediante la solicitud de REST instanceTemplates.insert:

    POST https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instance-templates
    { "name": "template-name", "properties": { "machineType": "custom-vcpus-memory", "scheduling": { "nodeAffinities": [ { "key": "compute.googleapis.com/node-group-name", "operator": "IN", "values": [ "group-name" ] } ] }, "networkInterfaces": [ { "network": "global/networks/network", "subnetwork": "regions/region/subnetworks/subnetwork" } ], "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/image-project/global/images/family/image-family" } } ] } }

    Reemplaza los siguientes elementos:

    • project-id: El ID del proyecto
    • zone: La zona en la que se creará la plantilla de instancias nueva
    • template-name: El nombre de la plantilla de instancias nueva
    • vcpus: La cantidad de CPU virtuales que se usará para cada VM en el grupo de instancias
    • memory: La cantidad de memoria en incrementos de 256 MB para cada VM en el grupo de instancias. Por ejemplo, 5.25 GB o 5,376 MB
    • group-name: El nombre del grupo de nodos en el que se aprovisionará la VM
    • network: La URL de la red de esta VM
    • region: La región que contiene la subred de esta VM
    • subnetwork: La URL de la subred de esta VM
    • image-project: El proyecto de imagen al que pertenece la familia de imágenes
    • image-family: La familia de imágenes que contiene la imagen que se usará para crear la VM
  2. Crea un grupo de instancias mediante el comando instanceGroupManagers.create:

    POST https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers
    {
     "baseInstanceName": "name-prefix",
     "name": "instance-group-name",
     "targetSize": sizevar>,
     "instanceTemplate": "global/instanceTemplates/instance-template"
    }
    

    Reemplaza los siguientes elementos:

    • 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 de cada una de las instancias del grupo de instancias administrado
    • instance-group-name: El nombre de este grupo de instancias
    • size: 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
    • instance-template: El nombre de la plantilla de instancias que deseas usar para crear este grupo. La plantilla debe tener una afinidad de nodos que apunte al grupo de nodos apropiado

Ejemplo de afinidad de la instancia

Las etiquetas de afinidad de nodos 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 nodos 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 de cómo usar las etiquetas de afinidad para asociar VM con un grupo de nodos específico:

gcloud

  1. Crea una plantilla de nodos con un conjunto de etiquetas de afinidad para una carga de trabajo de producción:

    gcloud compute sole-tenancy node-templates create production-template --node-type=n2-node-80-640 --node-affinity-labels workload=frontend,environment=prod
    
  2. Crea otra plantilla de nodos con un conjunto de etiquetas de afinidad para la carga de trabajo de desarrollo:

    gcloud compute sole-tenancy node-templates create development-template --node-type=n2-node-80-640 --node-affinity-labels workload=frontend,environment=dev
    
  3. Crea varios grupos de nodos mediante las plantillas de producción y de desarrollo. Por ejemplo, puedes tener un grupo de nodos de producción grande y varios grupos de nodos de desarrollo más pequeños. Si lo deseas, puedes crear estos grupos en diferentes zonas y con distintos tamaños de destino para adaptarse a la escala de las cargas de trabajo:

    gcloud compute sole-tenancy node-groups create production-group --node-template production-template --target-size 5 --zones us-west1-b
    
    gcloud compute sole-tenancy node-groups create development-group-east1 --node-template development-template --target-size 1 --zones us-east1-d
    
    gcloud compute sole-tenancy node-groups create development-group-east2 --node-template development-template --target-size 1 --zones us-east1-d
    
  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 indique a las VM que se ejecuten solo en los nodos con las afinidades workload=frontend y environment=prod:

    [
      {
        "key" : "workload",
        "operator" : "IN",
        "values" : ["frontend"]
      },
      {
        "key" : "environment",
        "operator" : "IN",
        "values" : ["prod"]
      }
    ]
    
  5. Usa el archivo node-affinity-prod.json a fin de crear una plantilla de MIG con las propiedades que deseas para las VM de producción:

    gcloud compute instance-templates create production-template --image-family production-images --image-project my-project --node-affinity-file node-affinity-prod.json --custom-cpu 3 --custom-memory 4096
    
  6. Inicia un grupo de instancias mediante la plantilla de producción de MIG que se ejecuta en el nodo de producción:

    gcloud compute instance-groups managed create production-group --zone us-west1-b --size 4 --template production-template
    

    En este punto, las VM del grupo se inician y se ejecutan solo en los grupos de nodos que tienen las afinidades workload=frontend y environment=prod.

Ejemplo de antiafinidad de la instancia

Usa etiquetas antiafinidad para asegurarte de que las VM no se aprovisionen en los nodos. Por ejemplo, crea algunas VM para fines de desarrollo, pero evita que Compute Engine las programe en los mismos nodos que alojan las VM de producción. El siguiente procedimiento es un ejemplo de cómo usar etiquetas de afinidad para asegurarte de que las VM no estén asociadas con grupos de nodos específicos:

gcloud

  1. Para las instancias de desarrollo, crea un archivo node-affinity-dev.json a fin de especificar la afinidad de las VM de desarrollo. 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",
        "values" : ["prod"]
      }
    ]
    
  2. Para el desarrollo, puedes crear una VM individual con fines de prueba, en lugar de un grupo de instancias completo. Usa el archivo node-affinity-dev.json para crear esa VM. Por ejemplo, si quieres probar una imagen de desarrollo específica llamada development-image-1, crea la VM y configura las afinidades con el siguiente comando:

    gcloud compute instances create dev-1 --image development-image-1 --image-project my-project --node-affinity-file node-affinity-dev.json --custom-cpu 3 --custom-memory 4096 --zone us-east1-d
    

    Esta instancia se inicia y se ejecuta solo en los grupos de nodos que tienen workload=frontend. Sin embargo, esta VM no se ejecutará en ningún grupo de nodos configurado con la environment=prod affinity.

Borra una plantilla de nodos

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

Console

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

    Ir a la página Nodos de usuario único

  2. Haz clic en Plantillas de nodos.

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

  4. Haz clic en Borrar.

gcloud

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

gcloud compute sole-tenancy node-templates delete template-name \
    --region=region

Reemplaza los siguientes elementos:

  • template-name: el nombre de la plantilla de nodo que se borrará
  • region: la región de la plantilla de nodos

API

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 los siguientes elementos:

  • 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á

Borra un grupo de nodos

Puedes borrar un grupo de nodos siempre que no haya instancias de VM en ejecución en los nodos.

Console

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

    Ir a la página Nodos de usuario único

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

  3. Haz clic en el nombre de cada nodo del grupo de nodos. Asegúrate de que no se estén ejecutando instancias de VM en el nodo.

  4. Puedes borrar instancias de VM individuales en la página de detalles del nodo o seguir el procedimiento estándar para borrar una instancia de VM individual. Para borrar instancias en un grupo de instancias administrado, debes borrar el grupo de instancias administrado.

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

    Ir a la página Nodos de usuario único

  6. Haz clic en Grupos de nodos.

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

  8. Haz clic en Borrar.

gcloud

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

    gcloud compute sole-tenancy node-groups list-nodes group-name \
     --zone=zone
    

    Reemplaza los siguientes elementos:

    • group-name: el nombre del grupo de nodos
    • zone: la zona del grupo de nodos
  2. Si hay instancias de VM en ejecución en el grupo de nodos, sigue el procedimiento estándar para borrar una instancia de VM individual o el procedimiento estándar para borrar un grupo de instancias administrado, según sea necesario.

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

    gcloud compute sole-tenancy node-groups delete group-name \
     --zone=zone
    

    Reemplaza los siguientes elementos:

    • group-name: el nombre del grupo de nodos
    • zone: la zona del grupo de nodos

Próximos pasos