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).
Antes de começar
- Antes de provisionar VMs em nós 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.
- Crie um modelo de nó de locatário individual.
- Crie um grupo de nós de locatário individual.
-
Configure a autenticação, caso ainda não tenha feito isso.
Com isso, você confirma 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 selecionando uma das seguintes opções:
Selecione a guia para como planeja usar as amostras nesta página:
Console
Quando você usa o console do Google Cloud para acessar os serviços e as APIs do Google Cloud , não é necessário configurar a autenticação.
gcloud
-
Instale a CLI do Google Cloud. Após a instalação, inicialize a Google Cloud CLI executando o seguinte comando:
gcloud initAo usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
- Defina uma região e uma zona padrão.
REST
Para usar as amostras da API REST desta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para a CLI gcloud.
Instale a CLI do Google Cloud.
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
Saiba mais em Autenticar para usar REST na documentação de autenticação do Google Cloud .
Crie um modelo de nó de locatário individual.
Antes de criar um grupo de nós e provisionar VMs de locatário individual, crie um modelo de nó de locatário individual. Um modelo de nó é um recurso regional que define as propriedades (como tipo de nó, rótulos de afinidade, SSDs locais, aceleradores e alocação extra de CPU) para cada nó em um grupo de nós.
Para configurar e criar um modelo de nó usando o console do Google Cloud , a Google Cloud CLI ou a API REST do Compute Engine, consulte Criar um modelo de nó de locatário individual.
Crie um grupo de nós de locatário individual.
Depois de criar um modelo de nó, você precisa criar um grupo de nó de locatário individual. Um grupo de nós é um cluster homogêneo de nós de locatário individual em uma zona específica que herda propriedades do modelo. É possível configurar políticas de manutenção de host, escalonamento automático e configurações de compartilhamento entre projetos no grupo de nós.
Para configurar e criar um grupo de nós usando o console do Google Cloud , a Google Cloud CLI ou a API REST do Compute Engine, consulte Criar um nó de locatário individual individual.
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
No console do Google Cloud , acesse a página Nós de locatário individual.
Clique em Grupos de nós.
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.
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.
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.
Modifique o disco de inicialização, o firewall e outras configurações, conforme necessário.
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.
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.
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.
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 comandogcloud compute machine-types listpara 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 comonvmese os drivers da imagem do disco de inicialização forem otimizados para NVMe. Caso contrário, defina comoscsi. 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étodomachineTypes.listpara 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 comoNVMEse os drivers da imagem do disco de inicialização forem otimizados para NVMe. Caso contrário, defina comoSCSI.
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
Use o comando
gcloud compute instance-templates createpara criar um modelo de grupo gerenciado de instâncias para um grupo de VMs a serem criadas em um grupo de nó 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 comandogcloud compute machine-types listpara 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-filepara 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 comonvmese os drivers da imagem do disco de inicialização forem otimizados para NVMe. Caso contrário, defina comoscsi. Especifique esta sinalização e um valor correspondente uma vez para cada partição do SSD local.
Use o comando
gcloud compute instance-groups managed createpara criar um grupo gerenciado de instâncias no grupo de nós de nó 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 gerenciado de instâncias. Use o escalonador automático de grupos gerenciados de instâncias para gerenciar automaticamente o tamanho desses grupos.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--zonepela sinalização--regione especifique uma região. Também adicione a sinalização--zonespara especificar todas as zonas em que os grupos de nós existem.
REST
Use o método
instanceTemplates.insertpara criar um modelo de grupo gerenciado de instâncias 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étodomachineTypes.listpara 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 comoNVMEse os drivers da imagem do disco de inicialização forem otimizados para NVMe. Caso contrário, defina comoSCSI.
Use o método
instanceGroupManagers.insertpara 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étodoregionInstanceGroupManagers.inserte 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 gerenciado de instâncias. Use o escalonador automático de grupos gerenciados de instâncias para gerenciar automaticamente o tamanho desses grupos.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
Use o comando
gcloud compute sole-tenancy node-templates createpara 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
Use o comando
gcloud compute sole-tenancy node-templates describepara ver os rótulos de afinidade do nó atribuídos ao modelo de nó.Use o comando
gcloud compute sole-tenancy node-groups createpara 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
Para as VMs de produção, crie um arquivo
node-affinity-prod.jsonpara 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 afinidadesworkload=frontendeenvironment=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"] } ]Use o arquivo
node-affinity-prod.jsoncom o comandogcloud compute instances createpara 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
Use o comando
gcloud compute instances describee verifique o camposchedulingpara 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
No caso de VMs de desenvolvimento, especifique a afinidade delas criando um
node-affinity-dev.jsoncom 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 afinidadeworkload=frontend, desde que ele não sejaenvironment=prod:[ { "key" : "workload", "operator" : "IN", "values" : ["frontend"] }, { "key" : "environment", "operator" : "NOT_IN", "values" : ["prod"] } ]Use o arquivo
node-affinity-dev.jsoncom o comandogcloud compute instances createpara criar a VM de desenvolvimento:gcloud compute instances create dev-vm \ --node-affinity-file=node-affinity-dev.json \ --machine-type=n1-standard-2
Use o comando
gcloud compute instances describee verifique o camposchedulingpara visualizar as antiafinidades de nó atribuídas à VM.
A seguir
- Para informações sobre preços de nós de locatário individual, consulte Preços de nós de locatário individual.
Para informações sobre como ativar o escalonamento automático em grupos de nós de locatário individual, consulte Escalonador automático de grupo de nós.
Para mais informações sobre como trazer licenças atuais para o Google Cloud, consulte Trazer licenças atuais.
Para mais informações sobre nós de locatário individual, consulte nós de locatário individual.