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 bmctl, 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 em bare metal são registrados em uma frota no momento da criação do cluster. Ao criar um cluster usando o bmctl, o cluster é registrado no projeto do Google Cloud especificado no campo gkeConnect.projectID do 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 em Bare Metal, permite ver 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 Bare metal 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

  • Apenas clusters de usuário e administrador podem ser registrados na API GKE On-Prem. Não é possível registrar clusters híbridos e independentes.
  • 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. Atualize os componentes da gcloud CLI, 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. Esse é o ID do projeto que foi configurado na seção gkeconnect do arquivo de configuração do cluster.

      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 bare-metal 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 de APIs do Google 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 bare-metal 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.

bmctl

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:

    bmctl update cluster -c USER_CLUSTER_NAME \
      --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    Substitua:

    • USER_CLUSTER_NAME: o nome do cluster de usuário a ser atualizado.

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

Registrar um cluster de administrador

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 bare-metal 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. Após o registro do cluster, não é possível alterar a região.

bmctl

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:

    bmctl update cluster -c ADMIN_CLUSTER_NAME \
    --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    Substitua:

    • ADMIN_CLUSTER_NAME: o nome do cluster de administrador a ser atualizado.

    • ADMIN_CLUSTER_KUBECONFIG: o caminho do arquivo kubeconfig 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 bare-metal clusters describe USER_CLUSTER_NAME \
    --project=PROJECT_ID \
    --location=REGION
  • Para listar os clusters de usuário:
gcloud container bare-metal 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 bare-metal admin-clusters describe ADMIN_CLUSTER_NAME \
    --project=PROJECT_ID \
    --location=REGION
  • Para listar os clusters de administrador:
gcloud container bare-metal 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 na API GKE On-Prem, escolha e configure um método de autenticação para que seja possível 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: