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:
Garantir conectividade de rede. Se você estiver registrando um cluster do GKE em execução no Google Cloud, isso será feito por padrão.
-
- Instale o SDK do Cloud versão 281.0.0 ou superior.
- Autorize
gcloud
a acessar o Google Cloud:. - Conceda os papéis do Google Cloud IAM necessários ao usuário que registra o cluster.
- Ative as APIs necessárias no seu projeto do Google Cloud:
- Use
gcloud
para criar uma conta de serviço do Google Cloud. Se você escolher usar o Console do Cloud para registrar o Anthos no Google Cloud, por padrão, uma conta de serviço será criada para que você não precise criar uma com antecedência.
-
- Instale kubectl.
- Conceda o papel de RBAC de administrador do cluster ao usuário que registra o cluster.
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)
Determinar se a Identidade da carga de trabalho está ativada no cluster do GKE
Execute o seguinte comando para listar de qual pool de Identidade da carga de trabalho seu cluster é membro
gcloud container clusters describe GKE_CLUSTER --format="value(workloadIdentityConfig.workloadPool)"
Substitua:
- GKE_CLUSTER: o
name
do cluster do GKE para o projeto atual.
Se aparecer um resultado semelhante ao seguinte, a Identidade da carga de trabalho já estará ativada no cluster do GKE, e será possível prosseguir para "Registrar o cluster" abaixo.
GKE_PROJECT_ID.svc.id.goog
Se não houver resultados, a identidade da carga de trabalho não será ativada no cluster do GKE. Mantenha a Identidade da carga de trabalho ativado no cluster do GKE antes de registrá-lo.
- GKE_CLUSTER: o
Ativar a Identidade da carga de trabalho
Siga cuidadosamente as instruções vinculadas para ativar a Identidade da carga de trabalho do GKE. A ativação da Identidade da carga de trabalho do GKE altera o comportamento de autenticação de novos pools de nós criados após a ativação, o que pode afetar os aplicativos que dependem das contas de serviço anexadas às instâncias do Compute Engine no pool de nós.
Registrar o cluster
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, executegcloud 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 namespacegke-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, executegcloud 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 namespacegke-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:
No Console do Google Cloud, acesse a página Clusters do Anthos. Esta página mostra todos os clusters registrados.
Clique em Registrar cluster existente.
Clique em Register ao lado do cluster não registrado que você quer adicionar ao ambiente.
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.
- Se você selecionar Criar uma nova conta de serviço:
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.
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:
No Console do Google Cloud, acesse a página Clusters do Anthos. Esta página mostra todos os clusters registrados.
Clique em Registrar cluster existente.
Clique em Adicionar cluster externo.
Digite o nome do cluster que você quer registrar no campo Nome do cluster.
Opcional: adicione rótulos do Google Cloud ao cluster.
Clique em Gerar comando de registro.
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.
- 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
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"}