Partilhe grupos de nós de inquilino único

Os grupos de nós de inquilino único partilhados são semelhantes aos grupos de nós de inquilino único locais. Por exemplo, os grupos de nós partilhados têm o mesmo custo, consomem a mesma quota e residem num projeto principal na hierarquia de recursos.

A diferença entre os grupos de nós partilhados e os grupos de nós locais é que outros projetos na sua organização podem aprovisionar instâncias de máquinas virtuais (VMs) nos grupos de nós partilhados.

A partilha de um grupo de nós em vários projetos ou numa organização pode ajudar a fazer o seguinte:

  • Consolide os grupos de nós que gere num único projeto e, em seguida, partilhe esses nós com outros projetos ou com toda a organização

  • Diminua os custos eliminando nós após consolidar VMs de vários projetos em grupos de nós subutilizados

  • Faça a gestão de nós de inquilino único com uma única equipa

  • Partilhe nós de inquilino único com projetos mais pequenos e mantenha os limites de segurança e controlo de acesso entre esses projetos

  • Realize uma migração em direto entre grupos de nós no mesmo projeto

  • Melhore a utilização dos seus grupos de nós e reduza o número de nós de manutenção reservados quando usar a política de manutenção Migrar no grupo de nós

O diagrama seguinte mostra um grupo de nós partilhado com outros projetos para que outros departamentos que gerem VMs nesses projetos possam aprovisionar VMs num grupo de nós partilhado.

Diagrama de um grupo de nós partilhado entre projetos. Os departamentos que gerem VMs em diferentes projetos podem aprovisionar VMs num grupo de nós partilhado.

Vantagens de utilização dos grupos de nós partilhados

A tabela seguinte compara projetos que usam grupos de nós locais com projetos que usam grupos de nós partilhados. Tenha em atenção que a subutilização da vCPU diminui nos projetos que usam grupos de nós partilhados.

Configuração do projeto Grupos de nós locais Grupos de nós partilhados
Projetos 10 10
vCPU / projeto 24 24
Grupos de nós 10 1
Nós / grupo de nós 1 3
vCPU / nó 80 80
Utilização / grupo de nós 24 80
Utilização insuficiente / grupo de nós 56 0
Total de subutilização 10 x 56 = 560 vCPUs 1 x 0 = 0 vCPUs

Definições para partilhar grupos de nós

O Compute Engine usa as seguintes definições para partilhar grupos de nós e aprovisionar VMs nos grupos de nós partilhados:

  • Uma definição de partilha que configura quando cria ou atualiza o grupo de nós de inquilino único. Para especificar se o grupo de nós deve ser partilhado com outros projetos ou com toda a organização, use as definições da CLI gcloud (--share-setting, --share-with) ou as definições REST (shareSetting, shareWith).

  • Uma etiqueta de afinidade de nós compute.googleapis.com/projectpredefinida que usa quando aprovisiona uma VM num grupo de nós partilhado através de etiquetas de afinidade de nós. Para obter informações sobre as outras etiquetas de afinidade de nós predefinidas, consulte o artigo Etiquetas de afinidade predefinidas.

Considerações sobre a política de manutenção

Quando um grupo de nós usa a política de manutenção Migrar no grupo de nós, o Compute Engine reserva, pelo menos, 1 nó para eventos de migração em direto. Por isso, o grupo de nós tem de ter, pelo menos, 2 nós. Não pode agendar VMs no nó reservado, pelo que os grupos de nós com esta política de manutenção têm frequentemente uma utilização geral inferior. Isto torna as cargas de trabalho que requerem a política de manutenção Migrate within node group bons candidatos para a partilha de grupos de nós, uma vez que, muitas vezes, obtêm o maior benefício da utilização melhorada.

Funções e autorizações do IAM

Tenha em atenção as seguintes informações sobre as funções e as autorizações da IAM quando partilha um grupo de nós:

  • Se um grupo de nós for partilhado com um projeto, qualquer utilizador que possa criar VMs nos projetos indicados ou na organização pode aprovisionar VMs a partir desses projetos no grupo de nós partilhado sem alterações às funções ou autorizações de IAM.

  • A função do IAM compute.soleTenantViewer permite-lhe listar e ver grupos de nós (CLI gcloud / REST). Não pode modificar grupos de nós com esta função. Qualquer utilizador com esta função ou com autorizações para indicar grupos de nós, independentemente das autorizações de IAM na VM, pode ver o ID do projeto, o nome, o tipo de máquina e as informações sobre SSDs locais e GPUs para todas as VMs no grupo de nós.

Limitações

  • Limitações do regime de conformidade:

    • Independentemente das autorizações de IAM na VM, qualquer utilizador com autorizações para indicar grupos de nós pode ver o ID do projeto, o nome e o tipo de máquina para todas as VMs no grupo de nós. Assim, devido ao risco de divulgação de informações entre projetos, os projetos que tenham VMs aprovisionadas em grupos de nós partilhados devem estar ao abrigo do mesmo regime de conformidade.
  • Trusted Cloud Limitações da consola:

    • Se não tiver autorização para ver VMs no grupo de nós partilhado, essas VMs não aparecem na lista de VMs na página Nós de inquilino único na Trusted Cloud consola.
    • Depois de modificar as definições de partilha na página Grupos de nós de inquilino único, a definição Partilhado com não é atualizada na IU. Para ver a definição Partilhado com atualizada, aceda à página Nós de inquilino único.
    • Depois de partilhar um grupo de nós com todos os projetos numa organização ou com projetos selecionados numa organização, só pode ver o grupo de nós partilhado a partir do respetivo projeto proprietário. Não pode ver o grupo de nós partilhado a partir dos projetos com os quais foi partilhado. Para aprovisionar uma VM no grupo de nós partilhado, a partir do projeto com o qual o grupo de nós é partilhado, aceda à página Instâncias de VM e, de seguida, modifique as etiquetas de afinidade de nós de arrendamento exclusivo.
  • Limitações de partilha:

    • Tem de atualizar as definições de partilha a partir do projeto proprietário do grupo de nós.
    • Pode especificar um máximo de 100 projetos quando usa a definição de partilha projects.
    • Não pode partilhar grupos de nós entre organizações. Por exemplo, se migrar um projeto que contenha um grupo de nós partilhado de uma organização para outra, também tem de migrar todos os projetos que tenham VMs em execução nesse grupo de nós partilhado.
    • Não pode fazer a migração em direto entre projetos quando usa grupos de nós de inquilino único partilhados. Para mais informações, consulte o artigo Migre VMs manualmente em direto.

Antes de começar

  • Antes de criar um grupo de nós de inquilino único, crie um modelo de nó de inquilino único.
  • 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 Trusted Cloud by S3NS 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 Trusted Cloud console to access Trusted Cloud by S3NS services and APIs, you don't need to set up authentication.

    gcloud

    1. Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada. Depois de iniciar sessão, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init
    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 e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada. Depois de iniciar sessão, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

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

Crie um novo grupo de nós e partilhe-o

Para criar um novo grupo de nós e partilhá-lo com outros projetos ou com toda a organização, use a consola, a CLI gcloud ou a API REST. Trusted Cloud

Consola

  1. Crie um grupo de nós de inquilino único. Para mais informações, consulte o artigo Crie um grupo de nós de inquilino único.

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

gcloud

Para criar um grupo de nós partilhado, use o seguinte gcloud compute sole-tenancy node-groups create comando.

gcloud compute sole-tenancy node-groups create NODE_GROUP \
    --zone=ZONE \
    --node-template=NODE_TEMPLATE \
    --target-size=SIZE \
    --share-setting=SHARE_SETTING \
    --share-with=PROJECTS

Substitua o seguinte:

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

  • ZONE: a zona na qual criar o grupo de nós.

  • NODE_TEMPLATE: o nome do modelo de nó criado anteriormente.

  • SIZE: o número de nós no grupo de nós.

  • SHARE_SETTING: a definição de partilha para o grupo de nós. Defina como projects para partilhar com projetos específicos ou defina como organization para partilhar com toda a organização.

  • PROJECTS: uma lista de IDs de projetos ou números de projetos com os quais partilhar o grupo de nós. Só é necessário se definir SHARE_SETTING como projects.

REST

Para criar um grupo de nós partilhado, use o seguinte nodeGroups.insert método.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/nodeGroups

{
  ...
  "name": NODE_GROUP,
  "nodeTemplate": NODE_TEMPLATE,
  "size": SIZE,
  "shareSettings": {
    "shareType": SHARE_TYPE,
    "projectMap": {
      string: {
        "projectId": PROJECTS
      },
    }
  }
  ...
}

Substitua o seguinte:

  • PROJECT: o nome do projeto no qual criar o grupo de nós.

  • ZONE: a zona na qual criar o grupo de nós.

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

  • NODE_TEMPLATE: o nome do modelo de nó criado anteriormente.

  • SIZE: o número de nós no grupo de nós.

  • SHARE_TYPE: a definição de partilha para o grupo de nós. Defina como SPECIFIC_PROJECTS para partilhar com projetos específicos ou defina como ORGANIZATION para partilhar com toda a organização.

  • PROJECTS: uma lista de IDs de projetos ou números de projetos com os quais partilhar o grupo de nós. Só é necessário se definir SHARE_TYPE como SPECIFIC_PROJECTS.

Aprovisione uma VM de inquilino único num grupo de nós partilhado

Para aprovisionar uma VM de inquilino único num grupo de nós partilhado, use a Trusted Cloud consola, a CLI gcloud ou REST.

Consola

  1. Na Trusted Cloud consola, mude para um projeto com o qual partilhou um grupo de nós.

  2. Aceda à página Instâncias de VM.

    Aceder às instâncias de VM

  3. Clique em Criar instância.

  4. Em Zona, escolha a zona do grupo de nós partilhado.

  5. Em Configuração da máquina > Série, escolha o mesmo tipo de máquina especificado no modelo de grupo de nós de inquilino único partilhado.

  6. Expanda a secção Opções avançadas.

  7. Expanda a secção Posse exclusiva.

  8. Clique em Procurar.

  9. Escolha Selecionar projeto e especifique o projeto que contém o grupo de nós partilhado.

  10. Escolha o grupo de nós de inquilino único ou um nó de inquilino único específico nesse grupo para aprovisionar a VM.

gcloud

Aprovisione uma VM num grupo de nós partilhado através do nome do grupo de nós

Para aprovisionar uma VM de inquilino único num grupo de nós partilhado através do nome do grupo de nós, use o seguinte gcloud compute instances create comando.

gcloud compute instances create VM_NAME \
    --machine-type=MACHINE_TYPE \
    --node-group=NODE_GROUP \
    --node-project=NODE_PROJECT

Substitua o seguinte:

  • VM_NAME: o nome da nova VM de inquilino único a criar num grupo de nós partilhado

  • MACHINE_TYPE: o tipo de máquina para a nova VM de inquilino único

  • NODE_GROUP: o nome do grupo de nós partilhado no qual criar a VM de inquilino único

  • NODE_PROJECT: o projeto que contém o grupo de nós para aprovisionar a VM

Aprovisione uma VM num grupo de nós partilhado através de um ficheiro de afinidade de nós

Para aprovisionar uma VM de inquilino único num grupo de nós partilhado através de um ficheiro de afinidade de nós, use o seguinte gcloud compute instances create comando.

gcloud compute instances create VM_NAME \
    --machine-type=MACHINE_TYPE \
    --node-affinity-file=NODE_AFFINITY_FILE

Substitua o seguinte:

  • VM_NAME: o nome da VM de inquilino único a criar num grupo de nós partilhado através de uma etiqueta de afinidade.

  • MACHINE_TYPE: o tipo de máquina da VM de inquilino único a criar num grupo de nós partilhados.

  • NODE_AFFINITY_FILE: o nome do ficheiro .json que contém as informações de afinidade do nó. No ficheiro de afinidade de nós, defina a chave da etiqueta de afinidade como "compute.googleapis.com/project", o operador igual a "IN" e o valor igual ao projeto que contém o grupo de nós. Para mais informações sobre como configurar a afinidade de nós, consulte o artigo Configure etiquetas de afinidade de nós.

REST

Para aprovisionar uma VM de inquilino único num grupo de nós partilhado através de um ficheiro de afinidade de nós, use o seguinte nodeGroups.insertmétodo.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instances

{
  ...
  "name": VM_NAME,
  "machineType": MACHINE_TYPE,
  "scheduling": {
    ...
    "nodeAffinities": [
      {
        "key": KEY,
        "operator": OPERATOR,
        "values": [
          VALUE
        ]
      }
    ],
    ...
  },
  ...
}

Substitua o seguinte:

  • PROJECT: o nome do projeto proprietário do grupo de nós.

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

  • VM_NAME: o nome da VM de inquilino único a criar num grupo de nós partilhado através de uma etiqueta de afinidade.

  • MACHINE_TYPE: o tipo de máquina da VM de inquilino único a criar num grupo de nós partilhados.

  • KEY: a etiqueta de afinidade. Definido como "compute.googleapis.com/project".

  • OPERATOR: o operador de etiqueta de afinidade. Definido como "IN".

  • VALUE: o projeto que contém o grupo de nós para aprovisionar a VM. Especifique um projeto através do nome do projeto ou do ID do projeto.

Para mais informações sobre como configurar a afinidade de nós, consulte o artigo Configure node affinity labels.

Veja as definições de partilha de um grupo de nós

Para ver as definições de partilha de um grupo de nós, use a Trusted Cloud consola, a CLI gcloud ou o REST.

Consola

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

    Aceda a Nós de inquilino único

  2. Para ver as propriedades do grupo de nós, na coluna Nome, clique no nome do grupo de nós.

gcloud

Para ver as definições de partilha de um grupo de nós, use o seguinte gcloud compute sole-tenancy node-groups describe comando.

gcloud compute sole-tenancy node-groups describe NODE_GROUP

Substitua NODE_GROUP pelo nome do grupo de nós para ver as definições de partilha.

REST

Para ver as definições de partilha de um grupo de nós, use o seguinte nodeGroups.get método.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/nodeGroups

Substitua o seguinte:

  • PROJECT: o nome do projeto com o grupo de nós para ver as definições de partilha

  • ZONE: a zona que contém o grupo de nós para ver as definições de partilha

Partilhe um grupo de nós existente

Para partilhar um grupo de nós existente com outros projetos ou com toda a organização, use a Trusted Cloud consola, a CLI gcloud ou REST.

Consola

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

    Aceda a Nós de inquilino único

  2. Na coluna Nome, clique no nome do grupo de nós.

  3. Para partilhar o grupo de nós com todos os projetos na organização ou com projetos selecionados na organização, em Vista geral > Partilhado com, clique em Editar .

gcloud

Para atualizar as definições de partilha de um grupo de nós, use o seguinte gcloud compute sole-tenancy node-groups update comando.

gcloud compute sole-tenancy node-groups update NODE_GROUP \
    --zone=ZONE \
    --share-setting=SHARE_SETTING \
    --share-with=PROJECTS

Substitua o seguinte:

  • NODE_GROUP: o nome do grupo de nós cujas definições de partilha quer atualizar.

  • SHARE_SETTING: a definição de partilha para o grupo de nós. Defina como projects para partilhar com projetos específicos ou defina como organization para partilhar com toda a organização.

  • PROJECTS: uma lista de IDs de projetos ou números de projetos com os quais partilhar o grupo de nós. Só é necessário se definir SHARE_SETTING como projects.

REST

Para atualizar as definições de partilha de um grupo de nós, use o seguinte nodeGroups.patch método.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/nodeGroups/NODE_GROUP

{
  "shareSettings": {
    "shareType": SHARE_TYPE,
    "projectMap": {
      string: {
        "projectId": PROJECTS
      },
    }
  }
}

Substitua o seguinte:

  • PROJECT: o nome do projeto com os grupos de nós para atualizar as definições de partilha.

  • ZONE: a zona que contém os grupos de nós para atualizar as definições de partilha.

  • NODE_GROUP: o nome do grupo de nós cujas definições de partilha quer atualizar.

  • SHARE_TYPE: a definição de partilha para o grupo de nós. Defina como projects para partilhar com projetos específicos ou defina como organization para partilhar com toda a organização.

  • PROJECTS: uma lista de IDs de projetos ou números de projetos com os quais partilhar o grupo de nós. Só é necessário se definir SHARE_SETTING como SPECIFIC_PROJECTS.

Pare de partilhar um grupo de nós

Para parar de partilhar um grupo de nós com outros projetos ou com toda a organização, use a CLI gcloud ou o REST.

Consola

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

    Aceda a Nós de inquilino único

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

  3. Em Vista geral > Partilhado com, clique em Editar .

  4. Para parar de partilhar, escolha Não partilhar este grupo de nós com outros projetos.

gcloud

Para parar de partilhar um grupo de nós com outros projetos ou com toda a organização, use o seguinte gcloud compute sole-tenancy node-groups update comando.

gcloud compute sole-tenancy node-groups update NODE_GROUP \
    --zone=ZONE \
    --share-setting=local

Substitua NODE_GROUP pelo nome do grupo de nós que quer parar de partilhar.

REST

Para parar de partilhar um grupo de nós com outros projetos ou com toda a organização, use o seguinte nodeGroups.patch método.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/nodeGroups/NODE_GROUP

{
  "shareSettings": {
    "shareType": LOCAL
  }
}

Substitua o seguinte:

  • PROJECT: o nome do projeto com o grupo de nós para parar de partilhar

  • ZONE: a zona que contém o grupo de nós cuja partilha vai ser interrompida

  • NODE_GROUP: o nome do grupo de nós cuja partilha vai ser interrompida

Elimine um grupo de nós partilhado do projeto proprietário

Para eliminar um grupo de nós partilhado do projeto proprietário, use a Trusted Cloud consola, a CLI gcloud ou REST. Antes de eliminar um grupo de nós, pare todas as VMs que estão a ser executadas no grupo de nós.

Consola

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

    Aceda a Nós de inquilino único

  2. Na coluna Nome, clique no nome do grupo de nós.

  3. Clique em Eliminar.

gcloud

Para eliminar um grupo de nós partilhado do projeto proprietário, use o seguinte comando gcloud compute sole-tenancy node-groups delete.

gcloud compute sole-tenancy node-groups delete NODE_GROUP

Substitua NODE_GROUP pelo nome do grupo de nós a eliminar.

REST

Para eliminar um grupo de nós partilhado do projeto proprietário, use o seguinte nodeGroups.delete método.

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/nodeGroups/NODE_GROUP

Substitua o seguinte:

  • PROJECT: o nome do projeto com o grupo de nós a eliminar

  • ZONE: a zona que contém o grupo de nós a eliminar

  • NODE_GROUP: o nome do grupo de nós a eliminar