Pré-requisitos gerais

Como você aprendeu na visão geral da criação de frotas, o GKE no VMware, GKE em Bare Metal e clusters de várias nuvens (tanto na AWS quanto no Azure) são registrados automaticamente na frota do projeto no momento da criação do cluster. No entanto, os clusters do GKE no Google Cloud e os clusters do Kubernetes de terceiros (clusters anexados) precisam ser registrados manualmente para participar da frota. Veja mais detalhes sobre as diferentes opções de registro na visão geral de criação de frota.

Nesta página, descrevemos os pré-requisitos e requisitos para registrar manualmente qualquer cluster do Kubernetes em uma frota do Google Cloud. Há também requisitos separados específicos para clusters do GKE no Google Cloud e clusters anexados. Depois de concluir este guia, siga as instruções para o tipo de cluster que você quer registrar.

Instalar ferramentas de linha de comando

Verifique se você tem as ferramentas de linha de comando a seguir instaladas. Se você estiver usando o Cloud Shell como ambiente shell para interagir com o Google Cloud, essas ferramentas estarão instaladas.

Instale a CLI do Google Cloud

A Google Cloud CLI é a interface de linha de comando (CLI, na sigla em inglês) do Google Cloud. É possível registrar clusters usando a Google Cloud CLI ou, dependendo do tipo de cluster, usando outras ferramentas, como o Terraform ou o Console do Google Cloud. No entanto, mesmo que você não a use para registro de cluster, gcloud é obrigatória ou útil para muitas das outras etapas de configuração desta página.

  1. Se você ainda não tiver instalado a Google Cloud CLI, siga as instruções de instalação. Recomendamos usar a versão mais recente da Google Cloud CLI. Você precisa da versão 361.0.0 ou posterior para registrar clusters e da versão 423.0.0 ou posterior se quiser usar os comandos de registro não legados do GKE com o componente Alfa ou Beta instalado.

  2. Execute o seguinte comando para fazer login no Google Cloud:

    gcloud auth login
  3. (Opcional) Se você quiser testar os recursos Alfa ou Beta, verifique se instalou o componente gcloud beta:

     gcloud components install beta 

Instale o kubectl (em inglês)

Embora kubectl não seja obrigatório para registrar um cluster, ele pode ser necessário para conceder as permissões de controle de acesso baseado em papéis (RBAC, na sigla em inglês) ao usuário que registra o cluster, se ele não for o proprietário, e também outras configurações específicas da plataforma. Você precisa de uma versão de kubectl não inferior à versão mínima compatível do Kubernetes do Google Kubernetes Engine (GKE).

Recomendamos que você instale kubectl com a Google Cloud CLI.

Para verificar a versão do kubectl:

kubectl version

A versão do cliente é indicada por gitVersion da saída.

Para instalar kubectl:

gcloud components install kubectl

Ativar APIs

Você precisa ativar as seguintes APIs no projeto hóspede da frota:

  • container.googleapis.com
  • gkeconnect.googleapis.com
  • gkehub.googleapis.com, também conhecida como API Fleet. Este é o serviço da Google Cloud que gerencia o registro do cluster e a associação à frota.
  • cloudresourcemanager.googleapis.com

Os pods no cluster que você quer registrar precisam ser capazes de acessar os endereços googleapis.com e gkeconnect.googleapis.com, seja diretamente ou usando um servidor proxy configurado.

Se você quiser ativar a identidade da carga de trabalho da frota para seu registro, faça o seguinte:

  • iam.googleapis.com

Os proprietários que não são do projeto precisam receber a permissão serviceusage.services.enable antes de ativar APIs.

gcloud

Para ativar essas APIs, execute o seguinte comando:

gcloud services enable \
   --project=FLEET_HOST_PROJECT_ID \
   container.googleapis.com \
   gkeconnect.googleapis.com \
   gkehub.googleapis.com \
   cloudresourcemanager.googleapis.com \
   iam.googleapis.com

em que:

Se não quiser ativar a identidade da carga de trabalho da frota, omita iam.googleapis.com.

Para listar as APIs ativadas nos projetos, siga as instruções em Como listar serviços na documentação do Service Usage.

Conceder permissões de acesso

Verifique se você tem as permissões de acesso apropriadas para registrar um cluster. O registro do cluster requer permissões para registrar o cluster em uma frota e permissões de administrador no próprio cluster.

Conceder permissões de registro do cluster

Para registrar um cluster, é preciso ter permissões do IAM no projeto host da frota para registrar clusters. Se você tiver roles/owner no projeto hóspede da frota, terá isso automaticamente e terá todas as permissões de acesso necessárias para concluir todas as tarefas de registro.

Se você não tiver roles/owner em seu projeto, será necessário receber papéis específicos do IAM antes de conectar clusters ao Google.

  • Para registrar um cluster com a Identidade da carga de trabalho da frota para autenticação no Google, você só precisa do seguinte papel do IAM:

    • roles/gkehub.admin
  • Algumas opções de registro fora do Google Cloud exigem que você configure uma conta de serviço para o cluster usar para autenticar no Google em vez de na Identidade da carga de trabalho. Para registrar o cluster e gerenciar essa conta de serviço, você precisa do seguinte conjunto de papéis:

    • roles/gkehub.admin
    • roles/iam.serviceAccountAdmin
    • roles/iam.serviceAccountKeyAdmin
    • roles/resourcemanager.projectIamAdmin

Para ver uma lista detalhada de permissões incluídas nos papéis gkehub, consulte Conectar papéis do IAM.

gcloud

Para conceder um papel do IAM a um usuário, execute o seguinte comando:

gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
   --member user:GCP_EMAIL_ADDRESS \
   --role=ROLE

em que:

  • FLEET_HOST_PROJECT_ID é o ID do projeto do Google Cloud em que você quer registrar clusters. Saiba como encontrar esse valor.
  • GCP_EMAIL_ADDRESS é a conta que o usuário usa para fazer login no Google Cloud.
  • ROLE é o papel do IAM que você quer conceder, como roles/gkehub.admin.

Para saber mais sobre como conceder papéis do IAM, consulte Como conceder, alterar e revogar o acesso a recursos na documentação do IAM.

Conceder permissões de administrador de cluster

Além das permissões necessárias para registrar um cluster, você também precisa de permissões de administrador no próprio cluster. Dependendo do local do cluster, é possível atribuir essa permissão usando papéis do IAM ou controle de acesso baseado em papéis (RBAC, na sigla em inglês) do Kubernetes.

Clusters do GKE no Google Cloud

Somente para clusters do GKE no Google Cloud, adicione o seguinte papel do IAM para receber permissões de administrador no cluster (caso você ainda não o tenha caso sua conta de usuário tenha permissão para criá-lo):

  • roles/container.admin

Esse papel do IAM inclui o papel de RBAC cluster-admin do Kubernetes. Para outros ambientes de cluster, você precisa conceder esse papel do RBAC usando kubectl, conforme descrito na seção a seguir. Saiba mais sobre a relação entre os papéis de IAM e RBAC no GKE na documentação do GKE.

Clusters fora do Google Cloud

Para anexar clusters de terceiros fora do Google Cloud, verifique se o usuário que registra o cluster tem o papel cluster-admin do RBAC do Kubernetes.

kubectl

Se você criou o cluster, é provável que já tenha esse papel. Para verificar, execute o seguinte comando:

kubectl auth can-i '*' '*' --all-namespaces

Se você ou outro usuário precisar do papel, crie um recurso "ClusterRoleBinding" no cluster:

kubectl create clusterrolebinding BINDING_NAME --clusterrole cluster-admin --user USER

em que:

  • BINDING_NAME é um nome que você escolhe para o recurso "ClusterRoleBinding";
  • USER é a identidade usada para se autenticar no cluster.

A seguir

Siga o guia de pré-requisitos para o tipo de cluster que você quer registrar: