Faça a gestão de clusters a partir da consola Google Cloud

Este documento explica como disponibilizar para gestão naGoogle Cloud consola os clusters de administrador e de utilizador criados com o software Google Distributed Cloud em hardware não processado. As capacidades de gestão de clusters incluem a capacidade de iniciar sessão em clusters, ver cargas de trabalho, atualizar, atualizar e eliminar clusters.

Membros da frota e a consola

Todos os clusters têm de ser membros de uma frota, uma forma unificada de ver e gerir vários clusters e as respetivas cargas de trabalho. Cada frota de clusters está associada a um projeto anfitrião da frota.

Todos os clusters são registados numa frota no momento da criação:

  • Quando cria um cluster com o bmctl, especifica o projeto anfitrião da frota na secção gkeConnect do ficheiro de configuração do cluster. O cluster torna-se um membro da frota do projeto especificado.

  • Quando cria um cluster de administrador ou de utilizador com um cliente da API GKE On-Prem padrão (a consola, a Google Cloud CLI ou o Terraform), o cluster torna-se um membro da frota no projeto especificado.

Os membros da frota fora do Google Cloud, como o Google Distributed Cloud, são apresentados na consola no projeto anfitrião da frota, juntamente com outros clusters da frota, como o GKE on Google Cloud. A medida em que pode gerir clusters bare metal a partir da consola depende do seguinte:

  • Se configurou a autenticação, pode iniciar sessão nos seus clusters e ver as respetivas cargas de trabalho e outros detalhes.

  • Se tiver ativado a gestão do ciclo de vida do cluster para o cluster, pode atualizar os clusters de administrador e de utilizadores através da consola. Além disso, pode usar a consola para atualizar e eliminar clusters de utilizadores. Se esta funcionalidade não estiver ativada, só pode gerir o ciclo de vida do cluster através do bmctl na sua estação de trabalho de administrador.

Veja os clusters registados

Todos os seus clusters são apresentados na página Clusters do GKE na consola. Isto dá-lhe uma vista geral de toda a sua frota e, para o Google Distributed Cloud, permite-lhe ver que clusters são geridos pela API GKE On-Prem.

Para ver os clusters da frota:

  1. Na consola, aceda à página Vista geral dos clusters do Google Kubernetes Engine.

    Aceda aos clusters do GKE

  2. Selecione o Google Cloud projeto.

    • Se for apresentado Bare metal na coluna Tipo, o cluster é gerido pela API GKE On-Prem. Tenha em atenção que apenas os clusters de administrador e de utilizador podem ser geridos pela API GKE On-Prem.

    • Se for apresentado Externo na coluna Tipo, o cluster não é gerido pela API GKE On-Prem.

Para ver mais detalhes sobre um cluster, tem de iniciar sessão e autenticar-se no cluster. Para o fazer, tem de seguir estes passos:

Configure a autenticação

Conforme descrito anteriormente, todos os clusters aparecem na página de clusters do GKE na consola. No entanto, para ver mais detalhes, como nós e cargas de trabalho (e para realizar tarefas de gestão do ciclo de vida do cluster se a funcionalidade estiver ativada), tem de iniciar sessão e autenticar-se no cluster. Para o fazer, os seus clusters têm de estar configurados com um dos seguintes métodos de autenticação:

  • Identidade Google: esta opção permite-lhe iniciar sessão através da sua Google Cloud identidade, que é o endereço de email associado à sua Google Cloud conta. Use esta opção se os utilizadores já tiverem acesso a Google Cloud com a respetiva identidade Google. Se criou o cluster na consola, pode iniciar sessão no cluster com a sua identidade Google, mas tem de configurar a autenticação para outros utilizadores.

    O início de sessão com a identidade Google é a abordagem mais simples à autenticação na consola, pelo que descrevemos como configurar esta opção mais detalhadamente no artigo Configure a autenticação de identidade Google.

  • OpenID Connect (OIDC): esta opção permite-lhe iniciar sessão em clusters a partir da consola através da respetiva identidade de um fornecedor de identidade OIDC de terceiros, como o Okta ou o Microsoft AD FS. Pode querer usar esta opção se os seus utilizadores tiverem nomes de utilizador, palavras-passe e associações a grupos de segurança existentes do seu fornecedor. Pode saber como configurar a autenticação OIDC de terceiros para os seus clusters nos seguintes guias:

  • Token de autorização: se as soluções fornecidas pela Google acima não forem adequadas para a sua organização, pode configurar a autenticação através de uma conta de serviço do Kubernetes e usar o respetivo token de autorização para iniciar sessão. Para ver detalhes, consulte o artigo Configure a utilização de um token de portador.

Conceda as funções necessárias

O acesso à consola é controlado pela gestão de identidade e de acesso (IAM). Para gerir o ciclo de vida do cluster na consola, tem de conceder algumas funções do IAM a utilizadores que não sejam proprietários do projeto:

  • Para permitir que os utilizadores acedam à consola, tem de conceder, no mínimo, as seguintes funções:

    • roles/container.viewer: esta função permite que os utilizadores vejam a página Clusters do GKE e outros recursos de contentores na consola. Para ver detalhes sobre as autorizações incluídas nesta função ou para conceder uma função com autorizações de leitura e escrita, consulte as funções do Kubernetes Engine na documentação do IAM.

    • roles/gkehub.viewer: esta função permite que os utilizadores vejam clusters fora do Google Cloud na consola. Para ver detalhes sobre as autorizações incluídas nesta função ou para conceder uma função com autorizações de leitura e escrita, consulte as funções do GKE Hub na documentação do IAM.

  • Para permitir que os utilizadores façam a gestão do ciclo de vida do cluster na consola, atribua a função do roles/gkeonprem.adminIAM. A função roles/gkeonprem.admin concede aos utilizadores acesso administrativo à API GKE On-Prem, que a consola usa para gerir o ciclo de vida do cluster. Para ver detalhes sobre as autorizações incluídas nesta função, consulte o artigo Funções do GKE On-Prem na documentação da IAM.

Os comandos seguintes mostram como conceder as funções mínimas necessárias para gerir o ciclo de vida do cluster na consola:

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

where:

  • PROJECT_ID é o projeto anfitrião da frota. Para clusters criados com bmctl, este é o projeto que configurou na secção gkeConnect do ficheiro de configuração do cluster de utilizadores. Para os clusters criados na consola, este é o projeto que escolheu quando o cluster foi criado.

  • MEMBER é o endereço de email do utilizador no formato user:emailID, por exemplo: user:alice@example.com

Ative a gestão do ciclo de vida do cluster na consola

Os clusters de administrador e de utilizador criados através de ferramentas padrão (a consola, a CLI gcloud ou o Terraform) são inscritos automaticamente na API GKE On-Prem, que lhe permite realizar tarefas de gestão do ciclo de vida do cluster na consola. No Google Distributed Cloud 1.16 e superior, quando cria clusters de utilizadores e de administrador com bmctl, estes são inscritos na API GKE On-Prem por predefinição. Se precisar de inscrever um cluster na API GKE On-Prem, siga os passos em Configure um cluster para ser gerido pela API GKE On-Prem.

Configure a autenticação de identidade da Google

Para permitir que os utilizadores iniciem sessão no cluster com a respetiva identidade Google, tem de configurar o seguinte:

  • Os utilizadores precisam de funções específicas de gestão de identidades e acessos (IAM) para poderem ver e interagir com clusters na consola na página Clusters do GKE.

  • Os utilizadores têm de ser adicionados às políticas de controlo de acesso baseado em funções (CABF) do Kubernetes que o gateway de ligação precisa para aceder ao servidor da API Kubernetes do cluster através do agente Connect.

Configure a autorização RBAC

O servidor da API Kubernetes de cada cluster tem de poder autorizar pedidos que provenham da consola. Para configurar a autorização, tem de configurar as políticas de controlo de acesso baseado em funções (RBAC) do Kubernetes para os utilizadores em cada cluster. A sua Conta Google é adicionada como administrador com acesso total a um cluster de utilizadores nos seguintes casos:

  • Criou o cluster de utilizadores na consola.

  • Criou o cluster de utilizadores através da CLI gcloud e a sua Conta Google foi especificada na flag --admin-users no comando de criação do cluster.

  • Criou o cluster de utilizadores através do Terraform e a sua Conta Google foi especificada no campo authorization.admin_users.username.

  • Criou o cluster de utilizadores através da app bmctl e configurou a sua Conta Google no clusterSecurity.authorization.clusterAdmin.gcpAccounts.

Pode adicionar outras pessoas como administradores depois de criar o cluster. Pode usar qualquer uma das seguintes formas para conceder acesso administrativo ao cluster. São fornecidos dois comandos gcloud diferentes.

  • O comando gcloud ... generate-gateway-rbac tem de ser executado na sua estação de trabalho de administrador porque requer acesso ao kubeconfig e ao contexto do cluster (que normalmente só estão na sua estação de trabalho de administrador). O comando generate-gateway-rbac permite-lhe personalizar as políticas de RBAC, mas os endereços de email dos utilizadores não são apresentados como administradores na secção Detalhes do cluster na consola.

  • O comando gcloud ... update pode ser executado na sua estação de trabalho de administrador ou em qualquer computador que tenha acesso à API GKE On-Prem.

Tenha em atenção que, se criou um cluster de administrador na Google Cloud consola, tem acesso só de leitura ao cluster. Se quiser que lhe seja atribuída a função de clusterrole/cluster-admin, alguém com essa função tem de o adicionar através do comando gcloud ... generate-gateway-rbac.

generate-gateway-rbac

Para aplicar as políticas de RBAC aos utilizadores, siga os passos na estação de trabalho de administração:

  1. Execute o seguinte comando para atualizar os componentes (se necessário):

    gcloud components update
    
  2. Gere e aplique as políticas RBAC ao seu cluster para utilizadores 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 o seguinte:

    • MEMBERSHIP_NAME: o nome usado para representar exclusivamente o cluster na respetiva frota. No Google Distributed Cloud, o nome da associação e o nome do cluster são iguais.
    • ROLE: a função do Kubernetes que quer conceder aos utilizadores no cluster. Para conceder aos utilizadores acesso total a todos os recursos no cluster em todos os espaços de nomes, especifique clusterrole/cluster-admin. Para conceder acesso de leitura, especifique clusterrole/view. Para restringir o acesso, crie uma função personalizada, por exemplo: role/mynamespace/namespace-reader. A função personalizada já tem de existir antes de executar o comando.
    • USERS: os endereços de email dos utilizadores (contas de utilizador ou contas de serviço) aos quais quer conceder as autorizações, como uma lista separada por vírgulas. Por exemplo: --users=222larabrown@gmail.com,test-acct@test-project.iam.gserviceaccount.com.
    • PROJECT_ID: o ID do projeto do projeto anfitrião da frota.
    • KUBECONFIG_PATH: o caminho local do seu ficheiro kubeconfig que contém uma entrada para o cluster.
    • KUBECONFIG_CONTEXT: o contexto do cluster, tal como aparece no ficheiro kubeconfig. Pode obter o contexto atual na linha de comandos executando kubectl config current-context. Quer use ou não o contexto atual, certifique-se de que funciona para aceder ao cluster executando um comando como:

      kubectl get namespaces \
        --kubeconfig=KUBECONFIG_PATH \
        --context=KUBECONFIG_CONTEXT

    Depois de executar gcloud container fleet memberships generate-gateway-rbac, vê algo semelhante ao seguinte no final do resultado, que é truncado 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.
    

    Este é o contexto para aceder ao cluster através do gateway de ligação.

    Para mais detalhes sobre o comando generate-gateway-rbac, consulte o guia de referência da CLI gcloud.

update

  1. Execute o seguinte comando para atualizar os componentes:

    gcloud components update
    
  2. Para cada utilizador ao qual tem de ser concedida a função clusterrole/cluster-admin, inclua a flag --admin-users e execute o seguinte comando. Não pode especificar vários utilizadores numa única flag. Certifique-se de que inclui a sua Conta Google no comando, uma vez que o comando substitui a lista de concessões pelos utilizadores que especificar no comando.

    gcloud container bare-metal clusters update USER_CLUSTER_NAME \
      --admin-users YOUR_GOOGLE_ACCOUNT \
      --admin-users ADMIN_GOOGLE_ACCOUNT_1 \
    

Além de conceder a função do Kubernetes clusterrole/cluster-admin, o comando concede às políticas de RBAC os utilizadores de que precisam para aceder ao cluster através do gateway Connect.

bmctl

Para aplicar as políticas de RBAC aos utilizadores, siga os passos na estação de trabalho de administração:

  1. Adicione a secção clusterSecurity.authorization ao ficheiro de configuração do cluster. Especifique o seu endereço de email e o endereço de email de outros utilizadores que precisam de administrar o cluster. Por exemplo:

    ...
    clusterSecurity:
      authorization:
        clusterAdmin:
          gcpAccounts: [alex@example.com,hao@example.com,sasha@example.com]
    ...
    
  2. Atualize o cluster:

    bmctl update cluster \
        -c CLUSTER_NAME \
        --kubeconfig=KUBECONFIG
    

    Faça as seguintes alterações:

    • Substitua CLUSTER_NAME pelo nome do cluster que quer atualizar.
    • Se o cluster for um cluster de gestão autónoma (como um cluster de administrador ou autónomo), substitua KUBECONFIG pelo caminho para o ficheiro kubeconfig do cluster. Se o cluster for um cluster de utilizadores, substitua KUBECONFIG pelo caminho para o ficheiro kubeconfig do cluster admin.

Consola

Para aplicar as políticas de RBAC aos utilizadores, siga os passos na consola:

  1. Na consola, aceda à página Vista geral dos clusters do Google Kubernetes Engine.

    Aceda aos clusters do GKE

  2. Selecione o Google Cloud projeto no qual o cluster de utilizadores se encontra.

  3. Na lista de clusters, clique no nome do cluster e, de seguida, clique em Ver detalhes no painel Detalhes.

  4. Na secção Autorização, clique no campo Utilizadores administradores e introduza o endereço de email de cada utilizador.

  5. Quando terminar de adicionar utilizadores, clique em Concluído.

Mais informações