Conecte seu cluster compatível com CNCF

Com os clusters anexados ao GKE, você pode transferir seus clusters Kubernetes existentes — estejam eles hospedados na AWS, no Azure ou em outro lugar — para o painel do Google Kubernetes Engine (GKE) Enterprise Edition para gerenciamento centralizado. Isso inclui a capacidade de anexar qualquer cluster Kubernetes compatível com CNCF.

Clusters Kubernetes suportados

Você pode adicionar qualquer cluster Kubernetes compatível com nós x86 à sua frota e, em seguida, visualizá-lo no Google Cloud console junto com seus clusters do GKE.

Embora o Google não verifique a compatibilidade completa dos recursos de todas as distribuições do Kubernetes, quaisquer incompatibilidades descobertas são documentadas aqui. Para obter mais detalhes e assistência na solução de problemas, consulte o Suporte para versões e atualizações do Google Kubernetes Engine (GKE) Enterprise Edition .

Pré-requisitos

Certifique-se de que seu cluster atenda aos requisitos de cluster .

Ao anexar seu cluster, você deve especificar o seguinte:

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.

Anexe seu cluster

Para conectar seu cluster compatível com CNCF a Google CloudGerenciamento de frota , execute os seguintes comandos:

  1. Certifique-se de que seu arquivo kubeconfig tenha uma entrada para o cluster que você deseja anexar. As instruções específicas variam de acordo com a distribuição.

  2. 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)
    
  3. O comando para registrar seu cluster varia um pouco dependendo se o seu cluster possui um emissor OIDC público ou privado. Selecione a aba que se aplica ao seu cluster:

    Emissor privado de OIDC

    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=generic \
      --context=KUBECONFIG_CONTEXT \
      --has-private-issuer \
      --kubeconfig=KUBECONFIG_PATH
    

    Substitua o seguinte:

    • CLUSTER_NAME : o nome do seu cluster. 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
    • KUBECONFIG_PATH : caminho para seu kubeconfig

    Emissor público de OIDC

    1. Recupere a URL do emissor do OIDC do seu cluster e salve-a para uso posterior. As instruções específicas variam de acordo com a distribuição.

    2. 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)
      
    3. 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=generic \
        --issuer-url=ISSUER_URL \
        --context=KUBECONFIG_CONTEXT \
        --kubeconfig=KUBECONFIG_PATH
      

      Substitua o seguinte:

      • CLUSTER_NAME : o nome do seu cluster. 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.