Configure equipes para sua frota

Esta página é destinada a administradores de plataformas que querem configurar e gerenciar o uso da frota para uma equipe. Os recursos de gerenciamento da equipe de frota só estão disponíveis para os usuários que ativaram o GKE Enterprise.

Nesta página, presumimos que você já tenha lido nossa visão geral sobre o gerenciamento da equipe de frotas.

Visão geral da configuração da equipe

É possível configurar equipes usando a Google Cloud CLI, o console do Google Cloud ou o Terraform.

O procedimento geral para configurar uma equipe é o seguinte:

  1. Selecione ou crie a frota em que você quer configurar o acesso da equipe e verifique se tem as permissões e APIs corretas para concluir a configuração.
  2. (Opcional, mas recomendado) Configure o controle de acesso para o Grupos do Google nos clusters da frota.
  3. Decida quais usuários compõe a equipe e garanta que eles tenham acesso à frota. Uma equipe pode incluir Grupos do Google (recomendado) e/ou contas individuais.
  4. Crie um escopo para a equipe.
  5. Adicione um ou mais (ou todos os) clusters de membros da frota ao escopo da equipe.
  6. Defina namespaces no nível da frota e associe-os ao escopo da equipe.
  7. Conceda aos membros da equipe acesso ao novo escopo usando um recurso RBACRoleBinding.
  8. (Opcional) Use o Config Sync para sincronizar recursos do Kubernetes com escopos e namespaces da equipe.

A equipe pode receber credenciais para acessar os respectivos clusters de escopo usando o Connect Gateway.

Configure a Google Cloud CLI

Mesmo que você crie escopos de equipe usando o console do Google Cloud, talvez ainda seja necessário configurar a CLI gcloud para concluir alguns pré-requisitos ao configurar sua frota, como ativar as APIs necessárias.

  1. Verifique se você tem a versão mais recente da CLI do Google Cloud, incluindo o componente alfa dela. Você precisa pelo menos da versão 419.0.0 para usar os comandos de gerenciamento de equipe da frota.

  2. Execute o seguinte comando para fazer login no Google Cloud:

    gcloud auth login
    
  3. Inicialize a CLI gcloud para usar com o projeto host da frota escolhida ou execute o seguinte comando para definir o projeto host de frota como padrão:

    gcloud config set project PROJECT_ID
    

    É possível usar a sinalização --project com qualquer um dos seguintes comandos para especificar um projeto de host de frota diferente, se necessário.

Configurar seus dispositivos

Selecione ou crie a frota em que você quer criar uma nova equipe. Veja diretrizes e exemplos para estruturar suas frotas em Exemplos de frotas e nos outros guias em Planejar sua frota.

Se você quiser criar uma frota nomeada em um projeto que ainda não tenha uma, execute o seguinte comando. Primeiro, configure a Google Cloud CLI:

  gcloud container fleet create \
    --display-name=NAME \
    --project=FLEET_HOST_PROJECT_ID

Se você não especificar um display-name, a nova frota será criada com um nome de exibição padrão com base no nome do projeto de host da frota.

Papéis do IAM obrigatórios

Se você não tiver roles/owner no projeto host da frota, precisará de roles/gkehub.admin para criar e configurar os escopos e os namespaces da equipe. Um proprietário de projeto pode conceder esse papel com o seguinte comando:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member user:USER_EMAIL_ADDRESS \
    --role='roles/gkehub.admin'

Ativar APIs

Verifique se todas as APIs necessárias estão ativadas no projeto host da frota, incluindo a API GKE Enterprise:

gcloud services enable --project=PROJECT_ID \
   gkehub.googleapis.com \
   container.googleapis.com \
   connectgateway.googleapis.com \
   cloudresourcemanager.googleapis.com \
   iam.googleapis.com \
   anthos.googleapis.com

Se você desativar a API GKE Enterprise depois de configurar o gerenciamento de equipes da frota, alguns aspectos do recurso continuarão funcionando, mas não será possível atualizar nem criar escopos das equipes ou namespaces das frotas.

Configurar clusters para controle de acesso com Grupos do Google

Embora seja possível configurar o acesso de uma equipe usando RBAC nos clusters de membros da frota de cada usuário, sem configurações adicionais de cluster, recomendamos conceder aos membros da equipe o acesso a clusters com base na participação em um Grupo do Google de equipe. Isso permite que você não precise configurar uma autorização separada para cada conta, simplificando o gerenciamento de políticas e facilitando a auditoria, sem a necessidade de adicionar/remover manualmente usuários individuais dos clusters quando eles entrarem ou saírem da equipe. Use os guias a seguir para garantir que os clusters que você quer atribuir aos escopos da equipe possam usar o Grupos do Google com o Connect Gateway para controle de acesso:

Conceder aos membros da equipe acesso à frota

Em seguida, decida ou descubra quais usuários formam a equipe e garanta que eles tenham acesso à frota. Como mencionado na seção anterior, recomendamos que você conceda aos membros acesso à equipe com base na associação ao Grupo do Google, embora o gerenciamento da equipe também permita que você conceda acesso a usuários individuais. Verifique se os Grupos do Google ou os indivíduos relevantes têm os papéis apropriados de Identity and Access Management (IAM) configurados para funcionar com clusters de frota:

gcloud projects add-iam-policy-binding PROJECT_ID \
   --member=group:TEAM_EMAIL \
   --role=roles/gkehub.viewer

gcloud projects add-iam-policy-binding PROJECT_ID \
   --member=group:TEAM_EMAIL \
   --role=roles/gkehub.gatewayEditor
  • PROJECT_ID é o ID do projeto host da frota
  • TEAM_EMAIL é o endereço de e-mail do Grupo do Google de uma equipe.

Esses comandos permitem que os membros da equipe vejam todos os clusters de frota no console do Google Cloud e (apenas para Grupos do Google) usem o Connect Gateway para fazer login em clusters de membros da frota com autorização baseada em Grupos do Google.

Configurar uma nova equipe

As instruções a seguir mostram como criar um novo escopo para uma equipe.

gcloud

Criar um escopo de equipe

Para criar um novo escopo de equipe em uma frota, execute o seguinte comando, em que SCOPE_NAME é o nome de identificação exclusivo que você escolheu para o novo escopo:

gcloud container fleet scopes create SCOPE_NAME

Adicionar clusters a um escopo da equipe

Somente os membros atuais da frota podem ser adicionados aos escopos de equipe. Essas instruções presumem que o cluster que você quer adicionar ao escopo já é um membro da frota. Se você precisar adicionar o cluster à sua frota, siga as instruções do tipo de cluster em Criar sua frota para registrar o cluster. Verifique se o cluster recém-registrado está configurado para usar Grupos do Google para controle de acesso, conforme descrito acima.

Um cluster de membro da frota pode ser adicionado a qualquer número de escopos de equipe no projeto host da frota.

Para adicionar um cluster a um escopo da equipe, execute o seguinte comando:

gcloud container fleet memberships bindings create BINDING_NAME \
  --membership MEMBERSHIP_NAME \
  --scope  SCOPE_NAME \
  --location MEMBERSHIP_LOCATION

Substitua:

  • BINDING_NAME é um nome que representa a relação entre o cluster e o escopo da equipe. Sugerimos usar MEMBERSHIP_NAME-SCOPE_NAME.
  • MEMBERSHIP_NAME é o identificador exclusivo na frota do cluster (geralmente o nome do cluster).
  • (opcional) MEMBERSHIP_LOCATION é o local de associação do cluster. Se você omitir isso, o valor será global, que é o padrão para registros de cluster.

Criar namespaces da frota

Para criar um namespace em um escopo da equipe, execute o seguinte comando:

gcloud container fleet scopes namespaces create NAMESPACE_NAME --scope=SCOPE_NAME

Substitua:

  • NAMESPACE_NAME: o nome exclusivo que você escolheu para o namespace na frota. Verifique se NAMESPACE_NAME não está em conflito com as restrições de nomenclatura de namespace da frota.
  • SCOPE_NAME: o escopo da equipe em que você quer usar o namespace.

Esse comando cria um namespace do Kubernetes chamado NAMESPACE_NAME em cada cluster no escopo da equipe. Os membros da equipe podem usar NAMESPACE_NAME como qualquer outro namespace do Kubernetes depois que você conceder acesso a eles ao respectivo escopo. Se você já tiver um namespace chamado NAMESPACE_NAME no escopo da equipe, ele será considerado parte do novo namespace da frota. Isso às vezes é chamado de integração do namespace.

Conceder acesso ao escopo da equipe com o controle de acesso baseado em função (RBAC)

Os membros da equipe podem receber acesso ao escopo usando o RBAC. Use o seguinte comando para conceder a um grupo do Google acesso a um escopo da equipe:

gcloud container fleet scopes rbacrolebindings create BINDING_NAME \
   --scope=SCOPE_NAME \
   --role=ROLE \
   --group=TEAM_EMAIL

Substitua:

  • BINDING_NAME é um nome de string para representar essa vinculação.
  • SCOPE_NAME é o identificador exclusivo do escopo da equipe.
  • ROLE é o papel do RBAC que você quer conceder aos membros da equipe, que pode ser admin, edit ou view.
  • TEAM_EMAIL é o endereço de e-mail do Grupo do Google da equipe.

Se você precisar conceder a um usuário individual acesso a um namespace, execute o seguinte comando, em que USER_EMAIL é o endereço de e-mail do ID do Google do usuário:

gcloud container fleet scopes rbacrolebindings create BINDING_NAME \
   --scope=SCOPE_NAME \
   --role=ROLE \
   --user=USER_EMAIL

Console

Criar um escopo de equipe

  1. Com o projeto host da frota selecionado, acesse a seção Equipes no console do Google Cloud.

    Acesse "Equipes"

  2. Na parte superior da página, clique em Criar escopo de equipe.

  3. Na página Team Basics, para Name, digite um nome exclusivo para o escopo da sua equipe. Não será possível alterar o nome depois que o escopo da equipe for criado.

  4. Para adicionar membros da equipe ao escopo, clique em Adicionar membro da equipe.

    • Em Tipo, selecione Usuário para adicionar um membro da equipe específico ou Grupo para adicionar um Grupo do Google (recomendado).
    • Em Usuário ou grupo, digite o endereço de e-mail do membro da equipe ou do grupo.
    • Em Papel, selecione Administrador, Editor ou Leitor para especificar o nível de acesso de o membro da equipe ou grupo ao escopo.
    • Para adicionar mais membros à equipe, repita as três etapas anteriores.
  5. Para criar o escopo da equipe sem adicionar clusters e namespaces nesta etapa, clique em Criar escopo de equipe. Caso contrário, prossiga para a seção a seguir para adicionar clusters ao escopo.

Adicionar clusters ao escopo da equipe

Para associar um cluster a um escopo de equipe, ele precisa ser um membro da frota atual. Se você precisar adicionar o cluster à sua frota, siga as instruções do tipo de cluster em Criar sua frota para registrar o cluster. Verifique se o cluster recém-registrado está configurado para usar Grupos do Google para controle de acesso, conforme descrito acima.

Um cluster de membro da frota pode ser adicionado a qualquer número de escopos das equipes no projeto host da frota, o que permite que diferentes equipes executem cargas de trabalho no mesmo cluster.

  1. Na página Noções básicas da equipe, depois de adicionar membros da equipe ao seu escopo, clique em Continuar.
  2. Na página Clusters, é possível selecionar os clusters de frota a serem associados a esse escopo de equipe. No menu suspenso Clusters, marque os clusters que você quer adicionar e clique em OK.

Criar namespaces da frota

Os membros da equipe podem usar namespaces da frota como qualquer outro namespace do Kubernetes. Quando você cria um namespace de frota, um namespace correspondente do Kubernetes é criado em todos os clusters no escopo de equipe, se ainda não houver um.

  1. Na página Clusters, depois de adicionar clusters ao escopo da equipe, clique em Continuar.
  2. Na página Namespaces, clique em Adicionar namespace.
  3. Para adicionar mais namespaces da frota ao escopo, repita a etapa anterior.
  4. Para criar o escopo da equipe, clique em Criar escopo da equipe. Após criar o escopo da equipe, clique no nome do escopo da equipe na seção Equipes para vê-lo e editá-lo, se necessário.

Terraform

Nesta seção, mostramos como configurar uma nova equipe usando o Terraform. Para mais informações e outros exemplos, consulte a documentação de referência dos seguintes recursos:

Criar um escopo de equipe

Para criar um escopo de equipe, use o bloco a seguir na configuração do Terraform.

  resource "google_gke_hub_scope" "TF_SCOPE_RESOURCE_NAME" {
    scope_id = "SCOPE_NAME"
  }

Substitua:

  • TF_SCOPE_RESOURCE_NAME: o nome que você escolhe para identificar exclusivamente o recurso google_gke_hub_scope do Terraform criado por esse bloco.
  • SCOPE_NAME: um nome de identificação exclusivo para o escopo da sua equipe.

Adicionar clusters ao escopo

Somente os membros atuais da frota podem ser adicionados aos escopos de equipe. Se você precisar adicionar o cluster à sua frota, siga as instruções do tipo de cluster em Criar sua frota para registrar o cluster. Verifique se o cluster recém-registrado está configurado para usar Grupos do Google para controle de acesso, conforme descrito acima.

Para adicionar um cluster a um escopo da equipe, use o bloco a seguir na configuração:

  resource "google_gke_hub_membership_binding" "TF_MEMBERSHIP_BINDING_RESOURCE_NAME" {
    membership_binding_id = "BINDING_NAME"
    scope = SCOPE_NAME
    membership_id = MEMBERSHIP_NAME
    location = "MEMBERSHIP_LOCATION"
  }

Substitua:

  • TF_MEMBERSHIP_BINDING_RESOURCE_NAME: um nome para identificar o recurso google_gke_hub_membership_binding criado por esse bloco.
  • BINDING_NAME é um nome que representa a relação entre o cluster e o escopo. Sugerimos usar MEMBERSHIP_NAME-SCOPE_NAME.
  • SCOPE_NAME: o nome do escopo da equipe.
  • MEMBERSHIP_NAME é o identificador exclusivo na frota do cluster (geralmente o nome do cluster).
  • MEMBERSHIP_LOCATION: o local da associação do cluster.

Criar namespaces da frota

Os membros da equipe podem usar namespaces da frota como qualquer outro namespace do Kubernetes. É possível criar um namespace ou integrar um já existente. Quando você cria um namespace de frota, um namespace correspondente do Kubernetes é criado em todos os clusters no escopo de equipe, se ainda não houver um.

Para criar um namespace de frota, use o seguinte bloco na configuração:

  resource "google_gke_hub_namespace" "TF_NAMESPACE_RESOURCE_NAME" {
    scope_namespace_id = "NAMESPACE_NAME"
    scope_id = SCOPE_NAME
    scope = SCOPE_NAME
  }

Substitua:

  • TF_NAMESPACE_RESOURCE_NAME: um nome para identificar o recurso google_gke_hub_namespace criado por esse bloco.
  • NAMESPACE_NAME: um nome exclusivo escolhido para o namespace da frota. Verifique se esse nome não entra em conflito com as restrições de nomenclatura do namespace da frota.
  • SCOPE_NAME: o nome do escopo da equipe em que o namespace da frota é criado.

Conceder acesso ao escopo com o RBAC

Os membros da equipe podem receber acesso ao escopo usando o RBAC. Por exemplo, veja uma configuração para conceder a um usuário individual acesso a um escopo da equipe:

  resource "google_gke_hub_scope_rbac_role_binding" "TF_RBAC_ROLE_BINDING_NAME" {
    scope_rbac_role_binding_id = "BINDING_NAME"
    scope_id = SCOPE_NAME
    user = USER_EMAIL
    role {
      predefined_role = "ROLE"
    }
  }

Substitua:

  • TF_RBAC_ROLE_BINDING_NAME: um nome para identificar o recurso google_gke_hub_scope_rbac_role_binding criado por esse bloco.
  • BINDING_NAME: um nome para representar essa vinculação.
  • SCOPE_NAME: o nome do escopo da equipe.
  • USER_EMAIL: o endereço de e-mail do usuário.
  • ROLE: o papel do RBAC que você quer conceder ao usuário, que pode ser admin, edit ou view.

Para conceder a um grupo do Google acesso a um escopo da equipe, use group no lugar de user na configuração anterior e use o endereço de e-mail do grupo do Google da equipe.

Acessar namespaces da frota

Depois que a configuração for concluída, os membros da equipe poderão acessar os namespaces no escopo recebendo as credenciais de cluster relevantes. Para receber credenciais de um cluster de membro da frota usando o Connect Gateway, execute o seguinte comando, em que MEMBERSHIP_NAME é o nome da associação de frota do cluster:

   gcloud container fleet memberships get-credentials  MEMBERSHIP_NAME

Para mais detalhes, consulte Como usar o Connect Gateway.

Gerenciar escopos da equipe

Use os seguintes comandos para gerenciar os escopos das equipes.

gcloud

Listar escopos das equipes

Para listar todos os escopos em uma frota, execute o seguinte comando:

gcloud container fleet scopes list

Para listar todos os escopos associados a um cluster, execute o seguinte comando:

gcloud container fleet memberships bindings list --membership MEMBERSHIP_NAME

Remover clusters de escopos das equipes

Para remover um cluster de um escopo, execute o seguinte comando:

gcloud container fleet memberships bindings delete BINDING_NAME --membership MEMBERSHIP_NAME

Excluir um escopo da equipe

Para excluir um escopo da frota, execute o seguinte comando:

gcloud container fleet scopes delete SCOPE_NAME

Console

Listar escopos das equipes

Para ver todos os escopos em uma frota, com o projeto host da frota selecionado, acesse a seção Equipes no console do Google Cloud.

Acesse "Equipes"

A página Equipes mostra uma lista de todos os escopos de equipe criados para sua frota e um resumo da utilização de recursos para cada escopo, incluindo o número de erros e reinicializações do contêiner.

Ver detalhes do escopo da equipe

Em cada escopo de equipe, é possível ver os rótulos associados a ele, os membros da equipe e os registros associados a ele.

  1. Na página Equipes, clique no escopo da equipe cujos detalhes você quer ver.
  2. Na guia Equipe, é possível ver os marcadores de escopo, se houver, e os membros da equipe que pertencem ao escopo.
  3. Clique na guia Registros para ver os registros do escopo da frota.

Adicionar ou excluir clusters em um escopo da equipe

Para adicionar ou excluir clusters em um escopo da equipe já existente:

  1. Acesse a página Equipes no Console do Google Cloud.

    Acesse "Equipes"

  2. Selecione o escopo da equipe em que você quer adicionar ou excluir clusters. A guia Clusters mostra uma lista dos clusters atualmente vinculados ao escopo.

Para adicionar clusters a um escopo da equipe:

  1. Na parte superior da página, clique em Adicionar clusters.
  2. No menu suspenso Clusters, selecione os clusters que você quer adicionar ao escopo e clique em OK.
  3. Clique em Atualizar escopo da equipe.

Para excluir clusters de um escopo da equipe:

  1. Selecione a guia Clusters, que mostra uma lista dos clusters atualmente vinculados ao escopo.
  2. Clique no ícone de lixeira ao lado do cluster que você quer excluir. Depois, clique em Remover para confirmar a exclusão.

Excluir um escopo

  1. Acesse a página Equipes no Console do Google Cloud.

    Acesse "Equipes"

  2. Selecione o escopo da equipe que você quer excluir.

  3. Para excluir o escopo, clique em Excluir na parte superior da página.

  4. Digite o nome do escopo para confirmar a exclusão e clique novamente em Excluir.

Gerenciar namespaces da frota

gcloud

Use os comandos a seguir para gerenciar namespaces nos escopos da equipe.

Listar namespaces da frota

Para listar todos os namespaces criados usando fleet scopes namespaces create em um escopo, execute o seguinte comando:

gcloud container fleet scopes namespaces list --scope=SCOPE_NAME

Excluir um namespace de frota

Para excluir um namespace de frota, execute o seguinte comando:

gcloud container fleet scopes namespaces delete NAMESPACE_NAME --scope=SCOPE_NAME

O que acontece quando você exclui um namespace de frota depende de como ele foi adicionado:

  • Se você criou um novo namespace de frota:esse comando excluirá o namespace da frota. Ele também exclui todos os namespaces do Kubernetes criados como resultado da criação do namespace da frota, junto com as cargas de trabalho.
  • Se você integrou um namespace já existente do Kubernetes: esse comando exclui o namespace da frota. O namespace original que você integrou não é excluído.

Console

Para gerenciar namespaces das frotas no seu escopo da equipe:

  1. Acesse a página Equipes no Console do Google Cloud.

    Acesse "Equipes"

  2. Selecione o escopo da equipe cujos namespaces da frota você quer gerenciar.

Listar namespaces da frota

No escopo da sua equipe, selecione a guia Namespaces, que mostra uma lista dos namespaces criados nesse escopo.

Ver detalhes do namespace

Para cada namespace de frota, é possível ver os rótulos associados a esse namespace, além das cargas de trabalho e registros filtrados por namespace.

  1. Selecione a guia Namespaces, que mostra uma lista dos namespaces da frota criados no escopo da equipe.
  2. Clique no namespace da frota cujos detalhes você quer conferir.
  3. Na guia Detalhes, é possível ver o namespace da frota e os identificadores de escopo.
    • Para visualizar as cargas de trabalho desse namespace, clique em Ver cargas de trabalho.
    • Na página Cargas de trabalho, você vê as cargas de trabalho já filtradas pelo namespace e clusters associados ao escopo de equipe desse namespace.
  4. Na guia Registros, é possível ver os registros do escopo da frota por namespace.

Adicionar namespaces das frotas a um escopo da equipe

  1. Para adicionar um novo namespace de frota, clique em Adicionar namespaces na parte de cima da página.
  2. Digite o nome do novo namespace da frota, garantindo que ele não entre em conflito com as restrições de nomenclatura do namespace da frota. Para adicionar mais namespaces, clique em Adicionar namespace.
  3. Clique em Atualizar escopo da equipe.

Excluir um namespace de frota

  1. Selecione a guia Namespaces, que mostra uma lista dos namespaces da frota criados no escopo da equipe.
  2. Clique no ícone da lixeira ao lado do namespace que você quer excluir.
  3. Digite o nome do namespace e clique em Excluir novamente para confirmar a exclusão.

O que acontece quando você faz isso depende de como o namespace foi adicionado:

  • Se você criou um novo namespace de frota:ele será excluído. Todos os namespaces do Kubernetes criados como resultado da criação do namespace da frota também são excluídos, assim como as cargas de trabalho deles.
  • Se você integrou um namespace atual do Kubernetes:o namespace da frota será excluído. No entanto, o namespace original que você integrou não será excluído.

Atualizar o nome do namespace de uma frota

Não é possível editar o namespace de uma frota depois que ela for criada. Se você precisar atualizar o nome de namespace de uma frota, exclua o namespace e crie um novo no escopo da equipe.

Gerenciar o acesso da equipe

gcloud

Para atualizar o acesso ao escopo da equipe (por exemplo, para conceder aos membros da equipe um papel diferente ou atualizar o endereço de e-mail de um grupo), use o comando update correspondente:

gcloud container fleet scopes rbacrolebindings update BINDING_NAME \
   --scope=SCOPE_NAME \
   --role=ROLE \
   --group=TEAM_EMAIL

ou

gcloud alpha container fleet namespaces rbacrolebindings update BINDING_NAME \
   --scope=SCOPE_NAME \
   --role=ROLE \
   --user=USER_EMAIL

Substitua:

  • BINDING_NAME é um nome de string para representar essa vinculação.
  • SCOPE_NAME é o identificador exclusivo do escopo da equipe.
  • (opcional) ROLE é o papel que você quer alterar
  • (opcional) TEAM_EMAIL ou USER_EMAIL é o endereço de e-mail que você quer alterar.

Console

Adicionar ou remover membros da equipe

Para gerenciar membros da equipe em um escopo da equipe:

  1. Acesse a página Equipes no Console do Google Cloud.

    Acesse "Equipes"

  2. Selecione o escopo da equipe cujos membros você quer gerenciar.

Para adicionar novos membros da equipe ao escopo:

  1. Na parte de cima da página, clique em Adicionar membros da equipe. Siga as instruções detalhadas na seção Criar um escopo de equipe.
  2. Clique em Atualizar escopo da equipe.

Para remover membros da equipe do escopo:

  1. Na guia Equipe, clique no ícone da lixeira ao lado do membro da equipe que você quer remover do escopo da equipe.
  2. Clique novamente em Excluir para confirmar a ação.

Não é possível editar os detalhes de um membro da equipe no console do Google Cloud. Para atualizar o acesso ao escopo no console do Google Cloud (por exemplo, conceder aos membros da equipe um papel diferente ou atualizar o endereço de e-mail de um grupo), remova o membro da equipe do escopo e adicione-o novamente com os novos detalhes.

Delegar gerenciamento de namespace

Normalmente, apenas os administradores da plataforma podem criar escopos de equipe e namespaces da frota. No entanto, como administrador da plataforma, talvez você queira delegar a criação e/ou o gerenciamento de namespaces aos administradores de equipe. Isso permite que os administradores de equipe criem e gerenciem namespaces da frota nos escopos deles.

Para delegar o gerenciamento de namespaces, crie um papel personalizado do IAM no projeto com as seguintes permissões:

gkehub.namespaces.get
gkehub.namespaces.create
gkehub.namespaces.update
gkehub.namespaces.delete
gkehub.namespaces.list

Você pode personalizar a função da maneira que achar melhor. Por exemplo, se você não quiser permitir a exclusão de namespaces da frota, omita a permissão gkehub.namespaces.delete do papel personalizado.

Após definir o papel personalizado, use o comando a seguir para conceder explicitamente a permissão de gerenciamento de namespaces para um escopo de equipe específico:

gcloud container fleet scopes add-iam-policy-binding SCOPE_NAME \
    --member='user:USER_EMAIL' \
    --role='projects/PROJECT_ID/roles/CUSTOM_ROLE_NAME

Somente o usuário identificado por USER_EMAIL poderá gerenciar os namespaces das frotas para esse escopo da equipe. Outros usuários vão receber uma mensagem de erro.

Restrições de nomenclatura de namespace da frota

Os nomes a seguir são reservados e têm uso proibido na criação de um namespace de frota em um escopo de equipe:

  • default
  • kube-system
  • gke-connect
  • kube-node-lease
  • kube-public
  • istio-system
  • gatekeeper-system
  • asm-system
  • config-management-system

Gerenciar rótulos

Para identificar e gerenciar os escopos, use a Google Cloud CLI para criar e gerenciar identificadores dos namespaces e escopos de equipe da frota.

Os identificadores adicionados a um escopo de equipe são herdados por todos os namespaces da frota no escopo, o que significa que eles são anexados a todos os namespaces do Kubernetes nos clusters do escopo. Os identificadores adicionados diretamente a um namespace da frota são anexados apenas aos namespaces correspondentes do Kubernetes. Se um rótulo de escopo de equipe e um rótulo de namespace da frota tiverem a mesma chave, o rótulo do escopo da equipe terá prioridade.

É possível trabalhar em vários pares de chave-valor de uma só vez adicionando uma lista de pares de chave-valor separada por vírgulas.

Gerenciar identificadores de namespace da frota

Criar um namespace de frota com identificadores

Para criar um namespace de frota com identificadores, execute o seguinte comando:

gcloud container fleet scopes namespaces create NAMESPACE_NAME \
    --scope SCOPE_NAME \
    --namespace-labels KEY=VALUE

Substitua:

  • NAMESPACE_NAME: o nome exclusivo que você escolheu para o namespace na frota.
  • SCOPE_NAME: o escopo da equipe em que você quer usar o namespace.
  • KEY: a chave do par de chave-valor do rótulo.
  • VALUE: o valor do par de chave-valor do rótulo.

Adicionar ou atualizar rótulos para namespaces da frota atuais

Para adicionar ou atualizar rótulos de um namespace atual, execute o seguinte comando:

gcloud container fleet scopes namespaces update NAMESPACE_NAME \
    --scope SCOPE_NAME \
    --update-namespace-labels KEY=VALUE

Excluir identificadores de namespace da frota

Para excluir um rótulo de namespace de frota específico, execute o seguinte comando:

gcloud container fleet scopes namespaces update NAMESPACE_NAME \
    --scope SCOPE_NAME \
    --remove-namespace-labels KEY

Substitua KEY por uma lista separada por vírgulas das chaves dos rótulos que você quer remover.

Para excluir todos os rótulos de namespace da frota, execute o seguinte comando:

gcloud container fleet scopes namespaces update NAMESPACE_NAME \
    --scope SCOPE_NAME \
    --clear-namespace-labels

Gerenciar rótulos de escopo da equipe

Criar um escopo da equipe com rótulos

Para criar um escopo com um rótulo, execute o seguinte comando:

gcloud container fleet scopes create SCOPE_NAME \
    --namespace-labels KEY=VALUE

Substitua:

  • SCOPE_NAME: o nome de identificação exclusivo que você escolheu para o novo escopo da equipe.
  • KEY: a chave do par de chave-valor do rótulo.
  • VALUE: o valor do par de chave-valor do rótulo.

Adicionar ou atualizar rótulos para escopos das equipes já existentes

Para adicionar ou atualizar rótulos para um escopo existente, execute o seguinte comando:

gcloud container fleet scopes update SCOPE_NAME \
    --update-namespace-labels KEY=VALUE

Excluir rótulos de escopo da equipe

Para excluir rótulos específicos, execute o seguinte comando:

gcloud container fleet scopes update SCOPE_NAME \
     --remove-namespace-labels KEY

Substitua KEY por uma lista separada por vírgulas das chaves dos rótulos que você quer remover.

Para excluir todos os rótulos, execute o seguinte comando:

gcloud container fleet scopes update SCOPE_NAME \
    --clear-namespace-labels

Resolver problemas

Se não for possível atualizar ou criar os recursos de gerenciamento de equipes da frota, verifique se a API GKE Enterprise está ativada. Se você desativar a API GKE Enterprise no projeto host da frota depois de configurar o gerenciamento de equipes, ocorrerá isto:

  • Todos os escopos das equipes e namespaces das frotas que você criou continuarão funcionando como esperado, mas não poderão ser atualizados.
  • Os escopos das equipes e os namespaces das frotas já existentes poderão ser excluídos.
  • Não será possível criar novos escopos das equipes nem namespaces das frotas.

A seguir