Para anexar um cluster, conecte-o ao Google Cloud registrando-o no gerenciamento de frota do Google Cloud e instalando o software de clusters anexado ao GKE.
É possível anexar um cluster usando a gcloud CLI ou o Terraform. Para aprender sobre como criar e anexar um cluster do AKS usando o Terraform, confira Repositório de amostras do GitHub para clusters anexados ao GKE
Para anexar um cluster do AKS usando a gcloud, execute as etapas a seguir.
Pré-requisitos
Verifique se o cluster atende aos requisitos de cluster.
Ao anexar o cluster, especifique o seguinte:
- Uma região administrativa do Google Cloud compatível
- Uma versão da plataforma
A região administrativa é uma região do Google Cloud para administrar o cluster anexado. É possível escolher qualquer região compatível, mas a prática recomendada é escolher a região geograficamente mais próxima do cluster. Nenhum dado de usuário é armazenado na região administrativa.
A versão da plataforma é a versão dos clusters anexados ao GKE a serem instalados no cluster. É possível listar todas as versões compatíveis executando o seguinte comando:
gcloud container attached get-server-config \
--location=GOOGLE_CLOUD_REGION
Substitua GOOGLE_CLOUD_REGION pelo nome do local do Google Cloud em que o cluster será administrado.
Numeração da versão da plataforma
Esses documentos se referem à versão dos clusters anexados ao GKE como a versão da plataforma, para diferenciá-la da versão do Kubernetes. Os clusters anexados ao GKE usam a mesma convenção de numeração de versões que o GKE. Por exemplo, 1.21.5-gke.1. Ao anexar ou atualizar seu cluster, escolha uma versão de plataforma em que a versão secundária seja igual ou um nível abaixo da versão do Kubernetes do cluster. Por exemplo, é possível anexar um cluster que executa o Kubernetes v1.22.* com a plataforma de clusters anexados do GKE 1.21.* ou 1.22.*.
Isso permite fazer upgrade do cluster para a próxima versão secundária antes de fazer upgrade dos clusters anexados ao GKE.
Anexar o cluster do AKS
Para anexar o cluster do AKS ao gerenciamento de frotas do Google Cloud, execute os seguintes comandos:
Verifique se o arquivo kubeconfig tem uma entrada para o cluster que você quer anexar:
az aks get-credentials -n CLUSTER_NAME \ -g RESOURCE_GROUP
Execute este comando para extrair o contexto kubeconfig do cluster e armazená-lo na variável de ambiente
KUBECONFIG_CONTEXT
:KUBECONFIG_CONTEXT=$(kubectl config current-context)
O comando para registrar o cluster varia um pouco dependendo se você o configurou com o emissor do OIDC particular padrão ou o experimental público. Escolha a guia que se aplica ao cluster:
Emissor do OIDC particular (padrão)
Use o comando
gcloud container attached clusters register
para registrar o cluster:gcloud container attached clusters register CLUSTER_NAME \ --location=GOOGLE_CLOUD_REGION \ --fleet-project=PROJECT_NUMBER \ --platform-version=PLATFORM_VERSION \ --distribution=aks \ --context=KUBECONFIG_CONTEXT \ --has-private-issuer \ --kubeconfig=KUBECONFIG_PATH
Substitua:
- CLUSTER_NAME: o nome do cluster
- GOOGLE_CLOUD_REGION: a região do Google Cloud em que o cluster será administrado
- PROJECT_NUMBER: o projeto host da frota para registrar o cluster
- PLATFORM_VERSION: a versão da plataforma a ser usada para o cluster.
- KUBECONFIG_CONTEXT: contexto no kubeconfig para acessar o cluster AKS
- KUBECONFIG_PATH: caminho para o kubeconfig
Emissor do OIDC público
Use o seguinte comando para recuperar o URL do emissor do OIDC do cluster:
az aks show -n CLUSTER_NAME \ -g RESOURCE_GROUP \ --query "oidcIssuerProfile.issuerUrl" -otsv
Substitua RESOURCE_GROUP pelo recurso AKS grupo a que o cluster pertence.
A saída desse comando será o URL do emissor do OIDC. Salve esse valor para uso posterior.
Execute este comando para extrair o contexto kubeconfig do cluster e armazená-lo na variável de ambiente
KUBECONFIG_CONTEXT
:KUBECONFIG_CONTEXT=$(kubectl config current-context)
Use o comando
gcloud container attached clusters register
para registrar o cluster:gcloud container attached clusters register CLUSTER_NAME \ --location=GOOGLE_CLOUD_REGION \ --fleet-project=PROJECT_NUMBER \ --platform-version=PLATFORM_VERSION \ --distribution=aks \ --issuer-url=ISSUER_URL \ --context=KUBECONFIG_CONTEXT \ --kubeconfig=KUBECONFIG_PATH
Substitua:
- CLUSTER_NAME: o nome do cluster
- GOOGLE_CLOUD_REGION: a região do Google Cloud em que o cluster será administrado
- PROJECT_NUMBER: o projeto host da frota em que o cluster será registrado
- PLATFORM_VERSION: a versão dos clusters anexados ao GKE a serem usados para o cluster
- ISSUER_URL: o URL do emissor recuperado anteriormente
- KUBECONFIG_CONTEXT: contexto no kubeconfig para acessar seu cluster, conforme extraído anteriormente
- KUBECONFIG_PATH: caminho para o kubeconfig
Autorizar o Cloud Logging / Cloud Monitoring
Para que os clusters anexados ao GKE criem e façam upload de registros e métricas do sistema para o Google Cloud, ele precisa ser autorizado.
Para autorizar a Identidade da carga de trabalho do Kubernetes gke-system/gke-telemetry-agent
a gravar registros no Google Cloud Logging e métricas no Google Cloud Monitoring,
execute este comando:
gcloud projects add-iam-policy-binding GOOGLE_PROJECT_ID \
--member="serviceAccount:GOOGLE_PROJECT_ID.svc.id.goog[gke-system/gke-telemetry-agent]" \
--role=roles/gkemulticloud.telemetryWriter
Substitua GOOGLE_PROJECT_ID
pelo ID do projeto do Google Cloud do cluster.
Essa vinculação do IAM concede acesso a todos os clusters no projeto do Google Cloud para fazer upload de registros e métricas. Você só precisa executá-lo após criar o primeiro cluster para o projeto.
A adição dessa vinculação do IAM falhará a menos que pelo menos um cluster tenha sido
criado no projeto do Google Cloud. Isso ocorre porque o pool de Identidade de carga de trabalho
ao qual se refere (GOOGLE_PROJECT_ID.svc.id.goog
) não é
provisionado até a criação do cluster.