Instalar o Config Connector manualmente
Esta página explica como instalar manualmente o Config Connector.
Para mais informações sobre as diferentes opções de instalação, consulte Como escolher um tipo de instalação.
As atualizações oferecidas pelo método manual de instalação são mais rápidas que as do complemento.
O Config Connector é configurado como modo de cluster nas instruções abaixo, o que significa que haverá um controlador global do Config Connector representado como uma única conta de serviço do IAM Google Cloud . À medida que você adiciona mais recursos do Config Connector e introduz mais namespaces do Kubernetes no mesmo cluster, talvez seja interessante mudar para o modo com namespace, que é mais escalonável e oferece melhor isolamento de permissões do IAM para casos de uso multitenant, por exemplo, gerenciamento de recursos de vários projetos Google Cloud .
Antes de começar
Antes de instalar manualmente o operador do Config Connector, conclua as etapas a seguir:
- Crie ou identifique um cluster do GKE em que o Config Connector ainda não tenha sido instalado e aIdentidade da carga de trabalho e o Kubernetes Engine Monitoring estejam ativados.
- Configurar
kubectl
para se conectar ao seu cluster.
Como instalar o operador do Config Connector
O Config Connector usa um operador do Kubernetes para manter a instalação atualizada. Para instalar esse operador, conclua as etapas a seguir:
Faça o download do arquivo .tar mais recente do operador do Config Connector:
gcloud storage cp gs://configconnector-operator/latest/release-bundle.tar.gz release-bundle.tar.gz
Extraia o arquivo tar:
tar zxvf release-bundle.tar.gz
Instale o operador do Config Connector no cluster:
Para clusters do GKE Autopilot:
kubectl apply -f operator-system/autopilot-configconnector-operator.yaml
Para clusters do GKE Standard:
kubectl apply -f operator-system/configconnector-operator.yaml
Criar uma identidade
O Config Connector cria e gerencia recursos do Google Cloud usando a autenticação com uma conta de serviço do Identity and Access Management (IAM) e a federação de identidade da carga de trabalho para o 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:
Crie uma conta de serviço do IAM. Se você quiser, poderá usar uma conta de serviço atual e pular esta etapa:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Substitua SERVICE_ACCOUNT_NAME por um nome para a conta de serviço.
Para saber mais sobre como criar contas de serviço, consulte Como criar e gerenciar contas 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/editor"
Substitua PROJECT_ID pela ID do seu projeto.
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"
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
CRDs de recursosGoogle Cloud e componentes do Config Connector no cluster.
Para configurar o operador como modo de cluster, siga estas etapas:
-
Copie o seguinte arquivo YAML para um arquivo chamado
configconnector.yaml
: Substitua:# 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" # Setting `stateIntoSpec` to `Absent` is recommended. It means setting `cnrm.cloud.google.com/state-into-spec` # annotation to `absent` for all Config Connector resources created in the cluster in the future. # It prevents Config Connector from populating unspecified fields into the spec. stateIntoSpec: Absent
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 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
com seu Google Cloud ID do projeto.
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 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 sua Google Cloud organização.
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
Para fazer o download e instalar a versão mais recente do operador do Config Connector:
gcloud storage cp gs://configconnector-operator/latest/release-bundle.tar.gz release-bundle.tar.gz
tar zxvf release-bundle.tar.gz
kubectl apply -f operator-system/configconnector-operator.yaml
Como fazer downgrade do Config Connector
Não é possível fazer downgrade completo do Config Connector. Para fazer downgrade do operador e dos CRDs do Config Connector, desinstale, reinstale o Config Connector e aplique novamente os recursos.
Na versão 1.123.1 e mais recentes do Config Connector, é possível reverter da versão do operador
para instalações que usam o modo com namespace.
Em cada namespace que tem um operador que você quer reverter, defina o campo spec.version
no objeto ConfigConnectorContext
para a versão anterior do Config Connector.
É possível reverter do controlador do Config Connector em até três versões secundárias. Sempre faça reverter para a versão de patch mais recente de uma determinada versão secundária.
Como desinstalar o Config Connector
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
Para desinstalar o operador do Config Connector, execute o seguinte comando:
kubectl delete -f operator-system/configconnector-operator.yaml --wait=true
Como fazer upgrade de instalações que não são de operador
O Config Connector 1.33.0 e versões mais recentes são compatíveis apenas com a instalação por meio do complemento do GKE ou do operador.
Para fazer upgrade para o operador (e manter todos os recursos do Config Connector), é preciso remover todos os componentes do sistema do Config Connector, exceto os CRDs, e instalar o operador.
Execute os seguintes comandos para remover os componentes do sistema do Config Connector que não são CRD:
kubectl delete sts,deploy,po,svc,roles,clusterroles,clusterrolebindings --all-namespaces -l cnrm.cloud.google.com/system=true --wait=true kubectl delete validatingwebhookconfiguration abandon-on-uninstall.cnrm.cloud.google.com --ignore-not-found --wait=true kubectl delete validatingwebhookconfiguration validating-webhook.cnrm.cloud.google.com --ignore-not-found --wait=true kubectl delete mutatingwebhookconfiguration mutating-webhook.cnrm.cloud.google.com --ignore-not-found --wait=true
Instale o Config Connector usando o complemento do GKE ou o operador.
Migrar do complemento para uma instalação manual
Quando instalado como um complemento, a versão do Config Connector é vinculada diretamente à versão do GKE instalada.
A instalação manual permite atualizações mais rápidas ao custo de upgrades manuais.
Para manter todos os recursos com segurança, faça o seguinte:
Desative o complemento sem excluir nenhum objeto
ConfigConnector
ouConfigConnectorContext
:gcloud container clusters update CLUSTER_NAME --update-addons ConfigConnector=DISABLED
Substitua
CLUSTER_NAME
pelo nome do cluster em que você instalou o Config Connector.Instale o operador manual da versão escolhida.
Para evitar possíveis erros de validação de CRD (por exemplo,
KNV2009: Invalid value: "v1beta1": must appear in spec.versions
), a versão escolhida do operador manual precisa ser igual ou mais recente do que a versão usada para o complemento. Fazer downgrade da versão do operador manual pode causar erros (por exemplo, KNV2009) porque o complemento do GKE já pode ter feito upgrade de determinados CRDs para uma versão mais recente do Config Connector.
A seguir
- Introdução ao Config Connector.
- Conheça as práticas recomendadas para o Config Connector.