Provisionar VMs em nós de locatário individual


Esta página descreve como provisionar VMs em nós de locatário individual, que são servidores físicos que executam VMs somente de um único projeto. Antes de provisionar VMs em nós de locatário individual, leia a visão geral do nó de locatário individual .

O provisionamento de uma VM em um nó de locatário individual requer o seguinte:

  1. Criando um modelo de nó de locatário individual. O modelo de nó de locatário individual especifica propriedades uniformes para todos os nós de locatário individual em um grupo de nós de locatário individual.

  2. Criando um grupo de nós de locatário individual usando o modelo de nó de locatário individual criado anteriormente.

  3. Criação de VMs e provisionamento delas em um grupo de nós de locatário individual.

Antes de começar

  • Antes de provisionar VMs em um nó de locatário individual, verifique sua cota . Dependendo do número e do tamanho dos nós reservados, talvez seja necessário solicitar uma cota adicional .
  • Se ainda não o fez, configure a autenticação. Autenticação é o processo pelo qual sua identidade é verificada para acesso a Google Cloud serviços e APIs. Para executar códigos ou amostras em um ambiente de desenvolvimento local, você pode se autenticar no Compute Engine selecionando uma das seguintes opções:

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

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    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.

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

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

Criar um modelo de nó de locatário individual

Os modelos de nós de locatário individual são recursos regionais que especificam propriedades para grupos de nós de locatário individual. Você deve criar um modelo de nó antes de criar um grupo de nós. No entanto, se estiver usando o console do Google Cloud, você deverá criar modelos de nós durante a criação de um grupo de nós de locatário individual.

Console

Você deve criar um modelo de nó de locatário individual antes de criar um grupo de nós. Ao usar o console do Google Cloud, você precisa criar o modelo de nó durante a criação de um grupo de nós de locatário individual. O novo modelo de nó é criado na mesma região especificada nas propriedades do grupo de nós.

  1. No console do Google Cloud, acesse a página Nós de locatário individual .

    Acesse nós de locatário individual

  2. Clique em Criar grupo de nós .

  3. Especifique um Nome para o grupo de nós.

  4. Especifique uma região para criar o modelo de nó. Você pode usar o modelo de nó para criar grupos de nós em qualquer zona desta região.

  5. Especifique a Zona e clique em Continuar .

  6. Na lista Modelo de nó , clique em Criar modelo de nó para começar a criar um modelo de nó de locatário individual.

  7. Especifique um Nome para o modelo de nó.

  8. Especifique o tipo de nó para cada nó de locatário individual no grupo de nós a ser criado com base neste modelo de nó.

  9. Opcional: também é possível especificar as propriedades a seguir para o modelo de nó.

    • Adicione um SSD local e um acelerador GPU .
    • Selecione Habilitar superalocação de CPU para controlar os níveis de superalocação de CPU para cada VM agendada no nó.

    • Adicione rótulos de afinidade do nó . Os rótulos de afinidade permitem agrupar logicamente nós e grupos de nós e, posteriormente, ao provisionar VMs, você pode especificar rótulos de afinidade nas VMs para agendar VMs em um conjunto específico de nós ou grupos de nós. Para obter mais informações, consulte Afinidade e antiafinidade do nó .

  10. Clique em Criar para terminar de criar seu modelo de nó.

  11. Opcional: para incluir um novo modelo de nó de locatário individual em uma região diferente, repita as etapas anteriores.

Para visualizar os modelos de nós, clique em Modelos de nós na página Nós de locatário individual .

gcloud

Use o comando gcloud compute sole-tenancy node-templates create para criar um modelo de nó:

gcloud compute sole-tenancy node-templates create TEMPLATE_NAME \
  --node-type=NODE_TYPE \
  [--region=REGION \]
  [--node-affinity-labels=AFFINITY_LABELS \]
  [--accelerator type=GPU_TYPE,count=GPU_COUNT \]
  [--disk type=local-ssd,count=DISK_COUNT,size=DISK_SIZE \]
  [--cpu-overcommit-type=CPU_OVERCOMMIT_TYPE]

Substitua o seguinte:

  • TEMPLATE_NAME : o nome do novo modelo de nó.

  • NODE_TYPE : o tipo de nó para nós de locatário individual criados com base neste modelo. Use o comando gcloud compute sole-tenancy node-types list para obter uma lista dos tipos de nós disponíveis em cada zona.

  • REGION : a região na qual criar o modelo de nó. Você pode usar este modelo para criar grupos de nós em qualquer zona desta região.

  • AFFINITY_LABELS : as chaves e valores, [KEY=VALUE,...] , para rótulos de afinidade. Os rótulos de afinidade permitem agrupar logicamente nós e grupos de nós e, posteriormente, ao provisionar VMs, você pode especificar rótulos de afinidade nas VMs para agendar VMs em um conjunto específico de nós ou grupos de nós. Para obter mais informações, consulte Afinidade e antiafinidade do nó .

  • GPU_TYPE : o tipo de GPU para cada nó de locatário individual criado com base neste modelo de nó. Para obter informações sobre a disponibilidade zonal de GPUs, use o comando gcloud compute accelerator-types list e escolha uma zona onde o tipo de nó de locatário individual n1 ou g2 esteja disponível. Dependendo da disponibilidade zonal, defina como um dos seguintes:

    • nvidia-l4
    • nvidia-tesla-p100
    • nvidia-tesla-p4
    • nvidia-tesla-t4
    • nvidia-tesla-v100
  • GPU_COUNT : o número de GPUs a serem especificadas dependendo do tipo de GPU. Defina com o valor especificado para o tipo de GPU conforme mostrado na tabela a seguir:

    GPU_TYPE GPU_COUNT
    nvidia-l4 8
    nvidia-tesla-p100 4
    nvidia-tesla-p4 4
    nvidia-tesla-t4 4
    nvidia-tesla-v100 8
  • DISK_COUNT : número de discos SSD. Defina como 16 ou 24 .

  • DISK_SIZE : valor opcional para o tamanho da partição do SSD local em GB. O único tamanho de partição suportado é 375 e, se você não definir esse valor, o padrão será 375 .

  • CPU_OVERCOMMIT_TYPE : o tipo de overcommit para CPUs em uma VM. Defina como enabled ou none .

DESCANSAR

Use o método nodeTemplates.insert para criar um modelo de nó:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/nodeTemplates

{
  "name": "TEMPLATE_NAME",
  "nodeType": "NODE_TYPE",
  "nodeAffinityLabels": {
    "KEY": "VALUE",
    ...
  },
  "accelerators": [
    {
      "acceleratorType": "GPU_TYPE",
      "acceleratorCount": GPU_COUNT
    }
  ],
  "disks": [
    {
      "diskType": "local-ssd",
      "diskSizeGb": DISK_SIZE,
      "diskCount": DISK_COUNT
    }
  ],
  "cpuOvercommitType": CPU_OVERCOMMIT_TYPE
}

Substitua o seguinte:

  • PROJECT_ID : o ID do projeto.

  • REGION : a região na qual criar o modelo de nó. Você pode usar este modelo para criar grupos de nós em qualquer zona desta região.

  • TEMPLATE_NAME : o nome do novo modelo de nó.

  • NODE_TYPE : o tipo de nó para nós de locatário individual criados com base neste modelo. Use o método nodeTypes.list para obter uma lista dos tipos de nós disponíveis em cada zona.

  • KEY : o valor nodeAffinityLabels que especifica a parte chave de um rótulo de afinidade de nó expresso como um par chave-valor. Os rótulos de afinidade permitem agrupar logicamente nós e grupos de nós e, posteriormente, ao provisionar VMs, você pode especificar rótulos de afinidade nas VMs para agendar VMs em um conjunto específico de nós ou grupos de nós. Para obter mais informações, consulte Afinidade e antiafinidade do nó .

  • VALUE : o valor nodeAffinityLabels que especifica a parte do valor de um par chave-valor do rótulo de afinidade do nó.

  • GPU_TYPE : o tipo de GPU para cada nó de locatário individual criado com base neste modelo de nó. Para obter informações sobre a disponibilidade zonal de GPUs, use o comando gcloud compute accelerator-types list e escolha uma zona onde o tipo de nó de locatário individual n1 ou g2 esteja disponível. Dependendo da disponibilidade zonal, defina como um dos seguintes:

    • nvidia-l4
    • nvidia-tesla-p100
    • nvidia-tesla-p4
    • nvidia-tesla-t4
    • nvidia-tesla-v100
  • GPU_COUNT : o número de GPUs para cada nó de locatário individual criado com base neste modelo de nó. Defina com o valor especificado para o tipo de GPU conforme mostrado na tabela a seguir:

    GPU_TYPE GPU_COUNT
    nvidia-l4 8
    nvidia-tesla-p100 4
    nvidia-tesla-p4 4
    nvidia-tesla-t4 4
    nvidia-tesla-v100 8
  • DISK_SIZE : valor opcional para o tamanho da partição do SSD local em GB. O único tamanho de partição suportado é 375 e, se você não definir esse valor, o padrão será 375 .

  • DISK_COUNT : número de discos SSD. Defina como 16 ou 24 .

  • CPU_OVERCOMMIT_TYPE : tipo de overcommit da CPU. Defina como enabled , none ou CPU_OVERCOMMIT_TYPE_UNSPECIFIED .

Criar um grupo de nós de locatário individual

Com o modelo de nó de locatário individual criado anteriormente, crie um grupo de nós de locatário individual. Um grupo de nós de locatário individual herda propriedades especificadas pelo modelo de nó de locatário individual e possui valores adicionais que devem ser especificados.

Console

  1. No console do Google Cloud, acesse a página Nós de locatário individual .

    Acesse nós de locatário individual

  2. Clique em Criar grupo de nós para começar a criar um grupo de nós.

  3. Especifique um Nome para o grupo de nós.

  4. Especifique a região do grupo de nós para exibir os modelos de nós disponíveis nessa região.

  5. Especifique a zona na região na qual criar o grupo de nós.

  6. Especifique o modelo de nó para criar o grupo de nós ou clique em Criar modelo de nó para criar um novo modelo de nó de locatário individual . O modelo de nó selecionado é aplicado ao grupo de nós.

  7. Escolha uma das seguintes opções para o modo de escalonamento automático do escalonador automático do grupo de nós :

    • Desativado : gerencie manualmente o tamanho do grupo de nós.

    • Ativado : adiciona ou remove nós automaticamente do grupo de nós.

    • Escalabilidade horizontal somente : adicione nós ao grupo de nós quando for necessária capacidade extra.

  8. Especifique o número de nós do grupo. Se você ativar o escalonador automático do grupo de nós , especifique um intervalo para o tamanho do grupo de nós. Você pode alterar manualmente os valores posteriormente.

  9. Configure a política de manutenção do grupo de nós de locatário individual na seção Definir configurações de manutenção para um dos valores a seguir. A política de manutenção permite configurar o comportamento das VMs no grupo de nós durante eventos de manutenção do host. Para obter mais informações, consulte Políticas de manutenção .

    • Padrão
    • Reinicie no lugar
    • Migrar dentro do grupo de nós
  10. Você pode escolher entre janelas de manutenção regulares e controle de manutenção avançado para lidar com a manutenção do seu grupo de nós de locatário individual, da seguinte forma:

    • Janela de manutenção: selecione o período durante o qual você deseja que os eventos de manutenção planejados ocorram para os nós nos grupos de nós de locatário individual.

    • Opte pelo controle de manutenção avançado para locatário individual: o controle de manutenção avançado para locatário individual permite controlar eventos de manutenção planejados para grupos de nós de locatário individual e minimizar interrupções relacionadas à manutenção. Para ativar o controle de manutenção avançado, clique no botão Ativar o controle de manutenção avançado para locatário individual para a posição ativada . Se você optar por utilizar esta opção para manutenção do nó, o campo da janela Manutenção será desabilitado e a manutenção ocorrerá conforme configurado no controle de manutenção avançado.

    Observe que o controle de manutenção avançado oferece suporte apenas à política de manutenção padrão .

  11. Defina as configurações de compartilhamento especificando um dos seguintes itens em Definir configurações de compartilhamento :

    • Para compartilhar o grupo de nós com todos os projetos da sua organização, escolha Compartilhar este grupo de nós com todos os projetos da organização .
    • Para compartilhar o grupo de nós com projetos específicos na sua organização, escolha Compartilhar este grupo de nós com projetos selecionados na organização .

    Se não quiser compartilhar o grupo de nós, escolha Não compartilhar este grupo de nós com outros projetos . Para obter mais informações sobre o compartilhamento de grupos de nós, consulte Compartilhar grupos de nós de locatário individual .

  12. Clique em Criar para concluir a criação do grupo de nós.

gcloud

Execute o comando gcloud compute sole-tenancy node-groups create para criar um grupo de nós com base em um modelo de nó criado anteriormente:

gcloud compute sole-tenancy node-groups create GROUP_NAME \
  --node-template=TEMPLATE_NAME \
  --target-size=TARGET_SIZE \
  [--zone=ZONE \]
  [--maintenance-policy=MAINTENANCE_POLICY \]
  [--maintenance-window-start-time=START_TIME \]
  [--autoscaler-mode=AUTOSCALER_MODE: \
  --min-nodes=MIN_NODES \
  --max-nodes=MAX_NODES]

Substitua o seguinte:

  • GROUP_NAME : o nome do novo grupo de nós.

  • TEMPLATE_NAME : o nome do modelo de nó a ser usado para criar este grupo.

  • TARGET_SIZE : o número de nós a serem criados no grupo.

  • ZONE : a zona na qual criar o grupo de nós. Esta deve ser a mesma região que o modelo de nó no qual você está baseando o grupo de nós.

  • MAINTENANCE_POLICY : a política de manutenção do grupo de nós. Para obter mais informações, consulte Políticas de manutenção . Este deve ser um dos seguintes valores:

    • default
    • restart-in-place
    • migrate-within-node-group

    Como alternativa, você pode optar pelo controle de manutenção avançado para o grupo de nós de locatário individual, usando o sinalizador --maintenance-interval . Para obter mais informações, consulte Habilitar o controle de manutenção avançado em um nó de locatário individual .

  • START_TIME : o horário de início em GMT da janela de manutenção das VMs neste grupo de nós. Defina como um dos seguintes: 00:00 , 04:00 , 08:00 , 12:00 , 16:00 ou 20:00 . Se não for definido, o grupo de nós não terá uma janela de manutenção definida.

  • AUTOSCALER_MODE : a política do escalonador automático para o grupo de nós. Este deve ser um dos seguintes:

    • off : gerencia manualmente o tamanho do grupo de nós.

    • on : adiciona ou remove nós automaticamente do grupo de nós.

    • only-scale-out : adicione nós ao grupo de nós quando for necessária capacidade extra.

  • MIN_NODES : o tamanho mínimo do grupo de nós. O valor padrão é 0 e deve ser um valor inteiro menor ou igual a MAX_NODES .

  • MAX_NODES : o tamanho máximo do grupo de nós. Deve ser menor ou igual a 100 e maior ou igual a MIN_NODES . Obrigatório se AUTOSCALER_MODE não estiver off .

DESCANSAR

Use o método nodeGroups.insert para criar um grupo de nós com base em um modelo de nó criado anteriormente:

POST https://compute.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, "maintenanceWindow": { "startTime": "START_TIME" } "autoscalingPolicy": { "mode": AUTOSCALER_MODE, "minNodes": MIN_NODES, "maxNodes": MAX_NODES }, }

Substitua o seguinte:

  • PROJECT_ID : o ID do projeto.

  • ZONE : a zona na qual criar o grupo de nós. Deve estar na mesma região que o modelo de nó no qual você está baseando o grupo de nós.

  • TARGET_SIZE : o número de nós a serem criados no grupo.

  • REGION : a região na qual criar o grupo de nós. Você deve ter um modelo de nó na região selecionada.

  • TEMPLATE_NAME : o nome do modelo de nó a ser usado para criar este grupo.

  • GROUP_NAME : o nome do novo grupo de nós.

  • MAINTENANCE_POLICY : a política de manutenção do grupo de nós. Este deve ser um dos seguintes valores:

    • DEFAULT
    • RESTART_IN_PLACE
    • MIGRATE_WITHIN_NODE_GROUP

    Como alternativa, você pode optar pelo controle de manutenção avançado para o grupo de nós de locatário individual, usando o campo maintenanceInterval . Para obter mais informações, consulte Habilitar o controle de manutenção avançado em um nó de locatário individual .

  • START_TIME : o horário de início em GMT da janela de manutenção das VMs neste grupo de nós. Defina como um dos seguintes: 00:00 , 04:00 , 08:00 , 12:00 , 16:00 ou 20:00 . Se não for definido, o grupo de nós não terá uma janela de manutenção definida.

  • AUTOSCALER_MODE : a política do escalonador automático para o grupo de nós. Este deve ser um dos seguintes valores:

    • OFF : gerencia manualmente o tamanho do grupo de nós.

    • ON : adiciona ou remove nós automaticamente do grupo de nós.

    • ONLY_SCALE_OUT : adiciona nós ao grupo de nós quando capacidade extra é necessária.

  • MIN_NODES : o tamanho mínimo do grupo de nós. O padrão é 0 e deve ser um valor inteiro menor ou igual a MAX_NODES .

  • MAX_NODES : o tamanho máximo do grupo de nós. Deve ser menor ou igual a 100 e maior ou igual a MIN_NODES . Obrigatório se AUTOSCALER_MODE não estiver definido como OFF .

Provisionar uma VM de locatário individual

Depois de criar um grupo de nós com base em um modelo de nó criado anteriormente, você poderá provisionar VMs individuais em um grupo de nós de locatário individual.

Para provisionar uma VM em um nó ou grupo de nós específico que tenha rótulos de afinidade que correspondam aos atribuídos anteriormente ao modelo de nó, siga o procedimento padrão para criar uma instância de VM e atribua rótulos de afinidade à VM.

Ou você pode usar o procedimento a seguir para provisionar uma VM em um nó de locatário individual na página de detalhes do grupo de nós. Com base no grupo de nós em que você provisiona VMs, o Compute Engine atribui rótulos de afinidade .

Console

  1. No console do Google Cloud, acesse a página Nós de locatário individual .

    Acesse nós de locatário individual

  2. Clique em Grupos de nós .

  3. Clique no nome do grupo de nós para provisionar uma instância de VM e, opcionalmente, para provisionar uma VM em um nó de locatário individual específico, clique no nome do nó de locatário individual específico para provisionar a VM.

  4. Clique em Criar instância para provisionar uma instância de VM neste grupo de nós, anote os valores aplicados automaticamente para Name , Region e Zone e modifique esses valores conforme necessário.

  5. Selecione uma configuração de máquina especificando a família da máquina , a série e o tipo de máquina . Escolha a Série que corresponde ao tipo de nó de locatário individual .

  6. Modifique o disco de inicialização , o Firewall e outras configurações conforme necessário.

  7. Clique em Locação individual , observe os rótulos de afinidade do nó atribuídos automaticamente e use Procurar para ajustar conforme necessário.

  8. Clique em Gerenciamento e, em Manutenção do host , escolha uma das seguintes opções:

    • Migrar instância de VM (recomendado) : VM migrada para outro nó no grupo de nós durante eventos de manutenção.

    • Encerrar : VM interrompida durante eventos de manutenção.

  9. Escolha uma das seguintes opções para reinicialização automática :

    • Ativado (recomendado) : reinicia automaticamente as VMs se elas forem interrompidas para eventos de manutenção.

    • Desligado : não reinicia automaticamente as VMs após um evento de manutenção.

  10. Clique em Criar para concluir a criação da VM de locatário individual.

gcloud

Use o comando gcloud compute instances create para provisionar uma VM em um grupo de nós de locatário individual:

gcloud compute instances create VM_NAME \
  [--zone=ZONE \]
  --image-family=IMAGE_FAMILY \
  --image-project=IMAGE_PROJECT \
  --node-group=GROUP_NAME \
  --machine-type=MACHINE_TYPE \
  [--maintenance-policy=MAINTENANCE_POLICY \]
  [--accelerator type=GPU_TYPE,count=GPU_COUNT \]
  [--local-ssd interface=SSD_INTERFACE \]
  [--restart-on-failure]

O sinalizador --restart-on-failure indica se as VMs de locatário individual são reiniciadas após a parada. Este sinalizador está habilitado por padrão. Use --no-restart-on-failure para desativar.

Substitua o seguinte:

  • VM_NAME : o nome da nova VM de locatário individual.

  • ZONE : a zona para provisionar a VM de locatário individual.

  • IMAGE_FAMILY : a família de imagens da imagem a ser usada para criar a VM.

  • IMAGE_PROJECT : o projeto de imagem da família de imagens.

  • GROUP_NAME : o nome do grupo de nós no qual provisionar a VM.

  • MACHINE_TYPE : o tipo de máquina da VM de locatário individual. Use o comando gcloud compute machine-types list para obter uma lista de tipos de máquinas disponíveis para o projeto.

  • MAINTENANCE_POLICY : especifica o comportamento de reinicialização de VMs de locatário individual durante eventos de manutenção. Defina como um dos seguintes:

    • MIGRATE : VM migrou para outro nó no grupo de nós durante eventos de manutenção.

    • TERMINATE : VM interrompida durante eventos de manutenção.

  • GPU_TYPE : tipo de GPU. Defina como um dos tipos de acelerador especificados quando o modelo de nó foi criado.

  • GPU_COUNT : número de GPUs do total especificado pelo modelo de nó para anexar a esta VM. O valor padrão é 1 .

  • SSD_INTERFACE : tipo de interface SSD local. Você só pode definir isso para instâncias criadas a partir de um modelo de nó com suporte a SSD local. Se você especificar isso ao criar a instância e o modelo de nó não suportar SSD local, a criação da instância falhará. Defina como nvme se os drivers de imagem do disco de inicialização estiverem otimizados para NVMe, caso contrário, defina como scsi . Especifique esse sinalizador e um valor correspondente uma vez para cada partição SSD local.

DESCANSAR

Use o método instances.insert para provisionar uma VM em um grupo de nós de locatário individual:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/VM_ZONE/instances
{ "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "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" } ], "guestAccelerators": [ { "acceleratorType": GPU_TYPE, "acceleratorCount": GPU_COUNT } ], "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY" } }, { "type":"SCRATCH", "initializeParams":{ "diskType":"zones/LOCAL_SSD_ZONE/diskTypes/local-ssd" }, "autoDelete":true, "interface":"SSD_INTERFACE" } ] }

Substitua o seguinte:

  • PROJECT_ID : o ID do projeto.

  • VM_ZONE : a zona para provisionar a VM de locatário individual.

  • MACHINE_TYPE_ZONE : a zona do tipo de máquina.

  • MACHINE_TYPE : o tipo de máquina da VM de locatário individual. Use o método machineTypes.list para obter uma lista dos tipos de máquinas disponíveis para o projeto.

  • VM_NAME : o nome da nova VM de locatário individual.

  • MAINTENANCE_POLICY : especifica o comportamento de reinicialização de VMs de locatário individual durante eventos de manutenção. Defina como um dos seguintes:

    • MIGRATE : VM migrou para outro nó no grupo de nós durante eventos de manutenção.

    • TERMINATE : VM interrompida durante eventos de manutenção.

  • RESTART_ON_FAILURE : indica se as VMs de locatário individual são reiniciadas após a parada. O padrão é true .

  • GROUP_NAME : o nome do grupo de nós no qual provisionar a VM.

  • NETWORK : o URL do recurso de rede para esta VM.

  • REGION : a região que contém a sub-rede desta VM.

  • SUBNETWORK : o URL do recurso de sub-rede para esta VM.

  • GPU_TYPE : o tipo de GPU. Defina como um dos tipos de acelerador especificados quando o modelo de nó foi criado.

  • GPU_COUNT : o número de GPUs do total especificado pelo modelo de nó para anexar a esta VM. O valor padrão é 1 .

  • IMAGE_PROJECT : projeto de imagem da família de imagens.

  • IMAGE_FAMILY : família de imagens da imagem a ser usada para criar a VM.

  • LOCAL_SSD_ZONE : a zona do SSD local.

  • SSD_INTERFACE : o tipo de interface SSD local. Defina como NVME se os drivers de imagem do disco de inicialização estiverem otimizados para NVMe; caso contrário, defina como SCSI .

Provisionar um grupo de VMs de locatário individual

Os grupos de instâncias gerenciadas (MIGs) permitem provisionar um grupo de VMs de locatário individual idênticas. Os rótulos de afinidade permitem especificar o nó ou grupo de nós de locatário individual no qual provisionar o grupo de VMs de locatário individual.

Para MIGs regionais, você deve criar grupos de nós em cada uma das zonas do MIG regional e especificar afinidades de nós para esses grupos de nós no modelo de instância do MIG regional.

gcloud

  1. Use o comando gcloud compute instance-templates create para criar um modelo de grupo de instâncias gerenciadas para um grupo de VMs criar em um grupo de nós de locatário individual:

    gcloud compute instance-templates create INSTANCE_TEMPLATE \
      --machine-type=MACHINE_TYPE \
      --image-project=IMAGE_PROJECT \
      --image-family=IMAGE_FAMILY \
      --node-group=GROUP_NAME \
      [--accelerator type=GPU_TYPE,count=GPU_COUNT \]
      [--local-ssd interface=SSD_INTERFACE]
    

    Substitua o seguinte:

    • INSTANCE_TEMPLATE : o nome do novo modelo de instância.

    • MACHINE_TYPE : o tipo de máquina da VM de locatário individual. Use o comando gcloud compute machine-types list para obter uma lista de tipos de máquinas disponíveis para o projeto.

    • IMAGE_PROJECT : o projeto de imagem da família de imagens.

    • IMAGE_FAMILY : a família de imagens da imagem a ser usada para criar a VM.

    • GROUP_NAME : o nome do grupo de nós no qual provisionar a VM. Como alternativa, se desejar usar esse modelo de instância para criar um MIG regional que exista em mais de uma zona, use o sinalizador --node-affinity-file para especificar uma lista de valores para os grupos de nós do MIG regional.

    • GPU_TYPE : tipo de GPU. Defina como um dos tipos de acelerador especificados quando o modelo de nó foi criado.

    • GPU_COUNT : número de GPUs do total especificado pelo modelo de nó para anexar a esta VM. O valor padrão é 1 .

    • SSD_INTERFACE : tipo de interface SSD local. Defina como nvme se os drivers de imagem do disco de inicialização estiverem otimizados para NVMe, caso contrário, defina como scsi . Especifique esse sinalizador e um valor correspondente uma vez para cada partição SSD local.

  2. Use o comando gcloud compute instance-groups managed create para criar um grupo de instâncias gerenciadas em seu grupo de nós de locatário individual:

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
      --size=SIZE \
      --template=INSTANCE_TEMPLATE \
      --zone=ZONE
    

    Substitua o seguinte:

    • INSTANCE_GROUP_NAME : o nome deste grupo de instâncias.

    • SIZE : o número de VMs a serem incluídas neste grupo de instâncias. Seu grupo de nós deve ter recursos suficientes para acomodar as instâncias nesse grupo gerenciado de instâncias. Use o escalonador automático de grupos de instâncias gerenciadas para gerenciar automaticamente o tamanho dos grupos de instâncias gerenciadas.

    • INSTANCE_TEMPLATE : o nome do modelo de instância a ser usado para criar este MIG. O modelo deve ter um ou mais rótulos de afinidade de nó apontando para os grupos de nós apropriados.

    • ZONE : a zona na qual criar o grupo de instâncias gerenciadas. Para um MIG regional, substitua o sinalizador --zone pelo sinalizador --region e especifique uma região; adicione também o sinalizador --zones para especificar todas as zonas onde existem grupos de nós.

DESCANSAR

  1. Use o método instanceTemplates.insert para criar um modelo de grupo de instâncias gerenciadas em seu grupo de nós de locatário individual:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/TEMPLATE_ZONE/instance-templates
    { "name": "INSTANCE_TEMPLATE", "properties": { "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "scheduling": { "nodeAffinities": [ { "key": "compute.googleapis.com/node-group-name", "operator": "IN", "values": [ "GROUP_NAME" ] } ] }, "networkInterfaces": [ { "network": "global/networks/NETWORK", "subnetwork": "regions/REGION/subnetworks/SUBNETWORK" } ], "guestAccelerators": [ { "acceleratorType": GPU_TYPE, "acceleratorCount": GPU_COUNT } ], "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY" } }, { "type":"SCRATCH", "initializeParams":{ "diskType":"zones/LOCAL_SSD_ZONE/diskTypes/local-ssd" }, "autoDelete":true, "interface":"SSD_INTERFACE" } ] } }

    Substitua o seguinte:

    • PROJECT_ID : o ID do projeto.

    • TEMPLATE_ZONE : a zona na qual criar o modelo de instância.

    • INSTANCE_TEMPLATE : o nome do novo modelo de instância.

    • MACHINE_TYPE_ZONE : a zona do tipo de máquina.

    • MACHINE_TYPE : o tipo de máquina da VM de locatário individual. Use o método machineTypes.list para obter uma lista dos tipos de máquinas disponíveis para o projeto.

    • GROUP_NAME : nome do grupo de nós no qual provisionar a VM. Se desejar usar esse modelo de instância para criar um MIG regional que exista em mais de uma zona, especifique uma lista de grupos de nós que existem nas mesmas zonas que as zonas do MIG regional.

    • NETWORK : o URL do recurso de rede para este modelo de instância.

    • REGION : a região que contém a sub-rede para este modelo de instância.

    • SUBNETWORK : o URL do recurso de sub-rede para este modelo de instância.

    • GPU_TYPE : o tipo de GPU. Defina como um dos tipos de acelerador especificados quando o modelo de nó foi criado.

    • GPU_COUNT : o número de GPUs do total especificado pelo modelo de nó para anexar a esta VM. O valor padrão é 1 .

    • IMAGE_PROJECT : o projeto de imagem da família de imagens.

    • IMAGE_FAMILY : a família de imagens da imagem a ser usada para criar a VM.

    • LOCAL_SSD_ZONE : a zona do SSD local.

    • SSD_INTERFACE : o tipo de interface SSD local. Defina como NVME se os drivers de imagem do disco de inicialização estiverem otimizados para NVMe; caso contrário, defina como SCSI .

  2. Use o método instanceGroupManagers.insert para criar um MIG em seu grupo de nós de locatário individual com base no modelo de instância criado anteriormente. Ou, se desejar criar um MIG regional, use o método regionInstanceGroupManagers.insert e especifique a região e as zonas de todos os grupos de nós conforme especificado no modelo de instância.

    Por exemplo, para criar um MIG zonal, use a seguinte solicitação:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
    {
      "baseInstanceName": "NAME_PREFIX",
      "name": "INSTANCE_GROUP_NAME",
      "targetSize": SIZE,
      "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE"
    }
    

    Substitua o seguinte:

    • PROJECT_ID : o ID do projeto.

    • ZONE : a zona na qual criar o grupo de instâncias gerenciadas.

    • NAME_PREFIX : o nome do prefixo de cada uma das instâncias no grupo de instâncias gerenciadas.

    • INSTANCE_GROUP_NAME : o nome do grupo de instâncias.

    • SIZE : o número de VMs a serem incluídas neste grupo de instâncias. Seu grupo de nós deve ter recursos suficientes para acomodar as instâncias nesse grupo gerenciado de instâncias. Use o escalonador automático de grupos de instâncias gerenciadas para gerenciar automaticamente o tamanho dos grupos de instâncias gerenciadas.

    • INSTANCE_TEMPLATE : a URL do modelo de instância a ser usado para criar este grupo. O modelo deve ter um rótulo de afinidade de nó apontando para o grupo de nós apropriado.

Configurar rótulos de afinidade de nó

Os rótulos de afinidade de nós permitem agrupar logicamente grupos de nós e agendar VMs em um conjunto específico de grupos de nós. Você também pode usar rótulos de afinidade de nó para agendar VMs em grupos de nós em zonas diferentes e ainda manter os grupos de nós em um grupo lógico. O procedimento a seguir é um exemplo de uso de rótulos de afinidade para associar VMs a um grupo de nós específico usado para cargas de trabalho de produção. Este exemplo mostra como programar uma única VM, mas você também pode usar grupos de instâncias gerenciadas para programar um grupo de VMs.

gcloud

  1. Use o comando gcloud compute sole-tenancy node-templates create para criar um modelo de nó com um conjunto de rótulos de afinidade para uma carga de trabalho de produção:

    gcloud compute sole-tenancy node-templates create prod-template \
      --node-type=n1-node-96-624 \
      --node-affinity-labels workload=frontend,environment=prod
    
  2. Use o comando gcloud compute sole-tenancy node-templates describe para visualizar os rótulos de afinidade do nó atribuídos ao modelo de nó.

  3. Use o comando gcloud compute sole-tenancy node-groups create para criar um grupo de nós que use o modelo de produção:

    gcloud compute sole-tenancy node-groups create prod-group \
      --node-template=prod-template \
      --target-size=1
    
  4. Para suas VMs de produção, crie um arquivo node-affinity-prod.json para especificar a afinidade de suas VMs de produção. Por exemplo, você pode criar um arquivo que especifique que as VMs sejam executadas apenas em nós com as afinidades workload=frontend e environment=prod . Crie o arquivo de afinidade do nó usando o Cloud Shell ou crie-o em um local de sua preferência.

    [
      {
        "key" : "workload",
        "operator" : "IN",
        "values" : ["frontend"]
      },
      {
        "key" : "environment",
        "operator" : "IN",
        "values" : ["prod"]
      }
    ]
    
  5. Use o arquivo node-affinity-prod.json com o comando gcloud compute instances create para agendar uma VM no grupo de nós com rótulos de afinidade correspondentes.

    gcloud compute instances create prod-vm \
      --node-affinity-file node-affinity-prod.json \
      --machine-type=n1-standard-2
    
  6. Use o comando gcloud compute instances describe e verifique o campo scheduling para visualizar as afinidades de nó atribuídas à VM.

Configurar rótulos antiafinidade de nó

Os rótulos de afinidade de nó podem ser configurados como rótulos antiafinidade para evitar que VMs sejam executadas em nós específicos. Por exemplo, você pode usar rótulos antiafinidade para evitar que as VMs que você está usando para fins de desenvolvimento sejam agendadas nos mesmos nós que sua VM de produção. O exemplo a seguir mostra como usar rótulos de afinidade para evitar que VMs sejam executadas em grupos de nós específicos. Este exemplo mostra como programar uma única VM, mas você também pode usar grupos de instâncias gerenciadas para programar um grupo de VMs.

gcloud

  1. Para VMs de desenvolvimento, especifique a afinidade das VMs de desenvolvimento criando um node-affinity-dev.json com o Cloud Shell ou em um local de sua escolha. Por exemplo, crie um arquivo que configure VMs para execução em qualquer grupo de nós com a afinidade workload=frontend desde que não seja environment=prod :

    [
      {
        "key" : "workload",
        "operator" : "IN",
        "values" : ["frontend"]
      },
      {
        "key" : "environment",
        "operator" : "NOT_IN",
        "values" : ["prod"]
      }
    ]
    
  2. Use o arquivo node-affinity-dev.json com o comando gcloud compute instances create para criar a VM de desenvolvimento:

    gcloud compute instances create dev-vm \
      --node-affinity-file=node-affinity-dev.json \
      --machine-type=n1-standard-2
    
  3. Use o comando gcloud compute instances describe e verifique o campo scheduling para visualizar as antiafinidades do nó atribuídas à VM.

Excluir um grupo de nós

Se você precisar excluir um grupo de nós de locatário individual, primeiro remova todas as VMs do grupo de nós.

Console

  1. Acesse a página Nós de locatário individual .

    Acesse nós de locatário individual

  2. Clique no nome do grupo de nós a ser excluído.

  3. Para cada nó no grupo de nós, clique no nome do nó e exclua instâncias de VM individuais na página de detalhes do nó ou siga o procedimento padrão para excluir uma VM individual . Para excluir VMs em um grupo de instâncias gerenciadas, exclua o grupo de instâncias gerenciadas .

  4. Depois de excluir todas as instâncias de VM em execução em todos os nós do grupo de nós, retorne à página Nós de locatário individual .

    Acesse nós de locatário individual

  5. Clique em Grupos de nós .

  6. Selecione o nome do grupo de nós que você precisa excluir.

  7. Clique em Excluir .

gcloud

  1. Liste as instâncias de VM em execução nos nós do grupo de nós usando o comando gcloud compute sole-tenancy node-groups list-nodes :

    gcloud compute sole-tenancy node-groups list-nodes GROUP_NAME \
      --zone=ZONE

    Substitua o seguinte:

    • GROUP_NAME : nome do grupo de nós

    • ZONE : zona do grupo de nós

  2. Se houver VMs em execução no grupo de nós, siga o procedimento para excluir uma VM individual ou o procedimento para excluir um grupo de instâncias gerenciadas .

  3. Depois de excluir todas as VMs em execução em todos os nós do grupo de nós, exclua o grupo de nós usando o comando gcloud compute sole-tenancy node-groups delete :

    gcloud compute sole-tenancy node-groups delete GROUP_NAME \
        --zone=ZONE

    Substitua o seguinte:

    • GROUP_NAME : o nome do grupo de nós

    • ZONE : a zona do grupo de nós

DESCANSAR

  1. Liste instâncias de VM em execução em nós do grupo de nós usando o método nodeGroups.listNodes :

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/nodeGroups/GROUP_NAME/listNodes

    Substitua o seguinte:

    • PROJECT_ID : o ID do projeto

    • ZONE : a zona do grupo de nós

    • GROUP_NAME : o grupo para o qual listar as VMs

  2. Se houver VMs em execução no grupo de nós, siga o procedimento para excluir uma VM individual ou o procedimento para excluir um grupo de instâncias gerenciadas .

  3. Depois de excluir todas as VMs em execução em todos os nós do grupo de nós, exclua o grupo de nós usando o método nodeGroups.delete :

    DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/nodeGroups/GROUP_NAME
    

    Substitua o seguinte:

    • PROJECT_ID : o ID do projeto

    • ZONE : a zona do grupo de nós

    • GROUP_NAME : o nome do grupo de nós a ser excluído

Excluir um modelo de nó

Você pode excluir um modelo de nó depois de excluir todos os grupos de nós que estão usando o modelo.

Console

  1. No console do Google Cloud, acesse a página Nós de locatário individual .

    Acesse nós de locatário individual

  2. Clique em Modelos de nós .

  3. Selecione o nome de um modelo de nó não utilizado.

  4. Clique em Excluir .

gcloud

Use o comando gcloud compute sole-tenancy node-templates delete para excluir um modelo de nó não utilizado:

gcloud compute sole-tenancy node-templates delete TEMPLATE_NAME \
  --region=REGION

Substitua o seguinte:

  • TEMPLATE_NAME : o nome do modelo de nó a ser excluído

  • REGION : a região do modelo de nó

DESCANSAR

Use o método compute.nodeTemplates.delete para excluir um modelo de nó não utilizado:

 DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/nodeTemplates/TEMPLATE_NAME
 

Substitua o seguinte:

  • PROJECT_ID : o ID do seu projeto

  • REGION : a Google Cloud região que contém o modelo de nó

  • TEMPLATE_NAME : o nome do modelo de nó a ser excluído

O que vem a seguir