Nesta página, descrevemos como instalar o Config Connector em um cluster do Google Kubernetes Engine (GKE) usando o complemento Config Connector.
Se você estiver usando o GKE no Google Cloud, recomendamos instalar o Config Connector usando esse complemento. Para detalhes sobre outras opções de instalação, consulte Como escolher um tipo de instalação.
Antes de começar
Antes de começar, verifique se você realizou as tarefas a seguir:
- Verifique se você ativou a API Google Kubernetes Engine. Ativar a API Google Kubernetes Engine
- Verifique se o SDK do Cloud está instalado.
Defina as configurações padrão da gcloud
usando um dos métodos a seguir:
- Use
gcloud init
se quiser orientações para definir os padrões. - Use
gcloud config
para definir individualmente a região, a zona e o ID do projeto.
Como usar o gcloud init
Se você receber o erro One of [--zone, --region] must be supplied: Please specify
location
, conclua esta seção.
-
Execute
gcloud init
e siga as instruções:gcloud init
Se você estiver usando SSH em um servidor remoto, utilize a sinalização
--console-only
para impedir que o comando inicie um navegador:gcloud init --console-only
-
Siga as instruções para autorizar a
gcloud
a usar sua conta do Google Cloud. - Crie uma nova configuração ou selecione uma atual.
- Escolha um projeto do Google Cloud.
- Escolha uma zona padrão do Compute Engine para clusters zonais ou uma região para clusters regionais ou do piloto automático.
Como usar o gcloud config
- Defina o ID do projeto padrão:
gcloud config set project PROJECT_ID
- Se você estiver trabalhando com clusters zonais, defina a zona do Compute padrão:
gcloud config set compute/zone COMPUTE_ZONE
- Se você estiver trabalhando com clusters automáticos ou clusters regionais, defina a região do Compute padrão:
gcloud config set compute/region COMPUTE_REGION
- Atualize
gcloud
para a versão mais recente:gcloud components update
- Selecione ou crie um projeto do Google Cloud para instalar o Config Connector.
Como instalar o complemento Config Connector
Use o complemento Config Connector criando um novo cluster do GKE ou ativando-o em um cluster existente. Depois de instalar o complemento Config Connector, configure a instalação com suas Contas de serviço do Google e seus namespaces.
Requisitos
Os requisitos do complemento Config Connector são os seguintes:
Use uma versão do GKE de:
- 1.15.11-gke.5 e superior
- 1.16.8-gke.8 e superior
- 1.17.4-gke.5 e superior
É preciso ativar um pool de Identidade da carga de trabalho e o Kubernetes Engine Monitoring nos clusters em que o Config Connector é ativado.
Como configurar um cluster do GKE
Use o complemento Config Connector em um cluster novo ou atual.
Como criar um novo cluster com o complemento Config Connector ativado
É possível criar um cluster do GKE usando a ferramenta gcloud
ou o
Console do Google Cloud.
gcloud
Para criar um cluster com a ferramenta de linha de comando gcloud
, execute o
comando a seguir:
gcloud container clusters create CLUSTER_NAME \
--release-channel CHANNEL \
--addons ConfigConnector \
--workload-pool=PROJECT_ID.svc.id.goog \
--enable-stackdriver-kubernetes
Substitua:
- CLUSTER_NAME pelo nome do cluster do GKE.
- CHANNEL com um
canal de lançamento do GKE,
rapid
eregular
são compatíveis. - PROJECT_ID pelo ID do projeto do Google Cloud.
Cloud Console
Para criar um cluster com o Console do Google Cloud, siga estas etapas:
Acesse o menu do Google Kubernetes Engine no Console do Cloud.
Clique em Criar. A página Criar um cluster do Kubernetes será exibida.
Especifique o Nome do cluster.
Selecione uma Versão principal compatível.
Configure o restante do cluster como quiser.
No painel de navegação, em Cluster, clique em Segurança.
Marque a caixa de seleção Ativar identidade de carga de trabalho.
No painel de navegação à esquerda, em Cluster, clique em Recursos.
Marque a caixa de seleção Ativar Config Connector.
Clique em Criar.
Depois de criar o cluster, acesse Como criar uma identidade.
Como ativar o complemento Config Connector em um cluster existente
É possível ativar o complemento Config Connector em um cluster do GKE
atual com o gcloud
ou o Console do Google Cloud.
Pré-requisitos
A ativação do complemento Config Connector em um cluster atual tem os seguintes pré-requisitos:
- Você precisa de um cluster que atenda aos requisitos do complemento Config Connector.
Configure a Identidade da carga de trabalho no cluster em que você quer instalar o Config Connector.
Para ativar os metadados do GKE no seu pool de nós, use a ferramenta de linha de comando gcloud
:
gcloud container node-pools update NODE_POOL --workload-metadata=GKE_METADATA \
--cluster CLUSTER_NAME
Substitua:
- NODE_POOL pelo nome do pool de nós;
- CLUSTER_NAME pelo nome do cluster.
Como ativar o complemento Config Connector.
É possível ativar o complemento Config Connector em um cluster atual do GKE
com a ferramenta de linha de comando gcloud
ou o Console do Google Cloud.
gcloud
Para ativar o complemento Config Connector em um cluster existente do GKE, use a ferramenta de linha de comando gcloud
:
gcloud container clusters update CLUSTER_NAME \
--update-addons ConfigConnector=ENABLED
Substitua CLUSTER_NAME pelo nome do cluster do GKE.
Cloud Console
Acesse o menu do Google Kubernetes Engine no Console do Cloud.
Selecione o cluster no qual você quer instalar o Config Connector. A página Detalhes do cluster é exibida.
Na seção Recursos, localize a linha do Config Connector e clique em
Editar.Marque a caixa de seleção Ativar o Config Connector e clique em Salvar alterações para atualizar o cluster.
Como criar uma identidade
O Config Connector cria e gerencia recursos do Google Cloud usando a autenticação com uma conta de serviço de gerenciamento de identidade e acesso (IAM) e a Identidade da carga de trabalho do GKE para vincular contas de serviço do IAM a contas de serviço do Kubernetes.
Para criar a identidade, conclua as etapas a seguir:
-
Criar uma conta de serviço do IAM Se você quiser, poderá usar uma conta de serviço atual
e pular esta etapa.
Para criar uma conta de serviço, use o seguinte comando:gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
SubstituaSERVICE_ACCOUNT_NAME
por um nome para a conta de serviço. -
Conceda à Conta de serviço do IAM permissões elevadas no
projeto:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/owner"
Substitua:PROJECT_ID
pelo código do projeto;SERVICE_ACCOUNT_NAME
pelo nome da conta de serviço.
-
Crie uma vinculação de política do IAM entre a conta de
serviço do IAM e a conta de serviço predefinida do Kubernetes que o
Config Connector executa:
gcloud iam service-accounts add-iam-policy-binding \ SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \ --member="serviceAccount:PROJECT_ID.svc.id.goog[cnrm-system/cnrm-controller-manager]" \ --role="roles/iam.workloadIdentityUser"
Substitua:SERVICE_ACCOUNT_NAME
pelo nome da conta de serviço;PROJECT_ID
pelo código do projeto;
Para saber mais sobre como criar contas de serviço, consulte Como criar e gerenciar contas de serviço.
Como configurar o Config Connector
Para concluir a instalação, crie um arquivo de configuração para o
CustomResource ConfigConnector
e, em seguida, aplique-o usando
o comando kubectl apply
. O operador do Config Connector instala
as CRDs do Google Cloud Resource e os componentes do Config Connector no cluster.
Para configurar o operador, conclua as seguintes etapas:
-
Copie o seguinte arquivo do YAML para um arquivo chamado
configconnector.yaml
:# configconnector.yaml apiVersion: core.cnrm.cloud.google.com/v1beta1 kind: ConfigConnector metadata: # the name is restricted to ensure that there is only one # ConfigConnector resource installed in your cluster name: configconnector.core.cnrm.cloud.google.com spec: mode: cluster googleServiceAccount: "SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com"
Substitua:SERVICE_ACCOUNT_NAME
pelo nome da conta de serviço;PROJECT_ID
pelo código do projeto;
- Aplique a configuração ao cluster com
kubectl apply
:kubectl apply -f configconnector.yaml
Como especificar o local para criar os recursos
O Config Connector pode organizar recursos por projeto, pasta ou organização, da mesma forma que você organizaria recursos com o Google Cloud.
Antes de criar recursos com o Config Connector, você precisa configurar onde criar seus recursos. Para determinar onde criar o recurso, o Config Connector usa uma anotação na configuração do recurso ou em um namespace atual. Para mais informações, consulte Como organizando recursos.
Se você não tiver um namespace para essa finalidade, crie um comkubectl
.
kubectl create namespace NAMESPACE
Substitua NAMESPACE
pelo nome do namespace. Por exemplo: config-connector
.
Selecione uma guia para escolher onde quer que o Config Connector crie recursos.
Projeto
Para criar recursos em determinado projeto, execute o seguinte comando:
kubectl annotate namespace \ NAMESPACE cnrm.cloud.google.com/project-id=PROJECT_ID
Substitua:
NAMESPACE
pelo nome do namespace;PROJECT_ID
pelo ID do projeto do Google Cloud.
Pasta
Para criar recursos em determinada pasta, execute o seguinte comando:
kubectl annotate namespace \ NAMESPACE cnrm.cloud.google.com/folder-id=FOLDER_ID
Substitua:
NAMESPACE
pelo nome do namespace;FOLDER_ID
pelo ID da pasta do Google Cloud.
Organização
Para criar recursos em determinada organização, execute o seguinte comando:
kubectl annotate namespace \ NAMESPACE cnrm.cloud.google.com/organization-id=ORGANIZATION_ID
Substitua:
NAMESPACE
pelo nome do namespace;ORGANIZATION_ID
pelo ID da organização do Google Cloud.
Quando você anota o namespace, o Config Connector cria recursos no projeto, na pasta ou na organização correspondente. Para saber mais sobre como o Config Connector usa namespaces do Kubernetes, consulte Namespaces do Kubernetes e projetos do Google Cloud.
Como verificar a instalação
Todos os componentes do Config Connector são executados em um namespace chamado cnrm-system
.
Para verificar se os pods estão prontos, execute o comando a seguir:
kubectl wait -n cnrm-system \
--for=condition=Ready pod --all
Se o Config Connector estiver instalado corretamente, o resultado será semelhante a este:
pod/cnrm-controller-manager-0 condition met
Como fazer upgrade do Config Connector
O complemento Config Connector recebe upgrades para uma nova versão secundária com o cluster do GKE. Os recursos do cluster são preservados sempre que ocorre um upgrade.
Como desinstalar o Config Connector
Para desinstalar o Config Connector, siga estas etapas:
Use
kubectl delete
para remover as CRDs do Config Connector e os componentes do controlador:kubectl delete ConfigConnector configconnector.core.cnrm.cloud.google.com --wait=true
Desative o complemento Config Connector no cluster usando a ferramenta
gcloud
ou o Console do Google Cloud:gcloud
Para desativar o complemento Config Connector com
gcloud
, execute o seguinte comando:gcloud container clusters update CLUSTER_NAME --update-addons ConfigConnector=DISABLED
Substitua CLUSTER_NAME pelo nome do cluster que tem o complemento Config Connector instalado.
Cloud Console
Para desativar o complemento Config Connector no Console do Google Cloud, execute as etapas a seguir.
Acesse a página "Clusters" do Google Kubernetes Engine no Console do Google Cloud e selecione o cluster que você quer atualizar.
Clique em Edit. A tela Editar clusters é exibida.
Clique em Complementos.
Selecione Config Connector e escolha Desativado.
Clique em Salvar para atualizar seu cluster.
Solução de problemas
Nas seções a seguir, fornecemos dicas de solução de problemas para a instalação do seu conector de configuração.
Solução de problemas de instalações de complementos do Config Connector
Se não for possível ativar o complemento Config Connector, a seguinte
mensagem de erro será exibida: Node version 1.15.x-gke.x s unsupported
. Para resolver esse erro,
verifique se a versão do cluster do GKE atende aos
requisitos.
Para ver todas as versões válidas para os clusters, execute o comando a seguir.
gcloud container get-server-config --format "yaml(validMasterVersions)" \
--zone ZONE"
Substitua ZONE pela zona do Compute Engine.
Escolha na lista uma versão que atenda aos requisitos. A mensagem de erro também será exibida se a Identidade da carga de trabalho ou o Kubernetes Engine Monitoring estiver desativado. Verifique se esses recursos estão ativados para corrigir o erro.
Solução de problemas de permissões para reconciliações de recursos
Se o Google Cloud não puder reconciliar recursos com êxito, os registros conterão a seguinte mensagem de erro:
The caller does not have permission, forbidden.
Para investigar o erro, conclua as seguintes etapas:
- Abra um shell com a imagem cloud-sdk:
kubectl run -it \ --image google/cloud-sdk:slim \ --serviceaccount cnrm-controller-manager \ --namespace cnrm-system \ workload-identity-test
- Liste sua identidade:
gcloud auth list
- Verifique se a identidade listada corresponde à conta de serviço do Google, vinculada aos recursos.
- Verifique se a conta de serviço do Google tem os papéis necessários para gerenciar os recursos do Google Cloud.
A seguir
- Introdução ao Config Connector.
- Saiba como instalar o Config Connector para outros provedores de nuvem.
- Saiba mais sobre as opções de instalação avançada do Config Connector.