Actualiza los usuarios de las VM


En esta página, se describe cómo actualizar el usuario de una VM mediante la modificación de las etiquetas de afinidad del nodo de la VM.

De forma predeterminada, Compute Engine implementa VM en hosts multiusuario. En los hosts multiusuario, las VM suelen compartir recursos de host con VM de otros proyectos y clientes. Cuando mueves una VM a un nodo de usuario único, tu proyecto tiene acceso exclusivo al hardware del nodo de usuario único y control total sobre él. Eres el único usuario en ese nodo, por lo que tus cargas de trabajo se aíslan de las cargas de trabajo de otros proyectos y sus VM.

Si modificas las etiquetas de afinidad del nodo, puedes mover una VM de las siguientes maneras:

  • Desde un host multiusuario hacia un nodo o grupo de nodos de usuario único
  • Desde un nodo o grupo de nodos de usuario único hacia un host multiusuario
  • Desde un nodo de usuario único hacia otro nodo o grupo de nodos de usuario único
  • Desde un grupo de nodos de usuario único hacia otro nodo o grupo de nodos de usuario único

Mueve de manera temporal las cargas de trabajo a usuarios únicos

Debido a los fluctuantes requisitos de tus cargas de trabajo, como las necesidades periódicas de aislamiento adicional para examinar el rendimiento o los cambios en las regulaciones de cumplimiento, es posible que debas mover cargas de trabajo específicas a nodos de usuario único de forma temporal. Luego, cuando ya no necesites el usuario único, vuelve a implementar tus VM en un host multiusuario. Cuando modificas el usuario de una VM, Compute Engine conserva los parámetros de configuración de la VM.

Rebalancea las cargas de trabajo de usuario único

Además de mover las VM desde y hacia nodos y grupos de nodos de usuario único, puedes mover las VM entre nodos y grupos de nodos, lo que puede ayudarte a reforzar los nodos y volver a balancear las cargas de trabajo. Para mover una VM, se requiere un reinicio, así que planifica el traslado de las VM según los requisitos de disponibilidad de tus cargas de trabajo.

Limitaciones

  • Cuando mueves una VM que ya se está ejecutando en un nodo de usuario único, es posible que esta se reinicie en otro nodo. Si el usuario único de una VM se especifica por nombre de grupo de nodos o mediante la etiqueta de afinidad predeterminada node-group-name, la VM puede reiniciarse en cualquier nodo del grupo de nodos. Si el usuario único de una VM se especifica mediante etiquetas de afinidad personalizadas de afinidad o antiafinidad, la VM puede reiniciarse en cualquier nodo de cualquier grupo de nodos de la zona.

Antes de comenzar

  • 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 un código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.

    Selecciona la pestaña sobre cómo planeas usar las muestras en esta página:

    gcloud

    1. Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init
    2. Configura una región y una zona predeterminadas.

    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.

      Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init

Mueve una VM a un nodo o grupo de nodos de usuario único

Para actualizar el usuario, mueve la VM a un nodo o grupo de nodos de usuario único específico desde otro nodo o grupo de nodos o desde un host multiusuario.

gcloud

  1. Detén la VM.

    gcloud compute instances stop VM_NAME
    

    Reemplaza VM_NAME por el nombre de la VM que debe detenerse.

  2. Actualiza el usuario mediante la especificación del grupo de nodos al que se moverá la VM.

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

    Reemplaza lo siguiente:

    • VM_NAME: Es el nombre de la VM que se moverá a un grupo de nodos específico.

    • NODE_GROUP_NAME: Es el nombre del grupo de nodos al que se moverá la VM.

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

  3. Inicia la VM.

    gcloud compute instances start VM_NAME
    

    Reemplaza VM_NAME por el nombre de la VM que debe iniciarse en el grupo de nodos que se especifica en el contenido de un archivo de etiquetas de afinidad.

REST

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

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto que contiene la VM que se detendrá.

    • ZONE: Es la zona que contiene el proyecto.

    • VM_NAME: Es el nombre de la VM que se detendrá.

  2. Actualiza el usuario mediante la especificación del grupo de nodos al que se 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"
          ]
        }
      ]
    }
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto que contiene la VM que se moverá.

    • ZONE: Es la zona que contiene el proyecto.

    • VM_NAME: Es el nombre de la VM que se moverá a un grupo de nodos específico.

    • NODE_GROUP_NAME: Es el nombre del grupo de nodos al que se moverá la VM.

    Como alternativa, puedes mover una VM a un nodo de usuario único mediante 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
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto que contiene la VM que se iniciará.

    • ZONE: Es la zona que contiene el proyecto.

    • VM_NAME: Es el nombre de la VM que se iniciará

Saca una VM de un nodo de usuario único

Si la VM ya no requiere hardware dedicado, por ejemplo, después de un evento que requería que tu VM estuviera aislada de otras VM, muévela de un nodo de usuario único a un host multiusuario.

gcloud

  1. Detén la VM.

    gcloud compute instances stop VM_NAME
    

    Reemplaza VM_NAME por el nombre de la VM que debe detenerse.

  2. Borra las afinidades del nodo de la VM para poder moverla a un host multiusuario.

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

    Reemplaza VM_NAME con el nombre de la VM de la cual quieres quitar las afinidades de nodo.

  3. Inicia la VM en un host multiusuario.

    gcloud compute instances start VM_NAME
    

    Reemplaza VM_NAME con el nombre de la VM de la que acabas de borrar las afinidades de nodo.

REST

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

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto que contiene la VM que se detendrá.

    • ZONE: Es la zona que contiene el proyecto.

    • VM_NAME: Es el nombre de la VM que se detendrá.

  2. Borra las afinidades del nodo de la VM para moverla a un host multiusuario.

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

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto que contiene la VM que se moverá.

    • ZONE: Es la zona que contiene el proyecto.

    • VM_NAME: Es el nombre de la VM desde la que se borrarán las afinidades del nodo.

  3. Inicia la VM en un host multiusuario. 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
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto que contiene la VM que se iniciará.

    • ZONE: Es la zona que contiene el proyecto.

    • VM_NAME: Es el nombre de la VM que se iniciará.

¿Qué sigue?