Configurar um cluster de usuário a ser gerenciado pela API GKE On-Prem

Os clusters do Anthos em clusters de usuários do VMware (GKE On-Prem) criados usando gkectl não estão configurados para funcionar com a API GKE On-Prem, que é a API hospedada pelo Google Cloud ativada automaticamente quando você cria clusters de usuário no Console do Google Cloud. Para usar o console para gerenciar o ciclo de vida dos clusters de usuário que foram criados com gkectl, configure o cluster usando o comando gkectl enroll cluster.

Requisitos

O cluster de usuário precisa atender aos seguintes requisitos:

  • Versão 1.11 ou mais recente.
  • Estar registrado com uma frota, o que é feito automaticamente quando o cluster é criado a partir da versão 1.8.
  • Se a organização tiver configurado uma lista de permissões que permita o tráfego do Google APIs e de outros endereços pelo servidor proxy, adicione o seguinte à lista de permissões:

    • gkeonprem.googleapis.com
    • gkeonprem.mtls.googleapis.com

Registrar um cluster de usuário

Execute as etapas a seguir na estação de trabalho do administrador.

  1. Faça login com sua Conta do Google:

    gcloud auth login --no-browser
    
  2. Crie uma conta de serviço para autorizar gkectl a registrar o cluster:

    gcloud iam service-accounts create SA_NAME \
        --project SA_PROJECT_ID
    

    Substitua:

    • SA_NAME pelo nome que você quer dar à conta de serviço. É possível usar um nome que descreva o propósito da conta de serviço, como enrollment-sa.
    • SA_PROJECT_ID é o ID do projeto pai da conta de serviço. O projeto em que você cria a conta de serviço pode ser o mesmo ou um projeto diferente em que a conta de serviço é usada.
  3. Criar uma chave JSON para a conta de serviço:

    gcloud iam service-accounts keys create SA_NAME-key.json \
       --iam-account=SA_NAME@SA_PROJECT_ID.iam.gserviceaccount.com
    
  4. Ative a API GKE On-Prem no projeto host da frota:

    gcloud services enable \
        --project FLEET_PROJECT_ID \
        gkeonprem.googleapis.com
    

    FLEET_PROJECT_ID pelo ID do projeto host da frota. Precisa ser o mesmo projeto do Cloud em que os clusters de administrador e de usuário estão registrados, especificados no campo gkeConnect.projectID no arquivo de configuração do cluster.

  5. Atribua o papel gkeonprem.admin à conta de usuário:

    gcloud projects add-iam-policy-binding FLEET_PROJECT_ID \
        --member "serviceAccount:SA_NAME@SA_PROJECT_ID.iam.gserviceaccount.com" \
        --role "roles/gkeonprem.admin"
    
  6. Configure as credenciais padrão do aplicativo para usar a conta de serviço. Isso garante que a CLI gcloud use a conta de serviço criada anteriormente.

    export GOOGLE_APPLICATION_CREDENTIALS=PATH_TO_SA_KEY/SA_NAME-key.json
    
  7. Execute o comando gkectl enroll cluster. Substitua:

    • CLUSTER_NAME com o nome do cluster do usuário.
    • ADMIN_CLUSTER_KUBECONFIG é o caminho do arquivo kubeconfig do cluster de administrador.
    gkectl enroll cluster --cluster-name=CLUSTER_NAME \
      --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    Se você tiver mais de um cluster de usuário em um projeto que queira inscrever, use a mesma conta de serviço e chave e execute gkectl enroll cluster para cada cluster.