Atualizar a posse da VM


Esta página descreve como atualizar a posse de uma VM modificando as etiquetas de afinidade de nós da VM.

Por predefinição, o Compute Engine implementa VMs em anfitriões de vários inquilinos. Em anfitriões multi-inquilinos, as VMs partilham normalmente recursos do anfitrião com VMs de outros projetos e clientes. Quando move uma VM para um nó de inquilino único, o seu projeto tem acesso exclusivo e controlo total do hardware do nó de inquilino único. É o único inquilino nesse nó, pelo que as suas cargas de trabalho estão isoladas das cargas de trabalho de outros projetos e das respetivas VMs.

Ao modificar as etiquetas de afinidade de nós, pode mover uma VM das seguintes formas:

  • De um anfitrião multi-inquilino para um grupo de nós ou um nó de inquilino único
  • De um grupo de nós ou um nó de inquilino único para um anfitrião multiinquilino
  • De um nó de inquilino único para outro nó de inquilino único ou grupo de nós
  • De um grupo de nós de inquilino único para outro grupo de nós ou nó de inquilino único

Mover temporariamente cargas de trabalho para a posse exclusiva

Devido aos requisitos flutuantes das suas cargas de trabalho, como necessidades periódicas de isolamento adicional para examinar o desempenho ou alterações aos regulamentos de conformidade, pode ter de mover temporariamente cargas de trabalho específicas para nós de inquilino único. Em seguida, quando já não precisar da posse exclusiva, volte a implementar as suas VMs num anfitrião multiinquilino. Quando modifica a posse de uma VM, o Compute Engine preserva as configurações da VM.

Reequilibrar cargas de trabalho de inquilino único

Além de mover VMs para e a partir de grupos de nós e nós de inquilino único, pode mover VMs entre nós e grupos de nós, o que pode ajudar a consolidar nós e reequilibrar cargas de trabalho. A movimentação de uma VM requer um reinício. Por isso, planeie a movimentação de VMs com base nos requisitos de disponibilidade das suas cargas de trabalho.

Limitações

Antes de começar

  • Se ainda não o tiver feito, configure a autenticação. A autenticação valida a sua identidade para aceder a Google Cloud serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se no Compute Engine selecionando uma das seguintes opções:

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

    gcloud

    1. Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

    2. Set a default region and zone.

    REST

    Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.

      Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

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

Mover uma VM para a posse exclusiva

Atualize a posse movendo a VM para um grupo de nós ou um nó de inquilino único específico a partir de outro grupo de nós ou nó, ou de um anfitrião multi-inquilino.

gcloud

  1. Parar a VM.

    gcloud compute instances stop VM_NAME
    

    Substitua VM_NAME pelo nome da VM a parar.

  2. Atualize a posse especificando o grupo de nós para o qual quer mover a VM.

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

    Substitua o seguinte:

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

    • NODE_GROUP_NAME nome do grupo de nós para o qual mover a VM

    Em alternativa, pode mover uma VM para um nó de inquilino único através do nome do nó ou de uma etiqueta 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 a iniciar no grupo de nós especificado anteriormente pelos conteúdos de um ficheiro de etiqueta de afinidade.

REST

  1. Parar a VM. Para mais informações acerca deste 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 parar

    • Zona ZONE que contém o projeto

    • VM_NAME nome da VM a parar

  2. Atualize a posse especificando o grupo de nós para o qual quer mover a 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"
          ]
        }
      ]
    }
    

    Substitua o seguinte:

    • PROJECT_ID ID do projeto que contém a VM a mover

    • Zona ZONE que contém o projeto

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

    • NODE_GROUP_NAME nome do grupo de nós para o qual mover a VM

    Em alternativa, pode mover uma VM para um nó de inquilino único através do nome do nó ou de uma etiqueta de afinidade. Para mais informações, consulte o instances.setScheduling método.

  3. Inicie a VM. Para mais informações acerca deste 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 iniciar

    • Zona ZONE que contém o projeto

    • VM_NAME nome da VM a iniciar

Mover uma VM para fora da posse exclusiva

Se a sua VM já não precisar de hardware dedicado, por exemplo, após um evento que exigiu que a VM fosse isolada de outras VMs, mova a VM de um nó de inquilino único para um anfitrião de vários inquilinos.

gcloud

  1. Parar a VM.

    gcloud compute instances stop VM_NAME
    

    Substitua VM_NAME pelo nome da VM a parar.

  2. Limpe as afinidades de nós da VM para que possa movê-la para um anfitrião com vários inquilinos.

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

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

  3. Inicie a VM num anfitrião multiinquilino.

    gcloud compute instances start VM_NAME
    

    Substitua VM_NAME pelo nome da VM da qual limpou anteriormente as afinidades de nós.

REST

  1. Parar a VM. Para mais informações sobre este 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 parar

    • Zona ZONE que contém o projeto

    • VM_NAME nome da VM a parar

  2. Limpe as afinidades de nós da VM para a mover para um anfitrião com vários inquilinos.

    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 mover

    • Zona ZONE que contém o projeto

    • VM_NAME nome da VM a partir da qual limpar as afinidades de nós

  3. Inicie a VM num anfitrião multiinquilino. Para mais informações sobre este 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 iniciar

    • Zona ZONE que contém o projeto

    • VM_NAME nome da VM a iniciar

O que se segue?