Como registrar um cluster

Esta página descreve como registrar manualmente seus clusters do Kubernetes no Google Cloud.

Antes de começar

Antes de registrar seus clusters do Kubernetes no Google Cloud pela primeira vez, conclua os seguintes pré-requisitos da rede, do Google Cloud e do Kubernetes:

  1. Garantir conectividade de rede. Se você estiver registrando um cluster do GKE em execução no Google Cloud, isso será feito por padrão.

  2. Configurações do Google Cloud

  3. Configurações do Kubernetes

Registrar um cluster

gcloud

Registrar um GKE no cluster do Google Cloud

Ao registrar o cluster, é possível configurar o agente do Connect para usar a Identidade da carga de trabalho ou usar uma conta de serviço do Google Cloud.

Como registrar um cluster usando a Identidade da carga de trabalho (recomendado)

Execute um dos seguintes comandos para registrar o cluster:

gcloud beta container hub memberships register MEMBERSHIP_NAME \
   --gke-uri=GKE_URI \
   --enable-workload-identity

ou

gcloud beta container hub memberships register MEMBERSHIP_NAME \
   --gke-cluster=GKE_CLUSTER \
   --enable-workload-identity

Substitua:

  • MEMBERSHIP_NAME: o nome da assinatura que você escolhe para representar de maneira exclusiva o cluster que está sendo registrado no Hub.
  • GKE_URI: o URI do cluster do GKE, por exemplo: https://container.googleapis.com/projects/my-gke-project/locations/us-central1-a/clusters/my-gke-cluster. Para conseguir o URI, execute gcloud container clusters list --uri.
  • GKE_CLUSTER: a location/name do cluster do GKE do projeto atual. O local pode ser uma zona ou região, por exemplo: us-central1-a/my-gke-cluster.

Como registrar um cluster usando a conta de serviço

Execute um dos seguintes comandos:

gcloud container hub memberships register MEMBERSHIP_NAME \
   --gke-uri=GKE_URI \
   --service-account-key-file=SERVICE_ACCOUNT_KEY_PATH

ou

gcloud container hub memberships register MEMBERSHIP_NAME \
   --gke-cluster=GKE_CLUSTER \
   --service-account-key-file=SERVICE_ACCOUNT_KEY_PATH

Substitua:

  • MEMBERSHIP_NAME: o nome da assinatura que você escolhe para representar de maneira exclusiva o cluster que está sendo registrado no Hub.
  • SERVICE_ACCOUNT_KEY_PATH: o caminho do arquivo local para o arquivo JSON da chave privada da conta de serviço baixado como parte dos Pré-requisitos. Esta chave de conta de serviço é armazenada como um secret chamado creds-gcp no namespace gke-connect.
  • GKE_URI: o URI do cluster do GKE, por exemplo: https://container.googleapis.com/projects/my-gke-project/locations/us-central1-a/clusters/my-gke-cluster. Para conseguir o URI, execute gcloud container clusters list --uri.
  • GKE_CLUSTER: a location/name do cluster do GKE do projeto atual. O local pode ser uma zona ou região, por exemplo: us-central1-a/my-gke-cluster.

Registrar clusters não-GKE, do Anthos no AWS ou de clusters do Anthos no cluster do VMware

Execute este comando:

 gcloud container hub memberships register MEMBERSHIP_NAME \
   --context=KUBECONFIG_CONTEXT \
   --kubeconfig=KUBECONFIG_PATH \
   --service-account-key-file=SERVICE_ACCOUNT_KEY_PATH

Substitua:

  • MEMBERSHIP_NAME: o nome da assinatura que você escolher e que é usado para representar exclusivamente o cluster que está sendo registrado no Hub.
  • SERVICE_ACCOUNT_KEY_PATH: o caminho do arquivo local para o arquivo JSON da chave privada da conta de serviço baixado como parte dos Pré-requisitos. Esta chave de conta de serviço é armazenada como um secret chamado creds-gcp no namespace gke-connect.
  • KUBECONFIG_CONTEXT: o contexto do cluster que está sendo registrado da forma como aparece no arquivo kubeconfig. É possível conseguir esse valor a partir da linha de comando executando kubectl config current-context.
  • KUBECONFIG_PATH: o caminho de arquivo local em que o kubeconfig que contém uma entrada para o cluster que está sendo registrado é armazenado. O padrão é $KUBECONFIG se essa variável de ambiente estiver definida. Caso contrário, o padrão será $HOME/.kube/config.

Console

Registrar um cluster do Anthos no Google Cloud

Estas instruções se aplicam aos clusters do GKE no Google Cloud em projetos com o Anthos ativado.

Para registrar um cluster:

  1. No Console do Google Cloud, acesse a página Clusters do Anthos. Esta página mostra todos os clusters registrados.

    Acessar a página de clusters do Anthos

  2. Clique em Registrar cluster existente.

  3. Clique em Register ao lado do cluster não registrado que você quer adicionar ao ambiente.

  4. Especifique a conta de serviço que você quer usar ao registrar o cluster. Recomendamos manter o comportamento padrão e criar uma nova conta de serviço.

    • Se você selecionar Criar uma nova conta de serviço:
      • Especifique um ID da conta de serviço para identificar sua nova conta de serviço.
      • Escolha se você quer fazer o download da chave da conta de serviço como um arquivo JSON. Recomendamos manter o comportamento padrão e fazer o download da chave, porque não será possível fazer o download dela posteriormente.
    • Se você selecionar Usar conta de serviço existente, cole a chave da conta de serviço da conta no formato JSON.
  5. Opcional: especifique um novo nome de associação para o cluster. Por padrão, o nome da associação de um cluster é seu nome atual. No entanto, se o nome do cluster não for exclusivo no projeto, você precisará especificar um novo nome de associação exclusivo, porque todos os clusters exigem um identificador exclusivo no ambiente.

  6. Para registrar seu cluster, clique em Enviar.

Registrar qualquer outro cluster

Estas instruções se aplicam a clusters que não são do GKE, Anthos no AWS, clusters Anthos no VMware e qualquer outro cluster do GKE.

Para registrar um cluster:

  1. No Console do Google Cloud, acesse a página Clusters do Anthos. Esta página mostra todos os clusters registrados.

    Acessar a página de clusters do Anthos

  2. Clique em Registrar cluster existente.

  3. Clique em Adicionar cluster externo.

  4. Digite o nome do cluster que você quer registrar no campo Nome do cluster.

  5. Opcional: adicione rótulos do Google Cloud ao cluster.

  6. Clique em Gerar comando de registro.

  7. No Cloud Shell ou no local em que você salvou as credenciais da conta de serviço, edite e execute o comando gcloud exibido na página. Você precisa especificar os seguintes valores:

    • O CLUSTER_CONTEXT é o contexto do cluster como ele aparece no arquivo kubeconfig. É possível conseguir esse valor a partir da linha de comando executando kubectl config current-context.
    • O KUBECONFIG_PATH é o caminho de arquivo local em que o arquivo kubeconfig está armazenado. O padrão é $KUBECONFIG se essa variável de ambiente estiver definida. Caso contrário, o padrão será $HOME/.kube/config.
    • O LOCAL_KEY_PATH é o caminho para o arquivo de chave da sua conta de serviço;

    A execução desse comando implanta o agente do Connect no cluster de usuário. Quando o agente do Connect se conecta ao Google Cloud e seu cluster é registrado, uma mensagem de sucesso é exibida na página.

  8. Clique em Definir rótulos ou em Pular se você não tiver configurado nenhum rótulo.

Opções avançadas de registro (somente para a linha de comando)

Fazer o download do manifesto do agente do Connect

Para fazer o download do manifesto de instalação do agente do Connect sem implantar o agente, por exemplo, se você quiser examinar ou editar o manifesto antes da instalação, transmita a sinalização --manifest-output-file para o comando gcloud container hub memberships register. Exemplo:

--manifest-output-file=[MANIFEST_FILE_PATH]

em que [MANIFEST_FILE_PATH] é o caminho de arquivo local em que você quer que o manifesto de instalação do agente do Connect seja armazenado.

Usar essa opção não implantará o agente do Connect no cluster. Para implantar o Connect Agent, aplique manualmente o manifesto salvo ao seu cluster.

Como usar um servidor proxy

Para configurar um servidor proxy, transmita a sinalização --proxy para o comando gcloud container hub memberships register. Exemplo:

--proxy=[URL]

em que [URL] é o endereço do proxy.

O agente do Connect é compatível somente com proxys HTTP e HTTPS baseados no CONNECT e aceita endereços IP e nomes do host. Certifique-se de especificar o protocolo correspondente ao tipo de proxy no URL. Por exemplo, para transmitir um nome do host HTTPS:

--proxy=https://mycorpproxy.com:443

A menos que você especifique o contrário, o agente do Connect usa a porta 3128 no proxy.

Se o proxy exigir autorização, certifique-se de transmitir as credenciais, como:

--proxy=http://user:password@10.10.10.10:8888

Como instalar o Connect Agent em um cluster com nós do Windows e Linux

O agente do Connect precisa ser executado em um nó do Linux. Se você estiver instalando em um cluster misto com nós do Linux e do Windows, garanta a implantação do agente do Connect em um nó do Linux adicionando um seletor de nós apropriado à definição de implantação.

Execute o seguinte comando para atualizar a implantação com o seletor de nós apropriado:

kubectl patch deployment \
$(kubectl get deployment -o=jsonpath={.items[*].metadata.name} -n gke-connect) \
-p '{"spec":{"template":{"spec":{"nodeSelector":{"kubernetes.io/os":"linux"}}}}}' -n gke-connect

Para confirmar se a atualização foi bem-sucedida, execute o seguinte comando:

kubectl get deployment -o=jsonpath={.items[].spec.template.spec.nodeSelector} -n gke-connect

O comando retornará:

{"kubernetes.io/os":"linux"}

A seguir