Provisione VMs em nós de locatário individual.


Nesta página, descrevemos como provisionar VMs em nós de locatário individual, que são servidores físicos que executam VMs apenas 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 (em inglês).

O provisionamento de uma VM em um nó de locatário individual exige:

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

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

  3. Criar VMs e provisioná-las 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 um aumento de cota.
  • 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:

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

Crie um modelo de nó de locatário individual.

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

Console

É preciso 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 que você especifica 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 a Região em que o modelo de nó será criado. É possível usar o modelo de nó para criar grupos de nós em qualquer zona dessa região.

  5. Especifique a Zona e clique em Continuar.

  6. Na lista de Modelos 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 nesse modelo.

  9. Opcionalmente, é possível especificar as seguintes propriedades para o modelo de nó.

    • Adicione um SSD local e um acelerador de GPU.
    • Selecione Ativar alocação extra de CPU para controlar os níveis de alocação extra de CPU para cada VM programada no nó.

    • Adicione rótulos de afinidade de nó. Os rótulos de afinidade permitem agrupar nós e grupos de nós de maneira lógica. E, posteriormente, ao provisionar VMs, será possível especificar rótulos de afinidade nas VMs para programá-las em um conjunto específico de nós ou grupos de nós. Para mais informações, consulte Afinidade e antiafinidade de nós.

  10. Clique em Criar para concluir a criação do modelo de nó.

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

Para ver os modelos de nó, clique em Modelos de nó 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:

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

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

  • REGION: a região em que o modelo de nó será criado. É possível usar esse modelo para criar grupos de nós em qualquer zona dessa região.

  • AFFINITY_LABELS: as chaves e os valores ([KEY=VALUE,...]) dos rótulos de afinidade. Os rótulos de afinidade permitem agrupar nós e grupos de nós de maneira lógica. E, posteriormente, ao provisionar VMs, será possível especificar rótulos de afinidade nas VMs para programá-las em um conjunto específico de nós ou grupos de nós. Para mais informações, consulte Afinidade e antiafinidade de nós.

  • GPU_TYPE: o tipo de GPU para cada nó de locatário individual criado com base nesse modelo de nó. Para mais informações sobre a disponibilidade zonal de GPUs, use o comando gcloud compute accelerator-types list e escolha uma zona em que o tipo de nó de locatário individual n1 ou g2 está disponível. Dependendo da disponibilidade zonal, defina uma das seguintes opções:

    • 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 conforme 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 aceito é 375 e, se você não definir esse valor, o padrão será 375.

  • CPU_OVERCOMMIT_TYPE: o tipo de alocação extra de CPUs em uma VM. Defina como enabled ou none.

REST

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:

  • PROJECT_ID: o ID do projeto;

  • REGION: a região em que o modelo de nó será criado. É possível usar esse modelo para criar grupos de nós em qualquer zona dessa região.

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

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

  • KEY: o valor nodeAffinityLabels que especifica a parte da chave de um rótulo de afinidade de nó expressa como um par de chave-valor. Os rótulos de afinidade permitem agrupar nós e grupos de nós de maneira lógica. E, posteriormente, ao provisionar VMs, será possível especificar rótulos de afinidade nas VMs para programá-las em um conjunto específico de nós ou grupos de nós. Para mais informações, consulte Afinidade e antiafinidade de nós.

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

  • GPU_TYPE: o tipo de GPU para cada nó de locatário individual criado com base nesse modelo de nó. Para mais informações sobre a disponibilidade zonal de GPUs, use o comando gcloud compute accelerator-types list e escolha uma zona em que o tipo de nó de locatário individual n1 ou g2 está disponível. Dependendo da disponibilidade zonal, defina uma das seguintes opções:

    • 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 nesse modelo de nó. Defina conforme 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 aceito é 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 sobrecarga da CPU Defina como enabled, none ou CPU_OVERCOMMIT_TYPE_UNSPECIFIED.

Crie um grupo de nós de locatário individual.

Com o modelo de nó de locatário único criado anteriormente, crie um grupo de nós de locatário individual. Um grupo de nós de locatário individual herda as propriedades especificadas pelo modelo de nó de locatário individual e tem outros valores que você precisa especificar.

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ó disponíveis nessa região.

  5. Especifique a Zona na região em que o grupo de nós será criado.

  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:

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

    • On: adicione ou remova nós automaticamente do grupo de nós.

    • Somente escalonamento horizontal: adicione nós ao grupo de nós quando a capacidade extra for necessária.

  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. É possível alterar os valores manualmente mais tarde.

  9. Defina a Política de manutenção do grupo de nós de locatário individual na seção Definir configurações de manutenção como 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 mais informações, consulte Políticas de manutenção.

    • Padrão
    • Começar a reinicialização
    • Migrar no grupo de nós
  10. É possível escolher entre janelas de manutenção regulares e o controle de manutenção avançado para lidar com a manutenção do grupo de nós de locatário individual da seguinte maneira:

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

    • Ative o controle de manutenção avançado para locatário individual (Prévia ). 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 as interrupções relacionadas à manutenção. Para ativar o controle de manutenção avançado, clique em Ativar o controle de manutenção avançado para locatário individual para ativar a posição ativado. Se você optar por usar essa opção para manutenção de nós, o campo Janela de manutenção será desativado e a manutenção ocorrerá conforme configurado no controle de manutenção avançado.

    Durante a fase de pré-lançamento, o controle de manutenção avançado só é compatível com a política de manutenção Padrão.

  11. Defina as configurações de compartilhamento especificando uma das seguintes opções em Definir configurações de compartilhamento:

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

    Se você não quiser compartilhar o grupo de nós, escolha Não compartilhar este grupo de nós com outros projetos. Para 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:

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

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

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

  • ZONE: a zona em que o grupo de nós será criado. Precisa ser a mesma região do modelo de nó em que você está baseando o grupo de nós.

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

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

    Como alternativa, é possível ativar o controle de manutenção avançado (Visualização) para o grupo de nós de locatário individual usando a sinalização --maintenance-interval. Para mais informações, consulte Ativar o controle de manutenção avançado em um nó de locatário individual.

  • START_TIME: o horário de início em GMT para a janela de manutenção das VMs neste grupo de nós. Defina como uma destas opções: 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. Precisa ser uma destas opções:

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

    • on: nós serão adicionados ou removidos automaticamente do grupo de nós.

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

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

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

REST

Use o métodonodeGroups.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:

  • PROJECT_ID: o ID do projeto;

  • ZONE: a zona em que o grupo de nós será criado. Ele precisa estar na mesma região do modelo do nó em que 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 em que o grupo de nós será criado. Você precisa ter um modelo de nó na região selecionada.

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

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

  • MAINTENANCE_POLICY: a política de manutenção para o grupo de nós. Precisa ser um destes valores:

    • DEFAULT
    • RESTART_IN_PLACE
    • MIGRATE_WITHIN_NODE_GROUP

    Como alternativa, é possível ativar o controle de manutenção avançado (Visualização) para o grupo de nós de locatário individual usando o campo maintenanceInterval. Para mais informações, consulte Ativar o controle de manutenção avançado em um nó de locatário individual.

  • START_TIME: o horário de início em GMT para a janela de manutenção das VMs neste grupo de nós. Defina como uma destas opções: 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. Precisa ser um destes valores:

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

    • ON: nós serão adicionados ou removidos automaticamente do grupo de nós.

    • ONLY_SCALE_OUT: adicione nós ao grupo de nós quando a capacidade extra for necessária.

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

  • MAX_NODES: o tamanho máximo do grupo de nós. Precisa 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, é possível 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 com rótulos de afinidade que correspondam àqueles 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 a ela.

Outra opção é 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. 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 provisioná-la.

  4. Clique em Criar instância para provisionar uma instância de VM nesse grupo de nós e observe os valores aplicados automaticamente para Nome, Região e Zona. Modifique esses valores conforme necessário.

  5. Selecione uma Configuração de máquina especificando a Família de máquinas, a Série e o Tipo de máquina. Escolha a Série correspondente 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 Locatário individual, observe os rótulos de afinidade de nó atribuídos automaticamente e use Procurar para fazer ajustes conforme necessário.

  8. Clique em Gerenciamento e, em Na manutenção do host, escolha uma destas opções:

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

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

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

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

    • Desativada: as VMs não são reiniciadas automaticamente 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]

A sinalização --restart-on-failure indica se as VMs de locatário individual são reiniciadas após a interrupção. Essa sinalização é ativada por padrão. Use --no-restart-on-failure para desativar.

Substitua:

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

  • ZONE: a zona em que a VM de locatário individual será provisionada;

  • 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 em que a VM será provisionada.

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

  • MAINTENANCE_POLICY: especifica o comportamento de reinicialização das VMs de locatário individual durante eventos de manutenção. Defina como uma destas opções:

    • MIGRATE: as VMs migram para outro nó no grupo de nós durante eventos de manutenção.

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

  • 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ó a ser anexado a esta VM. O valor padrão é 1;

  • SSD_INTERFACE: o tipo de interface do SSD local. Só é possível defini-lo para instâncias criadas a partir de um modelo de nó com suporte para SSD local. Se você especificar isso ao criar a instância e o modelo de nó não aceitar o SSD local, a criação da instância falhará. Defina como nvme se os drivers da imagem do disco de inicialização forem otimizados para NVMe. Caso contrário, defina como scsi. Especifique esta sinalização e um valor correspondente uma vez para cada partição do SSD local.

REST

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:

  • PROJECT_ID: o ID do projeto;

  • VM_ZONE: a zona em que a VM de locatário individual será provisionada;

  • 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 receber uma lista de 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 das VMs de locatário individual durante eventos de manutenção. Defina como uma destas opções:

    • MIGRATE: as VMs migram para outro nó no grupo de nós durante eventos de manutenção.

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

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

  • GROUP_NAME: o nome do grupo de nós em que a VM será provisionada.

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

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

  • SUBNETWORK: o URL do recurso de sub-rede da 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ó a ser anexado 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 da interface SSD local. Defina como NVME se os drivers da imagem do disco de inicialização forem otimizados para NVMe. Caso contrário, defina como SCSI.

Como provisionar um grupo de VMs de locatário individual

Os grupos de instâncias gerenciadas (MIGs, na sigla em inglês) permitem provisionar um grupo de VMs de locatário individual idênticas. Os rótulos de afinidade permitem especificar o nó de locatário individual ou o grupo de nós em que o grupo de VMs de locatário individual será provisionado.

Para MIGs regionais, é preciso criar grupos de nós em cada uma das zonas do MIG regional e especificar afinidades de nó 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 a ser criado 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:

    • 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 receber 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 em que a VM será provisionada. Como alternativa, se você quiser usar esse modelo de instância para criar um MIG regional que exista em mais de uma zona, use a sinalização --node-affinity-file para especifique uma lista de valores para os grupos de nós do MIG regional.

    • 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ó a ser anexado a esta VM. O valor padrão é 1.

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

  2. Use o comando gcloud compute instance-groups managed create para criar um grupo de instâncias gerenciadas no 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:

    • INSTANCE_GROUP_NAME: o nome desse grupo de instâncias;

    • SIZE: o número de VMs a serem incluídas no grupo de instâncias. O grupo de nós precisa ter recursos suficientes para acomodar as instâncias nesse grupo de instâncias gerenciadas. Use o escalonador automático de grupos de instâncias gerenciadas para gerenciar automaticamente o tamanho desse tipo de grupo.

    • INSTANCE_TEMPLATE: o nome do modelo de instância que será usado para criar esse MIG. O modelo precisa ter um ou mais rótulos de afinidade de nó que apontem para os grupos de nós apropriados.

    • ZONE: a zona em que o grupo de instâncias gerenciadas será criado; Para um MIG regional, substitua a sinalização --zone pela sinalização --region e especifique uma região. Também adicione a sinalização --zones para especificar todas as zonas em que os grupos de nós existem.

REST

  1. Use o método instanceTemplates.insert para criar um modelo de grupo de instâncias gerenciadas no 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:

    • PROJECT_ID: o ID do projeto;

    • TEMPLATE_ZONE: a zona em que o modelo de instância será criado;

    • 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 receber uma lista de tipos de máquinas disponíveis para o projeto.

    • GROUP_NAME: o nome do grupo de nós para provisionar a VM. Se você quiser 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 existam nas mesmas zonas das zonas regionais do MIG.

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

    • REGION: a região que contém a sub-rede deste modelo de instância;

    • SUBNETWORK: o URL do recurso de sub-rede para o 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ó a ser anexado 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 da interface SSD local. Defina como NVME se os drivers da imagem do disco de inicialização forem otimizados para NVMe. Caso contrário, defina como SCSI.

  2. Use o método instanceGroupManagers.insert para criar um MIG no grupo de nós de locatário individual com base no modelo de instância criado anteriormente. Ou, para 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:

    • PROJECT_ID: o ID do projeto;

    • ZONE: a zona em que o grupo de instâncias gerenciadas será criado;

    • NAME_PREFIX: o nome do prefixo para cada uma das instâncias no grupo gerenciado de instâncias;

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

    • SIZE: o número de VMs a serem incluídas no grupo de instâncias. O grupo de nós precisa ter recursos suficientes para acomodar as instâncias nesse grupo de instâncias gerenciadas. Use o escalonador automático de grupos de instâncias gerenciadas para gerenciar automaticamente o tamanho desse tipo de grupo.

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

Configurar rótulos de afinidade do nó

Os rótulos de afinidade de nó permitem agrupar logicamente grupos de nós e programar VMs em um conjunto específico de grupos de nós. Também é possível usar rótulos de afinidade de nó para programar VMs em grupos de nós em diferentes zonas 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 também é possível 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 ver 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 as VMs de produção, crie um arquivo node-affinity-prod.json para especificar a afinidade das VMs de produção. Por exemplo, é possível criar um arquivo especificando que as VMs serão 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 esse arquivo em um local de sua escolha.

    [
      {
        "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 programar 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 as VMs sejam executadas em nós específicos. Por exemplo, é possível usar rótulos antiafinidade para evitar que as VMs usadas para fins de desenvolvimento sejam programadas nos mesmos nós das VMs de produção. O exemplo a seguir mostra como usar rótulos de afinidade para evitar que as VMs sejam executadas em determinados grupos de nós. Este exemplo mostra como programar uma única VM, mas também é possível usar grupos de instâncias gerenciadas para programar um grupo de VMs.

gcloud

  1. No caso de VMs de desenvolvimento, especifique a afinidade delas criando um node-affinity-dev.json com o Cloud Shell ou realize a criação no local que preferir. Por exemplo, crie um arquivo que configure VMs para serem executadas em qualquer grupo de nós com a afinidade workload=frontend, desde que ele 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 de 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 desse grupo.

Console

  1. Acessar 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 as 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 instâncias em um grupo de instâncias gerenciadas, exclua o grupo.

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

    Acessar 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 instâncias de VM em execução em nós no 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:

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

    • ZONE: a 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 usando o comando gcloud compute sole-tenancy node-groups delete:

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

    Substitua:

    • GROUP_NAME: o nome do grupo de nós;

    • ZONE: a zona do grupo de nós.

REST

  1. Liste instâncias de VM em execução em nós no 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:

    • PROJECT_ID: o ID do projeto;

    • ZONE: a zona do grupo de nós;

    • GROUP_NAME: o grupo em que as VMs serão listadas.

  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 usando o comando nodeGroups.delete:

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

    Substitua:

    • 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ó

É possível 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ó.

  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 usado:

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

Substitua:

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

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

REST

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:

  • PROJECT_ID: o ID do projeto

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

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

A seguir