Aprovisione VMs em nós de inquilino único


Esta página descreve como aprovisionar VMs em nós de inquilino único, que são servidores físicos que executam VMs apenas a partir de um único projeto. Antes de aprovisionar VMs em nós de inquilino único, leia a vista geral dos nós de inquilino único.

O aprovisionamento de uma VM num nó de inquilino único requer o seguinte:

  1. Criar um modelo de nó de inquilino único. O modelo de nó de inquilino único especifica propriedades uniformes para todos os nós de inquilino único num grupo de nós de inquilino único.

  2. Criar um grupo de nós de inquilino único com o modelo de nó de inquilino único criado anteriormente.

  3. Criar VMs e aprovisioná-las num grupo de nós de inquilino único.

Antes de começar

  • Antes de aprovisionar VMs num nó de inquilino único, verifique a sua quota. Consoante o número e o tamanho dos nós que reservar, pode ter de pedir quota adicional.
  • 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:

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

Crie um modelo de nó de inquilino único

Os modelos de nós de inquilino único são recursos regionais que especificam propriedades para grupos de nós de inquilino único. Tem de criar um modelo de nó antes de criar um grupo de nós. No entanto, se estiver a usar a consola, tem de criar modelos de nós durante a criação de um grupo de nós de inquilino único. Google Cloud

Consola

Tem de criar um modelo de nó de inquilino único antes de criar um grupo de nós. Se usar a Google Cloud consola, tem de criar o modelo de nó durante a criação de um grupo de nós de inquilino único. O novo modelo de nó é criado na mesma região que especificar nas propriedades do grupo de nós.

  1. Na Google Cloud consola, aceda à página Nós de inquilino único.

    Aceda a Nós de inquilino único

  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ó. 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 inquilino único.

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

  8. Especifique o tipo de nó para cada nó de inquilino único no grupo de nós a criar com base neste modelo de nó.

  9. Opcional: também pode especificar as seguintes propriedades para o modelo de nó.

    • Adicione um SSD local e um acelerador de GPU.
    • Selecione Ativar sobrecompromisso de CPU para controlar os níveis de sobrecompromisso de CPU para cada VM agendada no nó.

    • Adicione etiquetas de afinidade de nós. As etiquetas de afinidade permitem-lhe agrupar logicamente nós e grupos de nós e, posteriormente, quando aprovisionar VMs, pode especificar etiquetas de afinidade nas VMs para agendar VMs num conjunto específico de nós ou grupos de nós. Para mais informações, consulte o artigo Afinidade e anti-afinidade 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 inquilino único numa região diferente, repita os passos anteriores.

Para ver os modelos de nós, clique em Modelos de nós na página Nós de inquilino único.

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 inquilino único 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ó. Pode usar este modelo para criar grupos de nós em qualquer zona desta região.

  • AFFINITY_LABELS: as chaves e os valores, [KEY=VALUE,...], para etiquetas de afinidade. As etiquetas de afinidade permitem-lhe agrupar logicamente nós e grupos de nós e, posteriormente, quando aprovisionar VMs, pode especificar etiquetas de afinidade nas VMs para agendar VMs num conjunto específico de nós ou grupos de nós. Para mais informações, consulte o artigo Afinidade e antiafinidade de nós.

  • GPU_TYPE: o tipo de GPU para cada nó de inquilino único 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 inquilino único n1 ou g2 esteja 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 especificar consoante o tipo de GPU. Definido para o valor especificado para o tipo de GPU, conforme mostrado na tabela seguinte:

    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. Definido 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 não definir este valor, a predefinição é 375.

  • CPU_OVERCOMMIT_TYPE: o tipo de sobrecompromisso para CPUs numa VM. Definido 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 o seguinte:

  • PROJECT_ID: o ID do projeto.

  • REGION: a região na qual criar o modelo de nó. 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 inquilino único 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 da chave de uma etiqueta de afinidade de nó expressa como um par de chave-valor. As etiquetas de afinidade permitem-lhe agrupar logicamente nós e grupos de nós e, posteriormente, quando aprovisionar VMs, pode especificar etiquetas de afinidade nas VMs para agendar VMs num conjunto específico de nós ou grupos de nós. Para mais informações, consulte o artigo Afinidade e antiafinidade de nós.

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

  • GPU_TYPE: o tipo de GPU para cada nó de inquilino único 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 inquilino único n1 ou g2 esteja 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 inquilino único criado com base neste modelo de nó. Definido para o valor especificado para o tipo de GPU, conforme mostrado na tabela seguinte:

    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 não definir este valor, a predefinição é 375.

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

  • CPU_OVERCOMMIT_TYPE: tipo de sobrecompromisso da CPU. Definido como enabled, none ou CPU_OVERCOMMIT_TYPE_UNSPECIFIED.

Crie um grupo de nós de inquilino único

Com o modelo de nó de inquilino único criado anteriormente, crie um grupo de nós de inquilino único. Um grupo de nós de inquilino único herda as propriedades especificadas pelo modelo de nó de inquilino único e tem valores adicionais que tem de especificar.

Consola

  1. Na Google Cloud consola, aceda à página Nós de inquilino único.

    Aceda a Nós de inquilino único

  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 para o grupo de nós apresentar os modelos de nós disponíveis nessa região.

  5. Especifique a zona na região onde quer 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 inquilino único. O modelo de nó selecionado é aplicado ao grupo de nós.

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

    • Desativado: faça a gestão manual do tamanho do grupo de nós.

    • Ativado: os nós são adicionados ou removidos automaticamente do grupo de nós.

    • Apenas aumentar a escala: adicione nós ao grupo de nós quando for necessária capacidade adicional.

  8. Especifique o Número de nós para o grupo. Se ativar o redimensionador automático de grupos de nós, especifique um intervalo para o tamanho do grupo de nós. Pode alterar manualmente os valores mais tarde.

  9. Defina a Política de manutenção do grupo de nós de inquilino único na secção Configurar definições de manutenção para um dos seguintes valores. A política de manutenção permite-lhe configurar o comportamento das VMs no grupo de nós durante eventos de manutenção do anfitrião. Para mais informações, consulte as políticas de manutenção.

    • Predefinição
    • Reinicie no local
    • Migre dentro do grupo de nós
  10. Pode escolher entre períodos de manutenção normais e o controlo de manutenção avançado para processar a manutenção do seu grupo de nós de inquilino único, da seguinte forma:

    • Período de manutenção: selecione o período durante o qual quer que os eventos de manutenção planeados ocorram para os nós nos grupos de nós de inquilino único.

    • Ative o controlo de manutenção avançado para a posse exclusiva: O controlo de manutenção avançado para a posse exclusiva permite-lhe controlar eventos de manutenção planeados para grupos de nós de posse exclusiva e minimizar interrupções relacionadas com a manutenção. Para ativar o controlo de manutenção avançado, clique no botão Ativar o controlo de manutenção avançado para a posse exclusiva para o colocar na posição ativado. Se optar por usar esta opção para a manutenção dos nós, o campo Período de manutenção está desativado e a manutenção ocorre conforme configurado no controlo de manutenção avançado.

    Tenha em atenção que o controlo de manutenção avançado só suporta a política de manutenção Predefinição.

  11. Configure as definições de partilha especificando uma das seguintes opções em Configure as definições de partilha:

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

    Se não quiser partilhar o grupo de nós, escolha Não partilhar este grupo de nós com outros projetos. Para mais informações sobre a partilha de grupos de nós, consulte o artigo Partilhe grupos de nós de inquilino único.

  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 num 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 usar para criar este grupo.

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

  • ZONE: a zona na qual criar o grupo de nós. Tem de ser a mesma região que o modelo de nó no qual está a basear o grupo de nós.

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

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

    Em alternativa, pode ativar o controlo de manutenção avançado para o grupo de nós de inquilino único com a flag --maintenance-interval. Para mais informações, consulte o artigo Ative o controlo de manutenção avançado num nó de inquilino único.

  • START_TIME: a hora de início em GMT da janela de manutenção para as VMs neste grupo de nós. Definido como um dos seguintes valores: 00:00, 04:00, 08:00, 12:00, 16:00 ou 20:00. Se não estiver definido, o grupo de nós não tem um período de manutenção definido.

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

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

    • on: ter nós adicionados ou removidos automaticamente do grupo de nós.

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

  • MIN_NODES: o tamanho mínimo do grupo de nós. O valor predefinido é 0 e tem de ser um valor inteiro inferior ou igual a MAX_NODES.

  • MAX_NODES: o tamanho máximo do grupo de nós. Este valor tem de ser igual ou inferior a 100 e igual ou superior a MIN_NODES. Obrigatório se AUTOSCALER_MODE não estiver definido como off.

REST

Use o método nodeGroups.insert para criar um grupo de nós com base num 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. Tem de estar na mesma região que o modelo de nó no qual está a basear o grupo de nós.

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

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

  • TEMPLATE_NAME: o nome do modelo de nó a usar 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. Tem de ser um dos seguintes valores:

    • DEFAULT
    • RESTART_IN_PLACE
    • MIGRATE_WITHIN_NODE_GROUP

    Em alternativa, pode ativar o controlo de manutenção avançado para o grupo de nós de inquilino único através do campo maintenanceInterval. Para mais informações, consulte o artigo Ative o controlo de manutenção avançado num nó de inquilino único.

  • START_TIME: a hora de início em GMT da janela de manutenção para as VMs neste grupo de nós. Definido como um dos seguintes valores: 00:00, 04:00, 08:00, 12:00, 16:00 ou 20:00. Se não estiver definido, o grupo de nós não tem um período de manutenção definido.

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

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

    • ON: ter nós adicionados ou removidos automaticamente do grupo de nós.

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

  • MIN_NODES: o tamanho mínimo do grupo de nós. O valor predefinido é 0 e tem de ser um valor inteiro inferior ou igual a MAX_NODES.

  • MAX_NODES: o tamanho máximo do grupo de nós. Este valor tem de ser igual ou inferior a 100 e igual ou superior a MIN_NODES. Obrigatório se AUTOSCALER_MODE não estiver definido como OFF.

Aprovisione uma VM de inquilino único

Depois de criar um grupo de nós com base num modelo de nó criado anteriormente, pode aprovisionar VMs individuais num grupo de nós de inquilino único.

Para aprovisionar uma VM num nó ou num grupo de nós específico que tenha etiquetas de afinidade que correspondam às que atribuiu anteriormente ao modelo de nó, siga o procedimento padrão para criar uma instância de VM e atribua etiquetas de afinidade à VM.

Em alternativa, pode usar o procedimento seguinte para aprovisionar uma VM num nó de inquilino único a partir da página de detalhes do grupo de nós. Com base no grupo de nós no qual aprovisiona VMs, o Compute Engine atribui etiquetas de afinidade.

Consola

  1. Na Google Cloud consola, aceda à página Nós de inquilino único.

    Aceda a Nós de inquilino único

  2. Clique em Grupos de nós.

  3. Clique no Nome do grupo de nós para aprovisionar uma instância de VM e, em seguida, opcionalmente, para aprovisionar uma VM num nó de inquilino único específico, clique no nome do nó de inquilino único específico para aprovisionar a VM.

  4. Clique em Criar instância para aprovisionar uma instância de VM neste grupo de nós, tome nota dos valores aplicados automaticamente para o Nome, a Região e a Zona e modifique esses valores conforme necessário.

  5. Selecione uma Configuração da máquina especificando a Família de máquinas, a Série e o Tipo de máquina. Escolha a série que corresponde ao tipo de nó de inquilino único.

  6. Modifique o disco de arranque, a firewall e outras definições, conforme necessário.

  7. Clique em Posse única, tome nota das etiquetas de afinidade de nós atribuídas automaticamente e use Procurar para ajustar conforme necessário.

  8. Clique em Gestão e, para Manutenção no anfitrião, 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.

    • Terminate: VM parada durante eventos de manutenção.

  9. Escolha uma das seguintes opções para o reinício automático:

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

    • Desativado: 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 inquilino único.

gcloud

Use o comando gcloud compute instances create para aprovisionar uma VM num grupo de nós de inquilino único:

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 flag --restart-on-failure indica se as VMs de inquilino único são reiniciadas após a paragem. Esta sinalização está ativada por predefinição. Use --no-restart-on-failure para desativar.

Substitua o seguinte:

  • VM_NAME: o nome da nova VM de inquilino único.

  • ZONE: a zona onde aprovisionar a VM de inquilino único.

  • IMAGE_FAMILY: a image family da imagem a usar para criar a VM.

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

  • GROUP_NAME: o nome do grupo de nós para aprovisionar a VM.

  • MACHINE_TYPE: o tipo de máquina da VM de inquilino único. Use o gcloud compute machine-types listcomando para obter uma lista dos tipos de máquinas disponíveis para o projeto.

  • MAINTENANCE_POLICY: especifica o comportamento de reinício das VMs de inquilino único durante eventos de manutenção. Definido para uma das seguintes opções:

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

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

  • GPU_TYPE: tipo de GPU. Definido para um dos tipos de aceleradores 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 predefinido é 1.

  • SSD_INTERFACE: tipo de interface SSD local. Só pode definir esta opção para instâncias criadas a partir de um modelo de nó com suporte de SSD local. Se especificar esta opção durante a criação da instância e o modelo de nó não suportar o SSD local, a criação da instância falha. Defina como nvme se os controladores de imagem do disco de arranque estiverem otimizados para NVMe. Caso contrário, defina como scsi. Especifique esta flag e um valor correspondente uma vez para cada partição SSD local.

REST

Use o método instances.insert para aprovisionar uma VM num grupo de nós de inquilino único:

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 onde aprovisionar a VM de inquilino único.

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

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

  • VM_NAME: o nome da nova VM de inquilino único.

  • MAINTENANCE_POLICY: especifica o comportamento de reinício das VMs de inquilino único durante eventos de manutenção. Definido para uma das seguintes opções:

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

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

  • RESTART_ON_FAILURE: indica se as VMs de inquilino único são reiniciadas após a paragem. A predefinição é true.

  • GROUP_NAME: o nome do grupo de nós para aprovisionar a VM.

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

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

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

  • GPU_TYPE: o tipo de GPU. Definido para um dos tipos de aceleradores 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 predefinido é 1.

  • IMAGE_PROJECT: image project da família de imagens.

  • IMAGE_FAMILY: image family da imagem a usar 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 controladores da imagem do disco de arranque estiverem otimizados para NVMe, caso contrário, defina como SCSI.

Aprovisione um grupo de VMs de inquilino único

Os grupos de instâncias geridas (GIGs) permitem-lhe aprovisionar um grupo de VMs de inquilino único idênticas. As etiquetas de afinidade permitem-lhe especificar o nó de inquilino único ou o grupo de nós no qual aprovisionar o grupo de VMs de inquilino único.

Para os MIGs regionais, tem de 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 gcloud compute instance-templates create comando para criar um modelo de grupo de instâncias gerido para um grupo de VMs a criar num grupo de nós de inquilino único:

    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 inquilino único. 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 usar para criar a VM.

    • GROUP_NAME: o nome do grupo de nós para aprovisionar a VM. Em alternativa, se quiser usar este modelo de instância para criar um MIG regional que exista em mais do que uma zona, use a flag --node-affinity-file para especificar uma lista de valores para os grupos de nós do MIG regional.

    • GPU_TYPE: tipo de GPU. Definido para um dos tipos de aceleradores 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 predefinido é 1.

    • SSD_INTERFACE: tipo de interface SSD local. Defina como nvme se os controladores da imagem do disco de arranque estiverem otimizados para NVMe, caso contrário, defina como scsi. Especifique este 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 gerido no seu grupo de nós de inquilino único:

    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 incluir neste grupo de instâncias. O seu grupo de nós tem de ter recursos suficientes para acomodar as instâncias neste grupo de instâncias geridas. Use o autoscaler do grupo de instâncias geridas para gerir automaticamente a dimensão dos grupos de instâncias geridas.

    • INSTANCE_TEMPLATE: o nome do modelo de instância a usar para criar este MIG. O modelo tem de ter uma ou mais etiquetas de afinidade de nós que apontem para os grupos de nós adequados.

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

REST

  1. Use o método instanceTemplates.insert para criar um modelo de grupo de instâncias gerido no seu grupo de nós de inquilino único:

    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 inquilino único. 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 para aprovisionar a VM. Se quiser usar este modelo de instância para criar um MIG regional que exista em mais do que uma zona, especifique uma lista de grupos de nós que existam 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. Definido para um dos tipos de aceleradores 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 predefinido é 1.

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

    • IMAGE_FAMILY: a image family da imagem a usar 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 controladores da imagem do disco de arranque estiverem otimizados para NVMe, caso contrário, defina como SCSI.

  2. Use o método instanceGroupManagers.insert para criar um MIG no seu grupo de nós de inquilino único com base no modelo de instância criado anteriormente. Em alternativa, se quiser 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 o seguinte pedido:

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

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

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

    • SIZE: o número de VMs a incluir neste grupo de instâncias. O seu grupo de nós tem de ter recursos suficientes para acomodar as instâncias neste grupo de instâncias geridas. Use o autoscaler do grupo de instâncias geridas para gerir automaticamente a dimensão dos grupos de instâncias geridas.

    • INSTANCE_TEMPLATE: o URL do modelo de instância a usar para criar este grupo. O modelo tem de ter uma etiqueta de afinidade de nó que aponta para o grupo de nós adequado.

Configure etiquetas de afinidade de nós

As etiquetas de afinidade de nós permitem-lhe agrupar logicamente grupos de nós e agendar VMs num conjunto específico de grupos de nós. Também pode usar etiquetas de afinidade de nós para agendar VMs em grupos de nós em diferentes zonas e manter os grupos de nós num grupo lógico. O procedimento seguinte é um exemplo de utilização de etiquetas de afinidade para associar VMs a um grupo de nós específico que é usado para cargas de trabalho de produção. Este exemplo mostra como agendar uma única VM, mas também pode usar grupos de instâncias geridas para agendar 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 etiquetas 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 as etiquetas de afinidade de nós atribuídas ao modelo de nó.

  3. Use o comando gcloud compute sole-tenancy node-groups create para criar um grupo de nós que usa 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 ficheiro node-affinity-prod.json para especificar a afinidade das VMs de produção. Por exemplo, pode criar um ficheiro que especifique que as VMs são executadas apenas em nós com as afinidades workload=frontend e environment=prod. Crie o ficheiro de afinidade de nós através do Cloud Shell ou crie-o numa localização à sua escolha.

    [
      {
        "key" : "workload",
        "operator" : "IN",
        "values" : ["frontend"]
      },
      {
        "key" : "environment",
        "operator" : "IN",
        "values" : ["prod"]
      }
    ]
    
  5. Use o ficheiro node-affinity-prod.json com o comando gcloud compute instances create para agendar uma VM no grupo de nós com etiquetas 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 ver as afinidades de nós atribuídas à VM.

Configure etiquetas de antiafinidade de nós

As etiquetas de afinidade de nós podem ser configuradas como etiquetas de antiafinidade para impedir a execução de VMs em nós específicos. Por exemplo, pode usar etiquetas de antiafinidade para impedir que as VMs que está a usar para fins de desenvolvimento sejam agendadas nos mesmos nós que a sua VM de produção. O exemplo seguinte mostra como usar etiquetas de afinidade para impedir que as VMs sejam executadas em grupos de nós específicos. Este exemplo mostra como agendar uma única VM, mas também pode usar grupos de instâncias geridas para agendar um grupo de VMs.

gcloud

  1. Para VMs de desenvolvimento, especifique a afinidade das VMs de desenvolvimento através da criação de um node-affinity-dev.json com o Cloud Shell ou através da criação do mesmo numa localização à sua escolha. Por exemplo, crie um ficheiro que configure VMs para serem executadas 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 ficheiro 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 ver as anti-afinidades de nós atribuídas à VM.

Elimine um grupo de nós

Se precisar de eliminar um grupo de nós de inquilino único, remova primeiro todas as VMs do grupo de nós.

Consola

  1. Aceda à página Nós de inquilino único.

    Aceda a Nós de inquilino único

  2. Clique no Nome do grupo de nós a eliminar.

  3. Para cada nó no grupo de nós, clique no nome do nó e elimine instâncias de VMs individuais na página de detalhes do nó ou siga o procedimento padrão para eliminar uma VM individual. Para eliminar VMs num grupo de instâncias gerido, elimine o grupo de instâncias gerido.

  4. Depois de eliminar todas as instâncias de VM em execução em todos os nós do grupo de nós, regresse à página Nós de inquilino único.

    Aceda a Nós de inquilino único

  5. Clique em Grupos de nós.

  6. Selecione o nome do grupo de nós que tem de eliminar.

  7. Clique em Eliminar.

gcloud

  1. Apresente uma lista das instâncias de VM em execução nos nós do grupo de nós através do 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 existirem VMs em execução no grupo de nós, siga o procedimento para eliminar uma VM individual ou o procedimento para eliminar um grupo de instâncias gerido.

  3. Depois de eliminar todas as VMs em execução em todos os nós do grupo de nós, elimine o grupo de nós com 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

REST

  1. Liste as instâncias de VM em execução nos nós do grupo de nós através do 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 existirem VMs em execução no grupo de nós, siga o procedimento para eliminar uma VM individual ou o procedimento para eliminar um grupo de instâncias gerido.

  3. Depois de eliminar todas as VMs em execução em todos os nós do grupo de nós, elimine o grupo de nós através do 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 eliminar

Elimine um modelo de nó

Pode eliminar um modelo de nó depois de eliminar todos os grupos de nós que estão a usar o modelo.

Consola

  1. Na Google Cloud consola, aceda à página Nós de inquilino único.

    Aceda a Nós de inquilino único

  2. Clique em Modelos de nós.

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

  4. Clique em Eliminar.

gcloud

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

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

Substitua o seguinte:

  • TEMPLATE_NAME: o nome do modelo de nó a eliminar

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

REST

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

 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 região que contém o modelo de nó Google Cloud

  • TEMPLATE_NAME: o nome do modelo de nó a eliminar

O que se segue?