Este documento explica como disponibilizar o Google Distributed Cloud para gerenciamento no console do Google Cloud. Isso inclui gerenciamento básico, como a capacidade de fazer login em clusters e a visualização das cargas de trabalho, além de como ativar o gerenciamento do ciclo de vida do cluster para fazer upgrade, atualizar e excluir clusters.
Membros da frota e o console
Todo o Google Distributed Cloud precisa ser membros de uma frota, uma maneira unificada de visualizar e gerenciar vários clusters e as cargas de trabalho deles. Cada frota de clusters é associada a um projeto host da frota.
No Google Distributed Cloud, um cluster de usuário é registrado em uma frota no momento da criação:
Ao criar um cluster usando
bmctl
, especifique seu projeto de host de frota na seçãogkeConnect
do arquivo de configuração do cluster. O Google Distributed Cloud usa essas informações para registrar o cluster no projeto de frota especificado.Quando você cria um cluster de usuário no console, o cluster se torna automaticamente um membro da frota no projeto selecionado no console.
Os membros da frota fora do Google Cloud, como o Google Distributed Cloud, são exibidos no console no projeto host da frota, com outros clusters de frota, como o GKE no Google Cloud. A extensão em que é possível gerenciar o Google Distributed Cloud pelo console depende do seguinte:
Se você tiver configurado a autenticação, poderá fazer login nos clusters e ver as cargas de trabalho e outros detalhes deles.
Se você tiver ativado o gerenciamento do ciclo de vida do cluster para o cluster, também será possível fazer upgrade, atualizar ou excluir clusters de usuários usando o console. Para fazer isso, o cluster precisa ser gerenciado por um serviço chamado API GKE On-Prem. Para clusters de usuários criados no console, o gerenciamento do ciclo de vida do cluster é ativado no momento da criação do cluster ou é possível ativar esse recurso posteriormente para clusters de usuários criados usando
bmctl
. Se esse recurso não estiver ativado, só será possível gerenciar o ciclo de vida do cluster usandobmctl
na estação de trabalho do administrador.
Ver clusters registrados
Todos os clusters da frota são exibidos na página Clusters do GKE no console. Isso fornece uma visão geral de toda a frota e, para o Google Distributed Cloud, permite ver quais clusters são gerenciados pela API GKE On-Prem.
Para ver os clusters da frota:
No console, acesse a página de visão geral dos clusters do Google Kubernetes Engine.
Selecione o projeto do Google Cloud.
Se Bare metal for exibido na coluna Tipo, o cluster será gerenciado pela API GKE On-Prem.
Se Externo for exibido na coluna Tipo, o cluster não vai ser gerenciado pela API GKE On-Prem.
Para ver mais detalhes sobre um cluster, faça login e autentique-se nele. Para fazer isso, siga estas etapas:
- Configurar um método de autenticação
- Conceder aos usuários papéis específicos do Identity and Access Management
Configurar a autenticação
Conforme descrito anteriormente, todos os clusters de frota aparecem na página de clusters do GKE no console. No entanto, para ver mais detalhes, como nós e cargas de trabalho (e para executar tarefas de gerenciamento do ciclo de vida do cluster, se o recurso estiver ativado), faça login e autentique-se no cluster. Para fazer isso, os clusters registrados precisam ser configurados com um dos seguintes métodos de autenticação:
Identidade do Google: essa opção permite que você faça login usando sua identidade do Google Cloud, que é o endereço de e-mail associado à sua conta do Google Cloud. Use essa opção se os usuários já tiverem acesso ao Google Cloud com uma identidade do Google. Se você criou o cluster no console, é possível fazer login nele usando sua identidade do Google, mas precisará configurar a autenticação para outros usuários.
O login com a identidade do Google é a abordagem mais simples para autenticação no console. Portanto, descrevemos em mais detalhes como configurar isso em Configurar a autenticação de identidade do Google.
OpenID Connect (OIDC): essa opção permite fazer login nos clusters pelo console usando a identidade de um provedor de identidade OIDC de terceiros, como o Okta ou o Microsoft AD FS. Use essa opção se os usuários tiverem nomes de usuário, senhas e associações de grupo de segurança existentes do seu provedor. Saiba como configurar a autenticação do OIDC de terceiros para seus clusters nos guias a seguir:
Configurar clusters do GKE Identity Service com OIDC: este guia mostra como configurar a autenticação do OIDC em um cluster por cluster.
Configurar o GKE Identity Service em uma frota: essa opção permite configurar o OIDC no nível da frota.
Token do portador: se as soluções fornecidas pelo Google acima não forem adequadas para sua organização, configure a autenticação usando uma conta de serviço do Kubernetes e o token do portador para fazer login. Para mais detalhes, consulte Configurar usando um token do portador.
Conceder os papéis necessários
O acesso ao console é controlado pelo Google Cloud IAM. Para gerenciar o ciclo de vida do cluster no console, é necessário conceder alguns papéis do IAM a usuários que não sejam proprietários de projetos:
Para permitir que os usuários acessem o console, conceda pelo menos os seguintes papéis:
roles/container.viewer
Com esse papel, os usuários podem ver a página de clusters do GKE e outros recursos do contêiner no console. Para detalhes sobre as permissões incluídas nesse papel ou para conceder um papel com permissões de leitura e gravação, consulte Papéis do Kubernetes Engine na documentação do IAM.roles/gkehub.viewer
. Esse papel permite que os usuários vejam os clusters fora do Google Cloud no console. Para detalhes sobre as permissões incluídas nesse papel ou para conceder um papel com permissões de leitura e gravação, consulte Papéis do GKE Hub na documentação do IAM.
Para permitir que os usuários gerenciem o ciclo de vida do cluster no console, conceda o papel
roles/gkeonprem.admin
do IAM. O papel de IAMroles/gkeonprem.admin
concede aos usuários acesso administrativo à API GKE On-Prem, que o console usa para gerenciar o ciclo de vida do cluster. Para ver detalhes sobre as permissões incluídas nesse papel, consulte Papéis do GKE On-Prem na documentação do IAM.
Os comandos a seguir mostram como conceder os papéis mínimos necessários para gerenciar o ciclo de vida do cluster no console:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=MEMBER \ --role=roles/container.viewer gcloud projects add-iam-policy-binding PROJECT_ID \ --member=MEMBER \ --role=roles/gkehub.viewer gcloud projects add-iam-policy-binding PROJECT_ID \ --member=MEMBER \ --role=roles/gkeonprem.admin
onde:
PROJECT_ID
é o projeto host da frota. Para clusters criados usandobmctl
, esse é o projeto que você configurou na seçãogkeConnect
do arquivo de configuração do cluster de usuário. Para clusters criados no console, esse é o projeto que você escolheu quando o cluster foi criado.MEMBER
é o endereço de e-mail do usuário no formatouser:emailID
, por exemplo:user:alice@example.com
Ativar o gerenciamento do ciclo de vida do cluster no console
Os clusters de usuário criados no console são gerenciados automaticamente pela
API GKE On-Prem e permitem realizar tarefas de gerenciamento de ciclo de vida
do cluster no console. Se você quiser ativar esse recurso para clusters de usuários criados usando bmctl
, siga as etapas em Configurar um cluster de usuário para ser gerenciado pela API GKE On-Prem.
Quando o gerenciamento do ciclo de vida do cluster está ativado, é possível atualizar os clusters
no console:
- Atualizar clusters de usuários
- Adicionar ou remover pools de nós em clusters de usuários
- Excluir clusters de usuários
Configurar a autenticação de identidade do Google
Para permitir que os usuários façam login no cluster usando a identidade do Google deles, é necessário configurar o seguinte:
Os usuários precisam de papéis específicos do Identity and Access Management (IAM) para ver e interagir com clusters no console da página Clusters do GKE.
Os usuários precisam ser adicionados às políticas de controle de acesso baseado em papéis (RBAC, na sigla em inglês) do Kubernetes de que o gateway de conexão precisa para acessar o servidor da API Kubernetes do cluster ao usar o agente do Connect.
Configurar a autorização do RBAC
O servidor da API Kubernetes de cada cluster precisa ser capaz de autorizar solicitações originadas do console. Para configurar a autorização, é necessário configurar políticas de controle de acesso baseado em papéis (RBAC) do Kubernetes em cada cluster. Se você criou o cluster no console, a API GKE On-Prem adiciona a conta de usuário como administrador e cria políticas de RBAC apropriadas que concedem acesso administrativo total ao cluster.
CLI da gcloud
Para aplicar as políticas do RBAC aos usuários, siga estas etapas na estação de trabalho do administrador:
Execute os comandos a seguir para fazer login com sua Conta do Google e atualizar os componentes:
gcloud auth login gcloud components update
Gere e aplique as políticas do RBAC ao cluster para usuários e contas de serviço:
gcloud container fleet memberships generate-gateway-rbac \ --membership=MEMBERSHIP_NAME \ --role=ROLE \ --users=USERS \ --project=PROJECT_ID \ --kubeconfig=KUBECONFIG_PATH \ --context=KUBECONFIG_CONTEXT \ --apply
Substitua:
- MEMBERSHIP_NAME: o nome usado para representar o cluster na frota dele de maneira exclusiva. No Google Distributed Cloud, o nome da assinatura e do cluster são iguais.
- ROLE: o papel do Kubernetes que você quer conceder aos usuários no
cluster. Para conceder aos usuários acesso total a todos os recursos do cluster em todos os namespaces, especifique
clusterrole/cluster-admin
. Para restringir o acesso, crie um papel personalizado, por exemplo:role/mynamespace/namespace-reader
. É preciso que o papel personalizado exista antes da execução do comando. - USERS: os endereços de e-mail dos usuários (contas de usuário ou contas de serviço) aos quais você quer conceder as permissões como uma lista separada por vírgulas. Por exemplo,
--users=foo@example.com,test-acct@test-project.iam.gserviceaccount.com
. - PROJECT_ID O ID do projeto host da frota.
- KUBECONFIG_PATH: o caminho local do arquivo kubeconfig que contém uma entrada para o cluster.
KUBECONFIG_CONTEXT: o contexto do cluster como ele aparece no arquivo kubeconfig. É possível conseguir o contexto atual pela linha de comando executando
kubectl config current-context
. Independentemente de você usar o contexto atual, verifique se ele funciona para acessar o cluster. Para isso, basta executar um comando simples como:kubectl get namespaces \ --kubeconfig=KUBECONFIG_PATH \ --context=KUBECONFIG_CONTEXT
Depois de executar
gcloud container fleet memberships generate-gateway-rbac
, você verá algo como o seguinte no fim da saída, de maneira truncada para facilitar a leitura:Validating input arguments. Specified Cluster Role is: clusterrole/cluster-admin Generated RBAC policy is: -------------------------------------------- ... Applying the generate RBAC policy to cluster with kubeconfig: /usr/local/google/home/foo/.kube/config, context: kind-kind Writing RBAC policy for user: foo@example.com to cluster. Successfully applied the RBAC policy to cluster.
Esse é o contexto para acessar o cluster pelo gateway de conexão.
Para mais detalhes sobre o comando
generate-gateway-rbac
, consulte o guia de referência da CLI gcloud.
bmctl
Para aplicar as políticas do RBAC aos usuários, siga estas etapas na estação de trabalho do administrador:
Adicione a seção
clusterSecurity.authorization
ao arquivo de configuração do cluster. Especifique o endereço de e-mail e o endereço de e-mail de outros usuários que precisam administrar o cluster. Exemplo:... clusterSecurity: authorization: clusterAdmin: gcpAccounts: [alex@example.com,hao@example.com,sasha@example.com] ...
Atualize o cluster:
bmctl update cluster \ -c CLUSTER_NAME \ --kubeconfig=KUBECONFIG
Faça as mudanças a seguir:
- Substitua CLUSTER_NAME pelo nome do cluster que você quer atualizar.
- Se o cluster for de autogerenciamento, como o cluster de administrador ou independente, substitua KUBECONFIG pelo caminho para o arquivo kubeconfig do cluster. Se o cluster for de usuário, substitua KUBECONFIG pelo caminho para o arquivo kubeconfig do cluster de admin.
Mais informações
- Visão geral do gerenciamento de frotas
- Trabalhar com clusters no Console do Google Cloud
- Visão geral do Connect
- Visão geral do agente do Connect