Pré-requisitos gerais

Conforme aprendeu na vista geral da criação de frotas, os clusters do GKE no local no VMware e no bare metal, bem como os clusters multicloud (tanto na AWS como no Azure), são registados automaticamente na frota do seu 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) têm de ser registados manualmente para aderirem à sua frota. Pode encontrar mais detalhes sobre as diferentes opções de registo na vista geral da criação da frota.

Esta página descreve os pré-requisitos e os requisitos para registar manualmente qualquer cluster do Kubernetes numa Google Cloud frota. Também existem 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 quer registar.

Recomendamos que reveja as restrições gerais ao registo de clusters antes de começar.

Instale ferramentas de linha de comandos

Certifique-se de que tem as seguintes ferramentas de linha de comandos instaladas. Se estiver a usar o Cloud Shell como ambiente de shell para interagir com o Google Cloud, estas ferramentas são instaladas automaticamente.

Instale a CLI Google Cloud

A CLI do Google Cloud é a interface de linhas de comando (CLI) para Google Cloud. Pode registar clusters através da Google Cloud CLI ou, consoante o tipo de cluster, através de outras ferramentas, como o Terraform ou a Google Cloud consola. No entanto, mesmo que não o use para o registo de clusters, o gcloud é necessário ou útil para muitos dos outros passos de configuração neste guia.

  1. Se ainda não a tiver instalada, instale a Google Cloud CLI seguindo as instruções de instalação. Recomendamos que use a versão mais recente da CLI Google Cloud. Precisa da versão 361.0.0 ou superior para registar clusters e da versão 423.0.0 ou superior se quiser usar os comandos de registo não legados para o GKE, com o componente alfa ou beta instalado.

  2. Execute o seguinte comando para iniciar sessão no Google Cloud:

    gcloud auth login
  3. (Opcional) Certifique-se de que instalou o componente gcloud beta, se planeia experimentar funcionalidades alfa ou beta:

     gcloud components install beta 

Instale a app kubectl

Embora o kubectl não seja necessário para registar um cluster, pode precisar dele para conceder as autorizações de controlo de acesso baseado em funções (RBAC) necessárias ao utilizador que regista o cluster (se não for o proprietário do cluster), bem como para outra configuração específica da plataforma. Precisa de uma versão kubectl não inferior à versão mínima suportada do Kubernetes do Google Kubernetes Engine (GKE).

Recomendamos que instale o kubectl com a CLI gcloud.

Para verificar a versão do kubectl:

kubectl version

A versão do cliente é indicada por gitVersion do resultado.

Para instalar o kubectl:

gcloud components install kubectl

Ativar APIs

Tem de ativar as seguintes APIs no projeto do anfitrião da frota:

  • container.googleapis.com
  • gkeconnect.googleapis.com
  • gkehub.googleapis.com, também conhecida como API Fleet. Este é o Google Cloud serviço que processa o registo de clusters e a associação à frota.
  • cloudresourcemanager.googleapis.com

Os pods no cluster que quer registar têm de conseguir alcançar os endereços googleapis.com e gkeconnect.googleapis.com, diretamente ou através de um servidor proxy configurado.

Se quiser ativar o Workload Identity da frota para o seu registo, também tem de ativar o seguinte:

  • iam.googleapis.com

Os utilizadores que não são proprietários do projeto têm de receber a autorização serviceusage.services.enable antes de poderem ativar APIs.

gcloud

Para ativar estas 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

where:

Se não quiser ativar o Workload Identity da frota, pode omitir iam.googleapis.com.

Para listar as APIs que já ativou nos seus projetos, siga as instruções em Listar serviços na documentação de utilização de serviços.

Conceda autorizações de acesso

Certifique-se de que tem as autorizações de acesso adequadas para registar um cluster. O registo do cluster requer autorização para registar o cluster numa frota e autorizações de administrador no próprio cluster.

Conceda autorizações de registo de clusters

O registo de um cluster requer autorizações IAM no projeto anfitrião da frota para registar clusters. Se tiver o roles/owner no projeto anfitrião da frota, tem esta funcionalidade automaticamente e tem todas as autorizações de acesso necessárias para concluir todas as tarefas de registo.

Se não tiver roles/owner no seu projeto, tem de lhe ser atribuídas funções de IAM específicas antes de poder associar clusters à Google, da seguinte forma:

  • Para registar um cluster com a identidade de carga de trabalho da frota para autenticação na Google, só precisa da seguinte função do IAM:

    • roles/gkehub.admin
  • Algumas opções de registo fora Google Cloud requerem que configure uma conta de serviço para o cluster usar para autenticar no Google em vez da Workload Identity. Para registar o cluster e gerir esta conta de serviço, precisa do seguinte conjunto de funções:

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

Para ver uma lista de autorizações detalhadas incluídas nas funções gkehub, consulte o artigo Funções de IAM do Connect.

gcloud

Para conceder uma função do IAM a um utilizador, execute o seguinte comando:

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

where:

  • FLEET_HOST_PROJECT_ID é o Google Cloud ID do projeto no qual quer registar clusters. Saiba como encontrar este valor.
  • GCP_EMAIL_ADDRESS é a conta que o utilizador usa para iniciar sessão no Google Cloud.
  • ROLE é a função de IAM que quer conceder, como roles/gkehub.admin.

Para saber como conceder funções da IAM, consulte o artigo Conceder, alterar e revogar o acesso a recursos na documentação da IAM.

Conceda autorizações de administrador do cluster

Além das autorizações necessárias para registar um cluster, também precisa de autorizações de administrador no próprio cluster. Consoante a localização do cluster, pode atribuir esta autorização através de funções de IAM ou do controlo de acesso baseado em funções (CABF) do Kubernetes.

Clusters do GKE em Google Cloud

Para clusters do GKE Google Cloud apenas, adicione a seguinte função de IAM para obter autorizações de administrador no cluster, se ainda não a tiver (é provável que a sua conta de utilizador a tenha se criou o cluster):

  • roles/container.admin

Esta função IAM inclui a função cluster-admin do RBAC do Kubernetes. Para outros ambientes de cluster, tem de conceder esta função RBAC através do comando kubectl, conforme descrito na secção seguinte. Pode saber mais acerca da relação entre as funções do IAM e do RBAC no GKE na documentação do GKE.

Clusters fora de Google Cloud

Para anexar clusters de terceiros fora Google Cloud, certifique-se de que o utilizador que regista o cluster tem a função cluster-admin do Kubernetes RBAC.

kubectl

Se criou o cluster, é provável que tenha esta função. Pode fazer a validação executando o seguinte comando:

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

Se você ou outro utilizador precisar da função, crie um recurso ClusterRoleBinding no cluster:

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

where:

  • BINDING_NAME é um nome que escolhe para o recurso ClusterRoleBinding.
  • USER é a identidade usada para autenticar no cluster.

O que se segue?

Siga o guia de pré-requisitos para o tipo de cluster que quer registar: