É possível usar os clusters anexados ao GKE para gerenciar clusters do Kubernetes em conformidade com a CNCF de maneira centralizada no Google Cloud console, incluindo clusters hospedados na AWS, no Azure ou em outro lugar. Esse gerenciamento centralizado consolida as operações e ajuda a implantar e executar clusters com mais eficiência em vários ambientes. Este documento mostra aos administradores da plataforma como anexar clusters do Kubernetes qualificados ao Google Cloud.
Se você estiver anexando um cluster do Amazon EKS ou do Azure AKS, consulte Anexar o cluster do EKS ou Anexar o cluster do AKS. Para instruções sobre como usar a geração anterior de clusters anexados ao GKE, consulte Anexar clusters de terceiros.
Clusters do Kubernetes compatíveis
É possível adicionar qualquer cluster do Kubernetes em conformidade com nós x86 à sua frota e visualizá-lo no Google Cloud console junto com os clusters do GKE.
O Google não verifica todas as distribuições do Kubernetes para garantir a compatibilidade total dos recursos, mas todas as incompatibilidades descobertas estão documentadas aqui. Para mais detalhes e assistência para solução de problemas, consulte Versão e suporte de upgrade do cluster do GKE.
Pré-requisitos
Verifique se o cluster atende aos requisitos de cluster.
Ao anexar o cluster, especifique o seguinte:
A região administrativa é uma Google Cloud região 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 Google Cloud local para administrar o cluster.
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
Para anexar o cluster em conformidade com a CNCF ao Google Cloud gerenciamento de frotas, execute os seguintes comandos:
Verifique se o arquivo kubeconfig tem uma entrada para o cluster que você quer anexar. As instruções específicas variam de acordo com a distribuição.
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 ele tem um emissor OIDC público ou particular. Escolha a guia que se aplica ao cluster:
Emissor do OIDC particular
Use o comando
gcloud container attached clusters registerpara registrar o cluster:gcloud container attached clusters register CLUSTER_NAME \ --location=GOOGLE_CLOUD_REGION \ --fleet-project=PROJECT_NUMBER \ --platform-version=PLATFORM_VERSION \ --distribution=generic \ --context=KUBECONFIG_CONTEXT \ --has-private-issuer \ --kubeconfig=KUBECONFIG_PATHSubstitua:
- CLUSTER_NAME: o nome do cluster. O CLUSTER_NAME precisa estar em conformidade com o padrão de nomes de rótulos RFC 1123.
- GOOGLE_CLOUD_REGION: a Google Cloud região para administrar o cluster
- 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
- KUBECONFIG_PATH: caminho para o kubeconfig
Emissor do OIDC público
Recupere o URL do emissor do OIDC do cluster e salve-o para usar mais tarde. As instruções específicas variam de acordo com a distribuição.
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 registerpara registrar o cluster:gcloud container attached clusters register CLUSTER_NAME \ --location=GOOGLE_CLOUD_REGION \ --fleet-project=PROJECT_NUMBER \ --platform-version=PLATFORM_VERSION \ --distribution=generic \ --issuer-url=ISSUER_URL \ --context=KUBECONFIG_CONTEXT \ --kubeconfig=KUBECONFIG_PATHSubstitua:
- CLUSTER_NAME: o nome do cluster. O CLUSTER_NAME precisa estar em conformidade com o padrão de nomes de rótulos RFC 1123.
- GOOGLE_CLOUD_REGION: a Google Cloud região para administrar o cluster
- 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 cluster. Google Cloud
Essa vinculação do IAM concede acesso a todos os clusters no Google Cloud projeto do projeto 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 Google Cloud projeto. Isso ocorre porque o pool de Identidade da carga de trabalho
ao qual se refere (GOOGLE_PROJECT_ID.svc.id.goog) não é
provisionado até a criação do cluster.