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

Este documento explica como disponibilizar para gestão na Google Cloud consola os clusters criados com o software Google Distributed Cloud para VMware. Isto inclui a gestão básica, como a capacidade de iniciar sessão em clusters e ver as respetivas cargas de trabalho, bem como a forma de ativar a gestão do ciclo de vida do cluster para que possa atualizar, atualizar e eliminar clusters.

Membros da frota e a consola

Todos os clusters do Google Distributed Cloud 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.

No Google Distributed Cloud, um cluster de administrador é registado numa frota no momento da criação especificando o projeto anfitrião da frota na secção gkeConnect do ficheiro de configuração do cluster. O Google Distributed Cloud usa essas informações para registar o seu cluster no projeto da frota especificado. Se o registo falhar, pode tentar novamente executando gkectl update credentials register.

Tenha em atenção que, quando tentar novamente o registo, não precisa de atualizar a chave da conta de serviço connect-register. Por outras palavras, pode continuar a usar a sua conta original do serviço de registo de ligação. Para mais informações sobre o comando, consulte o artigo Rotação das chaves da conta de serviço.

No Google Distributed Cloud, um cluster de utilizadores é registado numa frota no momento da criação:

  • Quando cria um cluster de utilizadores com gkectl, especifica o projeto anfitrião da frota na secção gkeConnect do ficheiro de configuração do cluster. O Google Distributed Cloud usa essas informações para registar o seu cluster no projeto da frota especificado.

  • Quando cria um cluster de utilizadores através de uma ferramenta padrão (a consola, a Google Cloud CLI ou o Terraform), o cluster torna-se automaticamente um membro da frota no projeto que especificar.

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 o Google Distributed Cloud 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, também pode atualizar, atualizar ou eliminar clusters de utilizadores através da consola. Se esta funcionalidade não estiver ativada, só pode gerir o ciclo de vida do cluster através do gkectl na sua estação de trabalho de administração.

Veja os clusters registados

Todos os clusters da frota são apresentados na página Vista geral dos clusters do Google Kubernetes Engine 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 vm Google Distributed Cloud for apresentado na coluna Tipo, o cluster é gerido 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, os utilizadores têm de iniciar sessão e autenticar-se no cluster. Para o fazer, tem de:

Configure a autenticação

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

  • Identidade Google: esta opção permite que os utilizadores iniciem sessão através da respetiva 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, especialmente se estiver a experimentar o Google Distributed Cloud com uma instalação mínima. Por isso, descrevemos como configurar esta opção mais detalhadamente abaixo em Configurar a autenticação de identidade Google.

  • OpenID Connect (OIDC): esta opção permite que os utilizadores iniciem 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 Identity and Access Management (IAM). Estas funções do IAM são necessárias independentemente do método de autenticação que escolher. Para gerir o ciclo de vida do cluster na consola, tem de conceder algumas funções do IAM.

  • 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/escrita, consulte o artigo 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/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 FLEET_HOST_PROJECT_ID \
    --member=MEMBER \
    --role=roles/container.viewer

gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member=MEMBER \
    --role=roles/gkehub.viewer

gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member=MEMBER \
    --role=roles/gkeonprem.admin

where:

  • FLEET_HOST_PROJECT_ID é o projeto anfitrião da frota. Para clusters criados com gkectl, 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 utilizadores criados através de ferramentas padrão (a consola, a CLI gcloud ou o Terraform) são inscritos automaticamente na API GKE On-Prem e permitem-lhe realizar tarefas de gestão do ciclo de vida do cluster na consola. Se quiser ativar esta funcionalidade para clusters de utilizadores criados com o gkectl, siga os passos descritos no artigo Configure um cluster de utilizadores para ser gerido pela API GKE On-Prem. Quando a gestão do ciclo de vida do cluster está ativada, pode realizar as seguintes tarefas a partir da consola:

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:

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 (CABF) do Kubernetes em cada cluster.

Se usou uma ferramenta padrão para criar o cluster de utilizadores, pode já ter-lhe sido concedidas as políticas de RBAC adequadas que lhe concedem acesso administrativo total ao cluster. A API GKE On-Prem adiciona automaticamente a sua Conta Google como administrador 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 com o Terraform e a sua Conta Google foi especificada no campo authorization.admin_users.username.

Os clusters de utilizadores criados com gkectl não lhe concedem as políticas de RBAC para administrar o cluster através da consola. Tem de se adicionar a si próprio depois de o cluster ser criado. Independentemente da ferramenta que usou para criar o cluster, pode adicionar outras pessoas como administradores depois de o cluster ser criado.

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.

generate-gateway-rbac

  1. Ligue-se à sua estação de trabalho de administração.

  2. Execute o seguinte comando para atualizar os componentes:

    gcloud components update
    
  3. 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=FLEET_HOST_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. Também pode criar 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=foo@example.com,test-acct@test-project.iam.gserviceaccount.com.
    • FLEET_HOST_PROJECT_ID: o ID do projeto do projeto anfitrião da frota.
    • KUBECONFIG_PATH: o caminho local onde o kubeconfig que contém uma entrada para o cluster está armazenado.
    • 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 simples, 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 Connect.

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

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 para apresentar os respetivos detalhes.

  4. Na secção Autorização, clique no botão de edição Utilizadores administradores.

  5. Introduza o endereço de email do utilizador que quer adicionar como administrador do cluster no painel Editar autorização. Para adicionar mais utilizadores administradores, clique em Adicionar utilizador administrador.

  6. Quando terminar de adicionar utilizadores, clique em Guardar alterações.

Mais informações