Consulte Como fazer login em um cluster no Console do Cloud.

Nesta página, explicamos como fazer login em clusters registrados do Kubernetes no Console do Google Cloud para Anthos que tenham a API anthos.googleapis.com ativada.

Visão geral

É possível fazer login em clusters registrados por meio do Console do Google Cloud usando um token do portador. 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ê precisa concluir as etapas a seguir para cada cluster.

Registre o cluster

É necessário registrar seu cluster no Google Cloud antes de usar o Console do Cloud para fazer login nele. O registro de um cluster implanta o agente do Connect, um recurso de implantação do Kubernetes que estabelece uma conexão de longa duração entre o cluster e o Google Cloud. Com o agente do Connect, é possível fazer login em clusters.

Criar e aplicar o papel cloud-console-readercontrole de acesso baseado em papéis (RBAC)

Os usuários que querem visualizar os recursos do cluster no console 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.

  1. Crie o ClusterRole cloud-console-reader e aplique-o usando 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
    

Configuração

Você ou um administrador de cluster precisam criar uma conta de serviço para cada usuário que faz login no cluster. Usar um token do portador é como usar uma senha, portanto, cada usuário precisa ter seu próprio token. 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:

Como criar e autorizar uma KSA

Para criar uma KSA e vincular permissões a ela, execute as seguintes etapas:

  1. Crie os recursos de KSA e ClusterRoleBinding para vincular os ClusterRoles view e cloud-console-reader do Kubernetes RBAC à 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}
    
    

    onde:

    • [KSA_NAME] é o nome escolhido para a KSA;
    • [VIEW_BINDING_NAME] é o nome escolhido para o recurso ClusterRoleBinding view; Você pode nomear o nome que quiser, mas pode ser mais fácil nomear a KSA.
    • [CLOUD_CONSOLE_READER_BINDING_NAME] é o nome escolhido para o recurso cloud-console-reader ClusterRoleBinding; Você também pode nomear o que quiser.
  2. Dependendo do acesso que a conta de serviço precisa ter, vincule outros papéis à KSA. Consulte os papéis padrão do Kubernetes para ver algumas opções.

    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]
    
    

    em que [BINDING_NAME] é o nome da vinculação de papel do cluster para a conta de serviço.

Como autorizar outras contas

Para cada outro usuário ou conta de serviço conseguir acesso ao cluster, você precisará criar recursos ClusterRoleBinding para vincular os papéis view e cloud-console-reader à conta:

  1. Para vincular os ClusterRoles view e cloud-console-reader:

    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}
    
    

    onde:

    • [VIEW_BINDING_NAME] é o nome escolhido para o recurso ClusterRoleBinding view; É possível nomeá-lo como quiser, mas talvez seja mais fácil nomear o usuário após o usuário ou a conta de serviço.
    • [CLOUD_CONSOLE_READER_BINDING_NAME] é o nome escolhido para o recurso ClusterRoleBinding view; Você também pode nomear o que quiser.
    • [ACCOUNT_NAME] é a conta de serviço do Kubernetes.
  2. Vincule outros papéis, dependendo do acesso que a conta terá. Consulte os papéis padrão do Kubernetes para ver algumas opções.

    Por exemplo, para vincular o papel cluster-admin:

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

    em que [BINDING_NAME] é o nome da vinculação de papel do cluster para a conta de serviço.

Como conseguir o token do portador da KSA

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

em que [KSA_NAME] é o 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

Para fazer login em um cluster, siga as seguintes etapas:

  1. Acesse o menu do GKE no Console do Cloud.

    Acesse o menu do GKE

  2. Na lista de clusters, clique no botão Fazer login ao lado do cluster registrado.

  3. Escolha como você fará login:

    1. Se você estiver usando um token da KSA para fazer login, selecione Token, preencha o campo Token com o token do portador da KSA e clique em Fazer login.
    2. Se estiver usando a autenticação básica, selecione Autenticação básica, preencha os campos Nome de usuário e Senha e clique em Login.
    3. Se você estiver usando o OpenID Connect (OIDC), selecione OpenID Connect e clique em Login.

Se a autenticação for concluída com sucesso, será possível inspecionar o cluster e receber detalhes sobre os nós.

A seguir