Anexar um cluster significa conectá-lo a Google Cloud registrando-o com Google Cloud Gerenciamento de frota e instalação do software de clusters conectados ao GKE.
Você pode anexar um cluster usando a CLI do gcloud ou o Terraform. Para saber como criar e anexar um cluster do AKS usando o Terraform, consulte o repositório do GitHub de exemplos para clusters anexados ao GKE .
Para anexar um cluster AKS usando o gcloud, execute as seguintes etapas.
Pré-requisitos
Certifique-se de que seu cluster atenda aos requisitos de cluster .
Ao anexar seu cluster, você deve especificar o seguinte:
- Um suportado Google Cloudregião administrativa
- Uma versão de plataforma
A região administrativa é uma Google Cloud região para administrar o cluster anexado. Você pode escolher qualquer região suportada, mas a prática recomendada é escolher a região geograficamente mais próxima do seu 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 seu cluster. Você pode 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 doGoogle Cloud local para administrar seu cluster.
Numeração da versão da plataforma
Estes documentos referem-se à 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ão do GKE — por exemplo, 1.21.5-gke.1. Ao anexar ou atualizar seu cluster, você deve escolher uma versão da plataforma cuja versão secundária seja igual ou um nível abaixo da versão do Kubernetes do seu cluster. Por exemplo, você pode anexar um cluster executando o Kubernetes v1.22.* com a versão da plataforma 1.21.* ou 1.22.* dos clusters anexados ao GKE.
Isso permite que você atualize seu cluster para a próxima versão secundária antes de atualizar os clusters conectados ao GKE.
Conecte seu cluster AKS
Para conectar seu cluster AKS a Google CloudGerenciamento de frota , execute os seguintes comandos:
Certifique-se de que seu arquivo kubeconfig tenha uma entrada para o cluster que você gostaria de anexar:
az aks get-credentials -n AKS_CLUSTER_NAME \ -g RESOURCE_GROUP
Execute este comando para extrair o contexto kubeconfig do seu cluster e armazená-lo na variável de ambiente
KUBECONFIG_CONTEXT
:KUBECONFIG_CONTEXT=$(kubectl config current-context)
O comando para registrar seu cluster varia um pouco dependendo se você configurou seu cluster com o emissor OIDC privado padrão ou com o emissor público experimental. Selecione a aba que se aplica ao seu cluster:
Emissor privado de OIDC (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 o seguinte:
- CLUSTER_NAME : o nome do seu cluster. Este nome pode ser o mesmo AKS_CLUSTER_NAME usado na etapa 1. O CLUSTER_NAME deve estar em conformidade com o padrão RFC 1123 Label Names .
- GOOGLE_CLOUD_REGION : a Google Cloud região para administrar seu cluster
- PROJECT_NUMBER : o projeto host da frota para registrar o cluster com
- 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 seu kubeconfig
Emissor público de OIDC
Recupere a URL do emissor OIDC do seu cluster com o seguinte comando:
az aks show -n CLUSTER_NAME \ -g RESOURCE_GROUP \ --query "oidcIssuerProfile.issuerUrl" -otsv
Substitua RESOURCE_GROUP pelo grupo de recursos do AKS ao qual seu cluster pertence.
A saída deste comando será a URL do seu emissor OIDC. Salve este valor para uso posterior.
Execute este comando para extrair o contexto kubeconfig do seu 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 o seguinte:
- CLUSTER_NAME : o nome do seu cluster. Este nome pode ser o mesmo AKS_CLUSTER_NAME usado na etapa 1. O CLUSTER_NAME deve estar em conformidade com o padrão RFC 1123 Label Names .
- GOOGLE_CLOUD_REGION : a Google Cloud região para administrar seu cluster
- PROJECT_NUMBER : o projeto host da frota onde o cluster será registrado
- PLATFORM_VERSION : a versão dos clusters anexados do GKE a serem usados para o cluster
- ISSUER_URL : a URL do emissor recuperada anteriormente
- KUBECONFIG_CONTEXT : contexto no kubeconfig para acessar seu cluster, conforme extraído anteriormente
- KUBECONFIG_PATH : caminho para seu kubeconfig
Autorizar registro em nuvem/monitoramento em nuvem
Para que os clusters anexados do GKE criem e carreguem logs e métricas do sistema paraGoogle Cloud, deve ser autorizado.
Para autorizar a identidade de carga de trabalho do Kubernetes gke-system/gke-telemetry-agent
a gravar logs em Google Cloud Registro e métricas para Google Cloud Monitoramento, 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 cluster Google Cloud ID do projeto.
Esta ligação IAM concede acesso para todos os clusters no Google Cloud projeto para carregar logs e métricas. Você só precisa executá-lo após criar seu primeiro cluster para o projeto.
Adicionar esta ligação IAM falhará a menos que pelo menos um cluster tenha sido criado em seu Google Cloud projeto. Isso ocorre porque o pool de identidades de carga de trabalho ao qual ele se refere ( GOOGLE_PROJECT_ID .svc.id.goog
) não é provisionado até a criação do cluster.