Configurar um cluster a ser gerenciado pela API GKE On-Prem

A API GKE On-Prem é uma API hospedada no Google Cloud que permite gerenciar o ciclo de vida dos clusters no local usando ferramentas padrão: o console do Google Cloud, a Google Cloud CLI ou o Terraform. Quando você cria um cluster usando uma dessas ferramentas, a API armazena metadados sobre o estado do cluster na região do Google Cloud especificada na criação. Esses metadados permitem gerenciar o ciclo de vida do cluster usando as ferramentas padrão. Se você quiser usar essas ferramentas para ver detalhes do cluster ou gerenciar o ciclo de vida dos clusters que foram criados usando gkectl, registre os clusters na API GKE On-Prem.

Terminologia

A inscrição de um cluster permite gerenciar o ciclo de vida dele usando o console, a CLI da gcloud ou o Terraform.

O registro de um cluster é um processo separado que o registra para uma frota. Uma frota é um agrupamento lógico de clusters do Kubernetes que podem ser gerenciados juntos. Todos os clusters do GKE no VMware são registrados em uma frota no momento da criação do cluster. Ao criar um cluster usando o gkectl, ele é registrado no projeto do Google Cloud que você especifica no campo gkeConnect.projectID no arquivo de configuração do cluster. Esse projeto é chamado de projeto host da frota. Para saber mais sobre frotas, incluindo casos de uso, práticas recomendadas e exemplos, consulte a documentação Gerenciamento de frotas.

Ver clusters registrados

Todos os clusters da frota são exibidos nas páginas Clusters do GKE Enterprise e Clusters do GKE no console. Isso fornece uma visão geral de toda a frota e, para o GKE no VMware, mostra quais clusters são gerenciados pela API GKE On-Prem.

Para ver os clusters da frota:

  1. No console, acesse a página de clusters do GKE Enterprise.
    Acesse a página de clusters do GKE Enterprise
  2. Selecione o projeto do Google Cloud.
    • Se VMware for exibido na coluna Tipo, o cluster será gerenciado pela API GKE On-Prem.
    • Se Externo aparecer na coluna Tipo, o cluster não será gerenciado pela API GKE On-Prem.
Lista de clusters do GKE Enterprise

Requisitos

  • Os clusters de usuário precisam ser da versão 1.11 ou mais recente.
  • Os clusters de administrador precisam ser da versão 1.13 ou mais recente.

  • Se você não for proprietário de um projeto, precisa receber, no mínimo, o papel roles/gkeonprem.admin do Identity and Access Management. Para ver detalhes sobre as permissões incluídas nesse papel, consulte Papéis do GKE On-Prem na documentação do IAM.

Antes de começar

  1. Configure a CLI da gcloud, se necessário.

    1. Se você precisar instalar a CLI da gcloud, consulte a documentação da CLI da gcloud.

    2. Atualize os componentes da CLI gcloud, se necessário:

      gcloud components update
      
  2. Siga as etapas a seguir para ativar e usar a API GKE On-Prem:

    1. Ative a API no projeto:

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

      Substitua PROJECT_ID pelo ID do projeto host da frota. Este é o ID do projeto que foi configurado na seção gkeconnect do arquivo de configuração do cluster de administrador ou no arquivo de configuração do cluster de usuário.

      Se você receber um erro PERMISSION_DENIED, verifique novamente o ID do projeto inserido. Se o ID do projeto estiver correto, execute gcloud auth login para fazer login na Google Cloud CLI com a conta que tem acesso ao projeto.

    2. Se esta é a primeira vez que você ativa a API GKE On-Prem no projeto, é necessário inicializar a API. Para fazer isso, chame um comando da gcloud CLI que exibe as versões disponíveis que podem ser usadas para criar um cluster:

      gcloud container vmware clusters query-version-config \
          --project=PROJECT_ID \
          --location=REGION
      

      Substitua REGION por us-west1 ou outra região compatível.

  3. 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

    Estes são os nomes de serviço da API GKE On-Prem.

Registrar um cluster de usuário

CLI da gcloud

Role a tela para cima, se necessário, para preencher o marcador ADMIN_CLUSTER_NAME para a flag --admin-cluster-membership.

gcloud container vmware clusters enroll USER_CLUSTER_NAME  \
  --project=PROJECT_ID \
  --admin-cluster-membership=projects/PROJECT_ID/locations/global/memberships/ADMIN_CLUSTER_NAME \
  --location=REGION

Substitua:

  • USER_CLUSTER_NAME: o nome do cluster de usuário que você quer registrar.

  • PROJECT_ID O ID do projeto host da frota.

  • ADMIN_CLUSTER_NAME: o cluster de administrador que gerencia o cluster de usuário. O nome do cluster de administrador é o último segmento do nome totalmente especificado que identifica o cluster no Google Cloud.

  • REGION: a região do Google Cloud em que a API GKE On-Prem executa e armazena metadados de cluster. Especifique us-west1 ou outra região compatível. Após o registro do cluster, não é possível alterar a região.

gkectl

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

  1. Adicione a seguinte seção ao arquivo de configuração do cluster de administrador:

    gkeOnPremAPI:
      enabled:true
      location:REGION
    

    Substitua REGION pela região do Google Cloud em que a API GKE On-Prem executa e armazena metadados de cluster. Especifique us-west1 ou outra região compatível. Após o registro do cluster, não é possível alterar a região.

  2. Atualize o cluster:

    gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG_FILE
    

    Substitua:

    • ADMIN_CLUSTER_KUBECONFIG: o caminho do arquivo kubeconfig do cluster de administrador

    • USER_CLUSTER_CONFIG_FILE: o caminho do arquivo de configuração do cluster de usuário.

Registrar um cluster de administrador

CLI da gcloud

gcloud container vmware admin-clusters enroll ADMIN_CLUSTER_NAME \
    --project=PROJECT_ID \
    --admin-cluster-membership=projects/PROJECT_ID/locations/global/memberships/ADMIN_CLUSTER_NAME \
    --location=REGION

Substitua:

  • ADMIN_CLUSTER_NAME: o nome do cluster de administrador que você quer registrar.

  • PROJECT_ID O ID do projeto host da frota.

    O ADMIN_CLUSTER_NAME e o PROJECT_ID são usados para formar o nome do cluster totalmente especificado para o flag --admin-cluster-membership.

  • REGION: a região do Google Cloud em que a API GKE On-Prem executa e armazena metadados de cluster. Especifique us-west1 ou outra região compatível. Recomendamos usar a mesma região configurada em stackdriver.clusterLocation. Após o registro do cluster, não é possível alterar a região.

gkectl

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

  1. Adicione a seguinte seção ao arquivo de configuração do cluster de administrador:

    gkeOnPremAPI:
      enabled:true
      location:REGION
    

    Substitua REGION pela região do Google Cloud em que a API GKE On-Prem executa e armazena metadados de cluster. Especifique us-west1 ou outra região compatível. Recomendamos usar a mesma região configurada em stackdriver.clusterLocation. Após o registro do cluster, não é possível alterar a região.

  2. Atualize o cluster:

    gkectl update admin --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config ADMIN_CLUSTER_CONFIG_FILE
    

    Substitua:

    • ADMIN_CLUSTER_KUBECONFIG: o caminho do arquivo kubeconfig do cluster de administrador

    • ADMIN_CLUSTER_CONFIG_FILE: o caminho do arquivo de configuração do cluster de administrador.

Receber informações sobre o cluster

Depois que o cluster for registrado, será possível usar os seguintes comandos para receber informações sobre os clusters:

Cluster de usuário

  • Para descrever um cluster de usuário:
gcloud container vmware clusters describe USER_CLUSTER_NAME \
  --project=PROJECT_ID \
  --location=REGION
  • Para listar os clusters de usuário:
gcloud container vmware clusters list \
  --project=PROJECT_ID \
  --location=-

Definir --location=- significa listar todos os clusters em todas as regiões. Se você precisar reduzir o escopo da lista, defina --location como a região especificada ao registrar o cluster.

Cluster de administrador

  • Para descrever um cluster de administrador:
gcloud container vmware admin-clusters describe ADMIN_CLUSTER_NAME \
  --project=PROJECT_ID \
  --location=REGION
  • Para listar os clusters de administrador:
gcloud container vmware admin-clusters list \
  --project=PROJECT_ID \
  --location=-

Definir --location=- significa listar todos os clusters em todas as regiões. Se você precisar reduzir o escopo da lista, defina --location como a região especificada ao registrar o cluster.

Conectar ao cluster

Depois que o cluster for registrado com a API GKE On-Prem, escolha e configure um método de autenticação para gerenciar o cluster no console do Google Cloud. O método de autenticação selecionado também controla o acesso ao cluster pela linha de comando. Para ver mais informações, consulte os seguintes tópicos: