Como atualizar a locação de VMs


Nesta página, descrevemos como atualizar a locação de uma VM modificando os rótulos de afinidade de nó da VM.

Por padrão, o Compute Engine implanta VMs em hosts de vários locatários. Em hosts multilocatários, as VMs normalmente compartilham recursos de host com VMs de outros projetos e clientes. Quando você move uma VM para um nó de locatário individual, o projeto passa a ter acesso exclusivo e controle total do hardware do nó de locatário individual. Você é o único locatário nesse nó. Portanto, suas cargas de trabalho ficam isoladas das cargas de trabalho de outros projetos e VMs.

Ao modificar rótulos de afinidade de nó, é possível mover uma VM das seguintes maneiras:

  • De um host multilocatário para um nó ou grupo de nós de locatário individual
  • De um nó ou grupo de nós de locatário individual para um host multilocatário
  • De um nó de locatário individual para outro nó ou grupo de nós de locatário individual
  • De um grupo de nós de locatário individual para outro grupo ou nó de locatário individual

Como mover cargas de trabalho temporariamente para locação única

Devido a flutuações nos requisitos das cargas de trabalho, como necessidades periódicas de isolamento extra para examinar o desempenho ou mudanças nos regulamentos de conformidade, talvez seja necessário mover temporariamente cargas de trabalho específicas para nós de locatário individual. Depois, quando você não precisar mais de uma locação individual, reimplante suas VMs em um host de vários locatários. Quando você modifica a locação de uma VM, o Compute Engine preserva as configurações da VM.

Como reequilibrar as cargas de trabalho de locatário individual

Além de mover VMs entre nós e grupos de nós de locatário individual, é possível mover VMs entre nós e grupos de nós, o que pode ajudar você a consolidar os nós e reequilibrar as cargas de trabalho. Mover uma VM requer uma reinicialização. Portanto, planeje mover as VMs com base nos requisitos de disponibilidade das suas cargas de trabalho.

Limitações

  • Quando você move uma VM que já está em execução em um nó de locatário individual, a VM pode ser reiniciada em outro nó. Se a locação única de uma VM for especificada pelo nome do grupo de nós ou com o rótulo de afinidade padrão node-group-name, a VM poderá ser reiniciada em qualquer nó do grupo de nós. Se a locação única da VM for especificada usando rótulos de afinidade personalizados (de afinidade ou antiafinidade), a VM poderá ser reiniciada em qualquer nó de qualquer grupo de nós da zona.

Antes de começar

  • Configure a autenticação, caso ainda não tenha feito isso. A autenticação é o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud. Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no Compute Engine da seguinte maneira.

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

    gcloud

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

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

      Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.

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

        gcloud init

      Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.

Como mover uma VM para locação única

Atualize a locação movendo a VM para um nó ou grupo de nós de locatário individual específico a partir de outro nó ou grupo de nós ou de um host multilocatário.

gcloud

  1. Pare a VM.

    gcloud compute instances stop VM_NAME
    

    Substitua VM_NAME pelo nome da VM a ser interrompida.

  2. Atualize a locação especificando o grupo de nós para onde a VM será movida.

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

    Substitua o seguinte:

    • VM_NAME: nome da VM a ser movida para um grupo de nós específico

    • NODE_GROUP_NAME: nome do grupo de nós para onde a VM será movida

    Como alternativa, é possível mover uma VM para um nó de locatário individual usando o nome do nó ou um rótulo de afinidade. Para mais informações, consulte o comando gcloud compute instances set-scheduling.

  3. Inicie a VM.

    gcloud compute instances start VM_NAME
    

    Substitua VM_NAME pelo nome da VM para iniciar no grupo de nós especificado anteriormente pelo conteúdo de um arquivo de rótulo de afinidade.

REST

  1. Pare a VM. Para mais informações sobre esse comando, consulte instances.stop.

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

    Substitua o seguinte:

    • PROJECT_ID: ID do projeto que contém a VM a ser interrompida

    • ZONE: zona que contém o projeto

    • VM_NAME: nome da VM a ser interrompida

  2. Atualize a locação especificando o grupo de nós para onde a VM será movida.

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

    Substitua o seguinte:

    • PROJECT_ID: ID do projeto que contém a VM a ser movida

    • ZONE: zona que contém o projeto

    • VM_NAME: nome da VM a ser movida para um grupo de nós específico

    • NODE_GROUP_NAME: nome do grupo de nós para onde a VM será movida

    Como alternativa, é possível mover uma VM para um nó de locatário individual usando o nome do nó ou um rótulo de afinidade. Para mais informações, consulte o método instances.setScheduling.

  3. Inicie a VM. Para mais informações sobre esse comando, consulte instances.start.

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

    Substitua o seguinte:

    • PROJECT_ID: ID do projeto que contém a VM a ser iniciada

    • ZONE: zona que contém o projeto

    • VM_NAME: nome da VM a ser iniciada

Como remover uma VM da locação individual

Se sua VM não exigir mais hardware dedicado (por exemplo, após um evento que exigia que sua VM fosse isolada de outras), mova a VM de um nó de locatário individual para um host de vários locatários.

gcloud

  1. Pare a VM.

    gcloud compute instances stop VM_NAME
    

    Substitua VM_NAME pelo nome da VM a ser interrompida.

  2. Limpe as afinidades de nó da VM a fim de movê-la para um host multilocatário.

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

    Substitua VM_NAME pelo nome da VM para a qual remover afinidades de nó.

  3. Inicie a VM em um host de vários locatários.

    gcloud compute instances start VM_NAME
    

    Substitua VM_NAME pelo nome da VM da qual você limpou anteriormente as afinidades do nó.

REST

  1. Pare a VM. Para mais informações sobre esse comando, consulte instances.stop.

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

    Substitua o seguinte:

    • PROJECT_ID: ID do projeto que contém a VM a ser interrompida

    • ZONE: zona que contém o projeto

    • VM_NAME: nome da VM a ser interrompida

  2. Limpe as afinidades de nó da VM a fim de movê-la para um host de vários locatários.

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

    Substitua o seguinte:

    • PROJECT_ID: ID do projeto que contém a VM a ser movida

    • ZONE: zona que contém o projeto

    • VM_NAME: nome da VM onde as afinidades de nó serão limpas

  3. Inicie a VM em um host de vários locatários. Para mais informações sobre esse comando, consulte instances.start.

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

    Substitua o seguinte:

    • PROJECT_ID: ID do projeto que contém a VM a ser iniciada

    • ZONE: zona que contém o projeto

    • VM_NAME: nome da VM a ser iniciada

A seguir