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.
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.
Execute o seguinte comando para iniciar sessão no Google Cloud:
gcloud auth login
(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:
- FLEET_HOST_PROJECT_ID é o Google Cloud ID do projeto no qual quer registar clusters. Saiba como encontrar este valor.
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:
- Pré-requisitos para clusters do GKE no Google Cloud
- Pré-requisitos para clusters do EKS
- Pré-requisitos para clusters do AKS
- Pré-requisitos para outros tipos de clusters anexados