Como fazer login em um cluster no Console do Cloud

Nesta página, explicamos como fazer login em clusters registrados do Kubernetes fora do Google Cloud no Console do Google Cloud.

Depois de fazer login em um cluster registrado, é possível inspecioná-lo e ver detalhes sobre os nós no Console do Cloud, como um cluster do Google Kubernetes Engine (GKE) no Google Cloud. É possível escolher entre vários métodos de autenticação para fazer login nos clusters, dependendo das necessidades do projeto e da organização.

Para se conectar a clusters registrados na linha de comando, consulte Como se conectar a clusters registrados com o gateway do Connect.

Sobre clusters registrados

O registro de clusters do Kubernetes no ambiente do projeto oferece uma maneira unificada de visualizar e gerenciar vários clusters e as cargas de trabalho deles, incluindo a exibição conjunta no Console do Cloud. Para visualizar os clusters fora do Google Cloud, é necessário ativar o Anthos.

Os clusters gerenciados do Anthos fora do Google Cloud (como no local ou na AWS) são registrados automaticamente no ambiente do seu projeto quando você os cria. Os clusters anexados precisam ser registrados manualmente. Também é possível registrar um cluster manualmente se você cancelou o registro dele por engano ou se quiser registrá-lo em um projeto diferente. Se você precisar registrar um cluster, siga as instruções em Como registrar um cluster.

Depois de registrar um cluster, ele aparece nas páginas de clusters do GKE e do Anthos no Console do Cloud. No entanto, para ver mais detalhes, como nós e cargas de trabalho de qualquer cluster fora do Google Cloud, você precisa fazer login e autenticar no cluster, conforme descrito no restante deste guia. Os clusters que exigem login na lista de clusters do Google Kubernetes Engine mostram um triângulo de aviso laranja e solicitam que você faça login.

Captura de tela da lista de clusters do Google Kubernetes Engine

Você pode descobrir mais sobre ambientes em Introdução a ambientes. Saiba mais sobre como o registro de cluster e o agente do Connect funcionam na documentação do Connect.

Como fazer login usando sua identidade do Google Cloud

Essa opção recomendada permite que você faça login em clusters registrados usando a mesma identidade do Google Cloud usada para seus projetos e clusters do GKE, usando o serviço do Connect para encaminhar suas solicitações ao servidor da API do cluster. Para saber mais sobre como o serviço do Connect funciona, consulte Como se conectar a clusters registrados com o gateway do Connect.

Antes de começar, verifique se o administrador da plataforma fez a configuração necessária para permitir que você use sua identidade do Google Cloud para fazer login, inclusive se concedeu a você todos os papéis e as permissões de controle de acesso baseado em papéis (RBAC, na sigla em inglês) necessários para visualizar e autenticar em clusters registrados.

Console

Para usar sua identidade do Google Cloud para fazer login em um cluster, siga estas etapas:

  1. No Console do Cloud, acesse a página Clusters do GKE.

    Acesse os clusters do GKE

  2. Na lista de clusters, clique em Ações ao lado do cluster registrado e em Fazer login.

  3. Selecione Usar a identidade do Google para fazer login.

  4. Clique em Login.

Como fazer login usando um token do portador

Use um token do portador para fazer login em clusters registrados. Há muitos tipos dele compatíveis, conforme especificado em Autenticação do Kubernetes. O método mais fácil é criar uma conta de serviço do Kubernetes (KSA, na sigla em inglês) no cluster e usar o token do portador para fazer login.

Todas as contas que fazem login em um cluster precisam manter pelo menos os seguintes papéis de RBAC do Kubernetes no cluster:

Antes de começar

Você ou o administrador da plataforma precisa concluir a etapa a seguir uma vez por cluster registrado.

Criar e aplicar o papel do RBAC cloud-console-reader

Os usuários que querem visualizar os recursos do cluster no console do Cloud precisam ter as permissões relevantes. Você define esse conjunto de permissões criando um recurso RBAC ClusterRole, cloud-console-reader, no cluster.

cloud-console-reader concede aos usuários as permissões get, list e watch nos nós, volumes permanentes e classes de armazenamento do cluster, o que permite que eles vejam detalhes sobre esses recursos. Você pode vincular esse ClusterRole à conta de serviço do usuário, conforme descrito na próxima seção.

kubectl

Para criar o cloud-console-reader ClusterRole e aplicá-lo, execute o seguinte comando:

  cat <<EOF > cloud-console-reader.yaml
  kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: cloud-console-reader
rules:
- apiGroups: [""]
  resources: ["nodes", "persistentvolumes"]
  verbs: ["get", "list", "watch"]
- apiGroups: ["storage.k8s.io"]
  resources: ["storageclasses"]
  verbs: ["get", "list", "watch"]
  EOF
  kubectl apply -f cloud-console-reader.yaml

Como configurar uma conta de serviço

Recomendamos que você ou um administrador de cluster crie uma conta de serviço para cada usuário que faça login no cluster. Usar um token do portador é como usar uma senha, portanto, cada usuário precisa ter sua própria conta. Fazer login com o token do portador da KSA faz com que todas as operações sejam executadas como a KSA, restrita pelos papéis do RBAC retidos pela KSA.

A KSA precisa manter pelo menos os seguintes papéis de RBAC no cluster:

Criar e autorizar uma KSA

kubectl

Para criar uma KSA e vincular permissões a ela, siga estas etapas:

  1. Crie os recursos KSA e ClusterRoleBinding para vincular view e cloud-console-reader do Kubernetes RBAC ClusterRoles à KSA.

    KSA_NAME=KSA_NAME
    kubectl create serviceaccount ${KSA_NAME}
    kubectl create clusterrolebinding VIEW_BINDING_NAME \
    --clusterrole view --serviceaccount default:${KSA_NAME}
    kubectl create clusterrolebinding CLOUD_CONSOLE_READER_BINDING_NAME \
    --clusterrole cloud-console-reader --serviceaccount default:${KSA_NAME}
    

    Substitua:

    • KSA_NAME: o nome escolhido para a KSA;
    • VIEW_BINDING_NAME: o nome escolhido para o recurso view ClusterRoleBinding, você pode dar o nome que quiser, mas pode achar mais fácil nomeá-lo após a KSA;
    • CLOUD_CONSOLE_READER_BINDING_NAME: o nome escolhido para o recurso cloud-console-reader ClusterRoleBinding, você pode dar o nome que quiser.
  2. Dependendo do acesso que a conta de serviço precisa ter, vincule outros papéis à KSA. Para mais opções, consulte os papéis padrão do Kubernetes.

    Por exemplo, se você quiser implantar um aplicativo do Kubernetes a partir do Cloud Marketplace, vincule o papel cluster-admin à KSA:

    kubectl create clusterrolebinding BINDING_NAME \
    --clusterrole cluster-admin --serviceaccount default:KSA_NAME
    

    Substitua BINDING_NAME pelo nome da vinculação de papel do cluster para a conta de serviço.

Autorizar outras contas

kubectl

Para que cada usuário ou conta de serviço tenha acesso ao cluster, crie recursos ClusterRoleBinding para vincular os papéis view e cloud-console-reader à conta:

  1. Vincule view e cloud-console-reader ClusterRoles:

    ACCOUNT_NAME=ACCOUNT_NAME
    kubectl create clusterrolebinding VIEW_BINDING_NAME \
    --clusterrole view --serviceaccount default:${ACCOUNT_NAME}
    kubectl create clusterrolebinding CLOUD_CONSOLE_READER_BINDING_NAME \
    --clusterrole cloud-console-reader --serviceaccount default:${ACCOUNT_NAME}
    

    Substitua:

    • ACCOUNT_NAME: a conta de serviço do Kubernetes;
    • VIEW_BINDING_NAME: o nome escolhido para o recurso view ClusterRoleBinding, você pode dar o nome que quiser, mas pode achar mais fácil nomeá-lo depois da conta de serviço ou usuário;
    • CLOUD_CONSOLE_READER_BINDING_NAME: o nome escolhido para o recurso view ClusterRoleBinding, você pode dar o nome que quiser.
  2. Vincule outros papéis, dependendo do acesso que a conta terá. Para mais opções, consulte os papéis padrão do Kubernetes.

    Por exemplo, para vincular o papel cluster-admin, execute o seguinte comando:

    kubectl create clusterrolebinding BINDING_NAME \
    --clusterrole cluster-admin --serviceaccount default:ACCOUNT_NAME
    

    Substitua BINDING_NAME pelo nome da vinculação de papel do cluster para a conta de serviço.

Conseguir o token do portador da KSA

kubectl

Para conseguir o token do portador da KSA, execute o seguinte comando:

SECRET_NAME=$(kubectl get serviceaccount KSA_NAME -o jsonpath='{$.secrets[0].name}')
kubectl get secret ${SECRET_NAME} -o jsonpath='{$.data.token}' | base64 --decode

Substitua KSA_NAME pelo nome escolhido para a KSA.

Na saída desse comando, copie o token e salve-o para usar na próxima seção.

Como fazer login em um cluster

Console

Para usar o token para fazer login em um cluster, siga estas etapas:

  1. No Console do Cloud, acesse a página Clusters do GKE.

    Acesse os clusters do GKE

  2. Na lista de clusters, clique em Ações ao lado do cluster registrado e em Fazer login.

  3. Selecione Token e preencha o campo Token com o token do portador da KSA.

  4. Clique em Login.

Como fazer login usando a autenticação básica

Console

Para usar a autenticação básica para fazer login em um cluster, siga estas etapas:

  1. No Console do Cloud, acesse a página Clusters do GKE.

    Acesse os clusters do GKE

  2. Na lista de clusters, clique em Ações ao lado do cluster registrado e em Fazer login.

  3. Selecione Autenticação básica e preencha os campos Nome de usuário e Senha.

  4. Clique em Login.

Fazer login usando o OpenID Connect (OIDC)

Se o cluster estiver configurado para usar um provedor de identidade OIDC, você poderá usá-lo para autenticar no cluster do Console do Cloud. Veja como configurar os clusters do Anthos para OIDC nos seguintes guias:

Console

Se você quiser usar o OIDC para fazer login em um cluster configurado, siga estas etapas:

  1. No Console do Cloud, acesse a página Clusters do GKE.

    Acesse os clusters do GKE

  2. Na lista de clusters, clique em Ações ao lado do cluster registrado e em Fazer login.

  3. Selecione Autentique com o Provedor de identidade configurado para o cluster. Você será redirecionado para o provedor de identidade, onde talvez seja necessário fazer login ou consentir que o Console do Cloud acesse sua conta.

  4. Clique em Login.

A seguir