Anexe o seu cluster em conformidade com a CNCF

Com os clusters anexados do GKE, pode trazer os seus clusters Kubernetes existentes, quer estejam alojados na AWS, no Azure ou noutro local, para o painel de controlo do GKE para gestão centralizada. Isto inclui a capacidade de anexar qualquer cluster do Kubernetes em conformidade com a CNCF.

Clusters do Kubernetes suportados

Pode adicionar qualquer cluster Kubernetes em conformidade com nós x86 à sua frota e, em seguida, vê-lo na Google Cloud consola juntamente com os seus clusters do GKE.

Embora a Google não valide todas as distribuições do Kubernetes para garantir a compatibilidade total das funcionalidades, quaisquer incompatibilidades descobertas são documentadas aqui. Para mais detalhes e assistência na resolução de problemas, consulte o artigo Versão do cluster do GKE e suporte de atualizações.

Pré-requisitos

Certifique-se de que o cluster cumpre os requisitos do cluster.

Quando anexar o cluster, tem de especificar o seguinte:

A região administrativa é uma Google Cloud região a partir da qual pode administrar o cluster anexado. Pode escolher qualquer região suportada, mas a prática recomendada é escolher a região geograficamente mais próxima do seu cluster. Não são armazenados dados do utilizador na região administrativa.

A versão da plataforma é a versão dos clusters associados do GKE a instalar no seu cluster. Pode apresentar uma lista de todas as versões suportadas executando o seguinte comando:

gcloud container attached get-server-config  \   --location=GOOGLE_CLOUD_REGION 

Substitua GOOGLE_CLOUD_REGION pelo nome da Google Cloud localização a partir da qual vai administrar o cluster.

Numeração das versões da plataforma

Estes documentos referem-se à versão dos clusters anexados do GKE como a versão da plataforma, para a distinguir da versão do Kubernetes. Os clusters associados do GKE usam a mesma convenção de numeração de versões que o GKE, por exemplo, 1.21.5-gke.1. Quando anexar ou atualizar o cluster, tem de escolher uma versão da plataforma cuja versão secundária seja igual ou um nível inferior à versão do Kubernetes do cluster. Por exemplo, pode anexar um cluster que execute o Kubernetes v1.22.* com a versão 1.21.* ou 1.22.* da plataforma de clusters anexados do GKE.

Isto permite-lhe atualizar o cluster para a versão secundária seguinte antes de atualizar os clusters associados do GKE.

Fixe o cluster

Para anexar o seu cluster em conformidade com a CNCF à Google Cloud gestão de frotas, execute os seguintes comandos:

  1. Certifique-se de que o ficheiro kubeconfig tem uma entrada para o cluster que quer anexar. As instruções específicas variam consoante a distribuição.

  2. 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) 
  3. O comando para registar o cluster varia ligeiramente consoante o cluster tenha um emissor OIDC público ou privado. Escolha o separador que se aplica ao seu cluster:

    Emissor de OIDC privado

    Use o gcloud container attached clusters register comando para registar 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 cluster. O elemento CLUSTER_NAME tem de estar em conformidade com a norma RFC 1123 Label Names.
    • GOOGLE_CLOUD_REGION: a região a partir da qual administrar o cluster Google Cloud
    • PROJECT_NUMBER: o projeto anfitrião da frota para registar o cluster
    • PLATFORM_VERSION: a versão da plataforma a usar para o cluster
    • KUBECONFIG_CONTEXT: contexto no kubeconfig para aceder ao cluster
    • KUBECONFIG_PATH: caminho para o seu kubeconfig

    Emissor OIDC público

    1. Obtenha o URL do emissor OIDC do seu cluster e guarde-o para utilização posterior. As instruções específicas variam consoante a distribuição.

    2. 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) 
    3. Use o gcloud container attached clusters register comando para registar 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 cluster. O elemento CLUSTER_NAME tem de estar em conformidade com a norma RFC 1123 Label Names.
      • GOOGLE_CLOUD_REGION: a região para administrar o seu cluster Google Cloud
      • PROJECT_NUMBER: o projeto anfitrião da frota onde o cluster vai ser registado
      • PLATFORM_VERSION: a versão dos clusters associados do GKE a usar para o cluster
      • ISSUER_URL: o URL do emissor obtido anteriormente
      • KUBECONFIG_CONTEXT: contexto no kubeconfig para aceder ao seu cluster, conforme extraído anteriormente
      • KUBECONFIG_PATH: caminho para o seu kubeconfig

Autorize o Cloud Logging / Cloud Monitoring

Para que os clusters associados do GKE criem e carreguem registos e métricas do sistema para o Google Cloud, têm de ser autorizados.

Para autorizar a identidade da carga de trabalho do Kubernetes gke-system/gke-telemetry-agent a escrever registos 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 cluster.

Esta associação de IAM concede acesso a todos os clusters no projeto Google Cloud project para carregar registos e métricas. Só tem de o executar depois de criar o primeiro cluster para o projeto.

A adição desta associação de IAM falha, a menos que tenha sido criado, pelo menos, um cluster no seu projeto Google Cloud . Isto deve-se ao facto de o Workload Identity Pool a que se refere (GOOGLE_PROJECT_ID.svc.id.goog) não ser aprovisionado até à criação do cluster.