Instale o Config Connector no modo com espaço de nomes
Esta página explica como instalar o Config Connector no modo com espaço de nomes.
A instalação no modo de espaço de nomes é uma extensão da instalação do Config Connector. O modo com espaço de nomes suporta a gestão de vários projetos, cada um com as suas próprias Google Cloud identidades.
Antes de começar
Antes de configurar o Config Connector para ser executado no modo com espaço de nomes, certifique-se de que instalou o Config Connector.
Configure o Config Connector para ser executado no modo com espaço de nomes
Para ativar o modo com espaço de nomes, conclua os seguintes passos:
Copie o seguinte manifesto YAML para um ficheiro com o nome
configconnector.yaml
:apiVersion: core.cnrm.cloud.google.com/v1beta1 kind: ConfigConnector metadata: # the name is restricted to ensure that there is only ConfigConnector resource installed in your cluster name: configconnector.core.cnrm.cloud.google.com spec: mode: namespaced stateIntoSpec: Absent
Aplique a configuração ao cluster com
kubectl apply
:kubectl apply -f configconnector.yaml
Configure o Config Connector para gerir recursos nos seus espaços de nomes
Nas secções seguintes, o Google Cloud projeto onde instala o Config Connector é conhecido como o projeto anfitrião ou HOST_PROJECT_ID. Os outros projetos nos quais gere recursos são conhecidos como projetos geridos ou MANAGED_PROJECT_ID. Pode ser o mesmo projeto se pretender usar o Config Connector apenas para criar recursos no mesmo projeto que o seu cluster. Google Cloud
Criar um espaço de nomes
Pode ignorar este passo se já tiver um espaço de nomes para usar na organização dosGoogle Cloud recursos.
Use kubectl
para criar um novo espaço de nomes executando o seguinte comando:
kubectl create namespace NAMESPACE
Substitua NAMESPACE por um nome para o espaço de nomes.
Criar uma identidade
Crie uma conta de serviço de gestão de identidade e de acesso (IAM) e crie uma associação entre a conta de serviço de IAM e a conta de serviço do Kubernetes do Config Connector:
Crie uma conta de serviço do IAM. Se tiver uma conta de serviço existente, pode usá-la em vez de criar uma nova conta de serviço. Use
gcloud
para criar a conta de serviço executando o seguinte comando:gcloud iam service-accounts create NAMESPACE_GSA --project HOST_PROJECT_ID
Substitua o seguinte:
- NAMESPACE_GSA com o nome da conta de serviço Google (GSA) associada ao seu espaço de nomes.
- HOST_PROJECT_ID com o ID do projeto anfitrião.
Para saber mais sobre como criar contas de serviço, consulte o artigo Criar e gerir contas de serviço.
Conceda autorizações elevadas à conta de serviço do IAM no seu projeto gerido.
gcloud projects add-iam-policy-binding MANAGED_PROJECT_ID \ --member="serviceAccount:NAMESPACE_GSA@HOST_PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/owner"
Substitua MANAGED_PROJECT_ID pelo ID do seu projeto gerido.
Crie uma associação de política IAM entre a conta de serviço IAM e a conta de serviço do Kubernetes do Config Connector. Associe as contas de serviço executando o seguinte comando
gcloud
:gcloud iam service-accounts add-iam-policy-binding \ NAMESPACE_GSA@HOST_PROJECT_ID.iam.gserviceaccount.com \ --member="serviceAccount:HOST_PROJECT_ID.svc.id.goog[cnrm-system/cnrm-controller-manager-NAMESPACE]" \ --role="roles/iam.workloadIdentityUser"
Substitua NAMESPACE pelo seu espaço de nomes.
Conceda autorizações à conta de serviço do IAM para publicar métricas do Prometheus no Google Cloud Observability no seu projeto de anfitrião.
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member="serviceAccount:NAMESPACE_GSA@HOST_PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.metricWriter"
Criar um ConfigConnectorContext
Para criar Google Cloud recursos, tem de configurar o Config Connector
para monitorizar o seu espaço de nomes adicionando um objeto ConfigConnectorContext
no espaço de nomes que quer usar.
Para criar um ConfigConnectorContext
, conclua os seguintes passos:
Copie o seguinte manifesto YAML para um ficheiro com o nome
configconnectorcontext.yaml
:apiVersion: core.cnrm.cloud.google.com/v1beta1 kind: ConfigConnectorContext metadata: # you can only have one ConfigConnectorContext per namespace name: configconnectorcontext.core.cnrm.cloud.google.com namespace: NAMESPACE spec: googleServiceAccount: "NAMESPACE_GSA@HOST_PROJECT_ID.iam.gserviceaccount.com" stateIntoSpec: Absent
Substitua o seguinte:
- NAMESPACE com o nome do seu espaço de nomes.
- NAMESPACE_GSA com o nome da conta de serviço Google associada ao seu espaço de nomes.
- HOST_PROJECT_ID com o ID do projeto anfitrião.
Aplique o ficheiro ao cluster com
kubectl
:kubectl apply -f configconnectorcontext.yaml
Verifique se o operador do Config Connector criou uma conta de serviço do Kubernetes para o seu espaço de nomes com
kubectl
executando o seguinte comando:kubectl get serviceaccount/cnrm-controller-manager-NAMESPACE -n cnrm-system
Substitua NAMESPACE pelo nome do seu espaço de nomes.
Verifique se o pod do controlador do Config Connector está em execução para o seu espaço de nomes com
kubectl
executando o seguinte comando:kubectl wait -n cnrm-system \ --for=condition=Ready pod \ -l cnrm.cloud.google.com/component=cnrm-controller-manager \ -l cnrm.cloud.google.com/scoped-namespace=NAMESPACE
Substitua NAMESPACE pelo nome do seu espaço de nomes.
Se o controlador do Config Connector estiver em execução, o resultado é semelhante ao seguinte:
cnrm-controller-manager-abcdefghijk-0 condition met.
Configure o Config Connector para deixar de gerir recursos no seu espaço de nomes
Para configurar o Config Connector de modo a deixar de gerir o seu espaço de nomes, remova todos os recursos do Config Connector no seu espaço de nomes e elimine o ConfigConnectorContext
no seu espaço de nomes.
Remova os recursos do Config Connector no seu espaço de nomes
Para finalizar a remoção do serviço ConfigConnectorContext
, remova todos os recursos do Config Connector do seu espaço de nomes.
Para descobrir todos os recursos do Config Connector no seu espaço de nomes, para cada definição de recursos personalizados do Config Connector, liste todos os recursos.
kubectl get gcp -n NAMESPACE
Substitua NAMESPACE pelo nome do seu espaço de nomes.
Para remover todos os recursos do Config Connector, para cada recurso no resultado do passo anterior, emita um comando de eliminação.
kubectl delete -n NAMESPACE KIND NAME
Substitua o seguinte:
NAMESPACE
: o nome do seu espaço de nomesKIND
: o tipo de recurso descoberto no passo anteriorNAME
: o nome do recurso descoberto no passo anterior
Remova o ConfigConnectorContext
Para configurar o Config Connector de forma a deixar de gerir os recursos do Config Connector no seu espaço de nomes, elimine ConfigConnectorContext
no seu espaço de nomes.
kubectl delete -n NAMESPACE ConfigConnectorContext configconnectorcontext.core.cnrm.cloud.google.com
Substitua NAMESPACE pelo nome do seu espaço de nomes.
A eliminação do ConfigConnectorContext
não é finalizada até que todos os recursos do Config Connector sejam removidos do seu espaço de nomes.
Desinstalar o Config Connector
Não use os passos seguintes para desinstalar um cluster do Config Controller.
Use kubectl delete
para remover os CRDs do Config Connector juntamente com os componentes do controlador:
kubectl delete ConfigConnectorContext --all -A –wait=false
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
O que se segue?
- Comece a usar o Config Connector.
- Saiba mais sobre as práticas recomendadas para o Config Connector.