Actualizar la propiedad de máquinas virtuales


En esta página se describe cómo actualizar la permanencia de una VM modificando las etiquetas de afinidad de nodo de la VM.

De forma predeterminada, Compute Engine despliega las VMs en hosts multiusuario. En los hosts multiinquilino, las VMs suelen compartir recursos del host con VMs de otros proyectos y clientes. Cuando mueves una VM a un nodo de un solo inquilino, tu proyecto tiene acceso exclusivo y control total sobre el hardware del nodo de un solo inquilino. Eres el único cliente de ese nodo, por lo que tus cargas de trabajo están aisladas de las cargas de trabajo de otros proyectos y sus VMs.

Si modificas las etiquetas de afinidad de nodos, puedes mover una VM de las siguientes formas:

  • De un host multitenant a un grupo de nodos o un nodo de único cliente
  • De un grupo o nodo de único cliente a un host multiinquilino
  • De un nodo de único cliente a otro nodo o grupo de nodos de único cliente
  • De un grupo de nodos de único cliente a otro grupo o nodo de único cliente

Mover cargas de trabajo temporalmente a un único arrendatario

Debido a las fluctuaciones de los requisitos de sus cargas de trabajo, como las necesidades periódicas de aislamiento adicional para examinar el rendimiento o los cambios en las normativas de cumplimiento, es posible que tenga que mover temporalmente cargas de trabajo específicas a nodos de un solo inquilino. Después, cuando ya no necesites el aislamiento, vuelve a desplegar tus VMs en un host multiinquilino. Cuando modificas la tenencia de una VM, Compute Engine conserva sus configuraciones.

Reequilibrar cargas de trabajo de único cliente

Además de mover máquinas virtuales a nodos y grupos de nodos de un solo inquilino, también puedes moverlas entre nodos y grupos de nodos, lo que te ayudará a consolidar nodos y reequilibrar cargas de trabajo. Para mover una máquina virtual, es necesario reiniciarla, así que planifica el movimiento de las máquinas virtuales en función de los requisitos de disponibilidad de tus cargas de trabajo.

Limitaciones

  • Cuando mueves una máquina virtual que ya se está ejecutando en un nodo de único cliente, es posible que la máquina virtual se reinicie en otro nodo. Si la propiedad de único arrendatario de una VM se especifica por el nombre del grupo de nodos o mediante la node-group-name etiqueta de afinidad predeterminada, la VM puede reiniciarse en cualquier nodo del grupo de nodos. Si la tenencia exclusiva de la VM se especifica mediante etiquetas de afinidad personalizada o antiafinidad, la VM puede reiniciarse en cualquier nodo de cualquier grupo de nodos de la zona.

Antes de empezar

  • Si aún no lo has hecho, configura la autenticación. La autenticación verifica tu identidad para acceder a Google Cloud servicios y APIs. Para ejecutar código o ejemplos desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    Select the tab for how you plan to use the samples on this page:

    gcloud

    1. Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    2. Set a default region and zone.

    REST

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

      Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .

Mover una máquina virtual a un único cliente

Actualiza la propiedad moviendo la VM a un nodo o grupo de nodos de único propietario específico desde otro nodo o grupo de nodos, o desde un host multiinquilino.

gcloud

  1. Detén la VM.

    gcloud compute instances stop VM_NAME
    

    Sustituye VM_NAME por el nombre de la VM que quieras detener.

  2. Actualiza el arrendamiento especificando el grupo de nodos al que quieres mover la VM.

    gcloud compute instances set-scheduling VM_NAME \
        --node-group=NODE_GROUP_NAME
    

    Haz los cambios siguientes:

    • VM_NAME nombre de la VM que se va a mover a un grupo de nodos específico

    • NODE_GROUP_NAME nombre del grupo de nodos al que se va a mover la VM

    También puedes mover una VM a un nodo de único inquilino usando el nombre del nodo o una etiqueta de afinidad. Para obtener más información, consulta el gcloud compute instances set-scheduling comando.

  3. Inicia la VM.

    gcloud compute instances start VM_NAME
    

    Sustituye VM_NAME por el nombre de la VM que quieras iniciar en el grupo de nodos especificado anteriormente por el contenido de un archivo de etiquetas de afinidad.

REST

  1. Detén la VM. Para obtener más información sobre este comando, consulta instances.stop.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
    

    Haz los cambios siguientes:

    • PROJECT_ID: ID del proyecto que contiene la VM que se va a detener

    • ZONE zona que contiene el proyecto

    • VM_NAME nombre de la VM que se va a detener

  2. Actualiza el arrendamiento especificando el grupo de nodos al que quieres mover la VM.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling
    
    {
      "nodeAffinities": [
        {
          "key": "compute.googleapis.com/node-group-name",
          "operator": "IN",
          "values": [
            "NODE_GROUP_NAME"
          ]
        }
      ]
    }
    

    Haz los cambios siguientes:

    • PROJECT_ID ID del proyecto que contiene la VM que se va a mover

    • ZONE zona que contiene el proyecto

    • VM_NAME nombre de la VM que se va a mover a un grupo de nodos específico

    • NODE_GROUP_NAME nombre del grupo de nodos al que se va a mover la VM

    También puedes mover una VM a un nodo de único inquilino usando el nombre del nodo o una etiqueta de afinidad. Para obtener más información, consulta el método instances.setScheduling.

  3. Inicia la VM. Para obtener más información sobre este comando, consulta instances.start.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/start
    

    Haz los cambios siguientes:

    • PROJECT_ID ID del proyecto que contiene la VM que se va a iniciar

    • ZONE zona que contiene el proyecto

    • VM_NAME nombre de la VM que se va a iniciar

Mover una máquina virtual de único cliente

Si tu VM ya no necesita hardware dedicado (por ejemplo, después de un evento que requería que tu VM estuviera aislada de otras VMs), mueve la VM de un nodo de un solo inquilino a un host multiinquilino.

gcloud

  1. Detén la VM.

    gcloud compute instances stop VM_NAME
    

    Sustituye VM_NAME por el nombre de la VM que quieras detener.

  2. Borra las afinidades de nodo de la VM para poder moverla a un host multi-tenant.

    gcloud compute instances set-scheduling VM_NAME --clear-node-affinities
    

    Sustituye VM_NAME por el nombre de la VM de la que quieras quitar las afinidades de nodo.

  3. Inicia la VM en un host multicliente.

    gcloud compute instances start VM_NAME
    

    Sustituye VM_NAME por el nombre de la VM de la que has borrado las afinidades de nodo anteriormente.

REST

  1. Detén la VM. Para obtener más información sobre este comando, consulta instances.stop.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
    

    Haz los cambios siguientes:

    • PROJECT_ID ID del proyecto que contiene la VM que se va a detener

    • ZONE zona que contiene el proyecto

    • VM_NAME nombre de la VM que se va a detener

  2. Borra las afinidades de nodo de la VM para moverla a un host multi-tenant.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling
    
    {
      "nodeAffinities": []
    }
    

    Haz los cambios siguientes:

    • PROJECT_ID ID del proyecto que contiene la VM que se va a mover

    • ZONE zona que contiene el proyecto

    • VM_NAME nombre de la VM de la que se van a borrar las afinidades de nodo

  3. Inicia la VM en un host multicliente. Para obtener más información sobre este comando, consulta instances.start.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/start
    

    Haz los cambios siguientes:

    • PROJECT_ID ID del proyecto que contiene la VM que se va a iniciar

    • ZONE zona que contiene el proyecto

    • VM_NAME nombre de la VM que se va a iniciar

Siguientes pasos