Como fazer instalação, upgrade e desinstalação do Config Connector

Neste tópico, descrevemos como instalar o Config Connector no seu cluster.

Antes de começar

Antes de começar, verifique se você realizou as tarefas a seguir:

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.

  1. 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
  2. Siga as instruções para autorizar a gcloud a usar sua conta do Google Cloud.
  3. Crie uma nova configuração ou selecione uma atual.
  4. Escolha um projeto do Google Cloud.
  5. Escolha uma zona padrão do Compute Engine.

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 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 um projeto do Google Cloud em que você instalará o Config Connector.

Permissões

Ao instalar o Config Connector, você concede permissões ao Identity and Access Management a uma conta de serviço do Google Cloud. Para saber mais sobre permissões, consulte Permissões do IAM para o Config Connector.

Como escolher o tipo de instalação

É possível instalar o Config Connector de uma das seguintes maneiras:

  • Como usar o complemento Config Connector com a Identidade da carga de trabalho
  • Usando manualmente uma identidade de carga de trabalho do GKE
  • Usando manualmente uma identidade do Google Cloud e uma conta de serviço, ou
  • Usando manualmente o modo de namespace para oferecer suporte ao gerenciamento de vários projetos, cada um com suas próprias identidades do Google Cloud.

Para mais informações sobre esses tipos de instalação, consulte Como escolher um tipo de instalação.

Selecione uma guia a seguir para escolher o tipo de instalação.

Complemento

Use o complemento Config Connector criando um novo cluster ou ativando-o em um cluster existente.

Requisitos

O complemento Config Connector requer 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

Além disso, o cluster precisa ter a Identidade da carga de trabalho e o Kubernetes Engine Monitoring ativados.

Como criar um novo cluster com o complemento Config Connector ativado

É possível criar um cluster do GKE com gcloud ou o Console do Google Cloud. Estas instruções criam um novo cluster com um pool de identidade de carga de trabalho e o Kubernetes Engine Monitoring.

Depois de instalar o complemento Config Connector, configure as Contas de serviço do Google e os namespaces.

gcloud

Para criar um cluster com gcloud,, execute o seguinte comando:

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 e regular são compatíveis.
  • [PROJECT_ID] pelo ID de projeto do Google Cloud.

Cloud Console

Para criar um cluster com o Console do Google Cloud, siga estas etapas:

  1. Acesse o menu do Google Kubernetes Engine no Console do Cloud.

    Acesse o menu do Google Kubernetes Engine

  2. Clique no botão Adicionar cluster e em Criar cluster. A tela Criar um cluster do Kubernetes é exibida.

  3. Especifique o Nome do cluster.

  4. Escolha uma Versão principal compatível.

  5. Configure o cluster como quiser.

  6. No painel de navegação, em Cluster, clique em Segurança.

  7. Marque a caixa de seleção Ativar identidade de carga de trabalho.

  8. No painel de navegação à esquerda, em Cluster, clique em Recursos.

  9. Marque a caixa de seleção Ativar Config Connector.

  10. Clique em Criar

Depois de concluir esta tarefa, prossiga para Como configurar o complemento Config Connector.

Como ativar o complemento Config Connector em um cluster existente

É possível ativar o complemento Config Connector em um cluster do GKE com gcloud ou o Console do Google Cloud.

Antes de começar
Como ativar o complemento Config Connector.

É possível ativar o complemento Config Connector em um cluster do GKE existente com o gcloud ou o Console do Google Cloud.

Depois de instalar o complemento Config Connector, configure a instalação com as Contas de serviço do Google e os namespaces.

gcloud

Para ativar o complemento Config Connector em um cluster do GKE existente com gcloud, execute o seguinte comando:

gcloud container clusters update [CLUSTER_NAME] --update-addons ConfigConnector=ENABLED

Substitua [CLUSTER_NAME] pelo nome do cluster do GKE.

Cloud Console

  1. Acesse o menu do Google Kubernetes Engine no Console do Cloud.

    Acesse o menu do Google Kubernetes Engine

  2. Selecione o cluster em que você quer instalar o Config Connector. A tela "Detalhes do cluster" será exibida.

  3. Clique em Edit.

  4. Clique em Complementos. O menu será expandido.

  5. Em "Config Connector", escolha Ativado.

  6. Clique em Salvar para atualizar seu cluster.

Depois de concluir esta tarefa, prossiga para Como configurar o complemento Config Connector.

Confirmar a instalação do operador do Config Connector

O complemento Config Connector instala um Operador do Kubernetes que configura o Config Connector. Para verificar o status da instalação do Operador do Config Connector, execute o seguinte comando kubectl:

gcloud

kubectl wait pod/configconnector-operator-0 -n configconnector-operator-system --for=condition=Initialized

Quando o operador do Config Connector está em execução, o comando retorna que há exatamente um pod com STATUS de Running.

NAME                                        READY   STATUS    RESTARTS   AGE
configconnector-operator-0   1/1          Running    0                    2m

Cloud Console

Para verificar o status do operador do Config Connector no Console do Google Cloud, acesse o menu Cargas de trabalho do Google Kubernetes Engine.

Acesse o menu Cargas de trabalho

Se o operador do Config Connector estiver instalado corretamente, uma carga de trabalho chamada configconnector-operator será exibida com o status OK.

Como configurar o Config Connector

Para concluir a instalação do complemento Config Connector, crie um arquivo de configuração para o CustomResource ConfigConnector e aplique-o usando o comando kubectl apply.

  1. Copie o seguinte 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 ConfigConnector instance installed in your cluster
      name: configconnector.core.cnrm.cloud.google.com
    
  2. Aplique a configuração ao cluster com kubectl apply:

    kubectl apply -f configconnector.yaml
    

O operador do Config Connector instala os componentes do Google Cloud Resource CRDs e do Config Connector no cluster.

Para ver os recursos do Google Cloud disponíveis no Config Connector, execute o seguinte comando:

kubectl get crds --selector cnrm.cloud.google.com/managed-by-kcc=true

Configure o Config Connector para observar seus namespaces

No restante desta seção, o projeto do Google Cloud em que você instala o Config Connector é conhecido como projeto host ou [HOST_PROJECT_ID]. Os outros projetos em que você gerencia recursos são conhecidos como projetos gerenciados ou [MANAGED_PROJECT_ID]. Eles podem ser o mesmo projeto se você pretende usar o Config Connector apenas para criar recursos do Google Cloud no mesmo projeto que seu cluster.

Crie um namespace

É possível ignorar este passo se você já tiver um namespace para organizar os recursos do Google Cloud.

Use kubectl para criar um novo namespace executando o seguinte comando:

kubectl create namespace [NAMESPACE]

Substitua [NAMESPACE] pelo namespace que você está configurando.

Crie uma conta de serviço

Em seguida, crie uma conta de serviço do gerenciamento de identidade e acesso (IAM, na sigla em inglês) para vincular sua conta de serviço do Google (GSA) e da Conta de serviço do Kubernetes (KSA).

  1. Configure gcloud para usar o projeto host.

    gcloud config set project [HOST_PROJECT_ID]
    

    Substitua [HOST_PROJECT_ID] pelo ID do projeto host.

  2. Crie uma conta de serviço. Se você já tiver uma conta de serviço, poderá 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]
    

    Substitua [NAMESPACE_GSA] pelo GSA vinculado ao seu namespace.

  3. Conceda à conta de serviço do IAM permissões elevadas no projeto gerenciado.

    Ao instalar o Config Connector, você concede permissões ao Identity and Access Management a uma conta de serviço do Google Cloud. Para saber mais sobre permissões, consulte Permissões do IAM para o Config Connector.

    gcloud config set project [MANAGED_PROJECT_ID]
    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 projeto gerenciado
    • [NAMESPACE_GSA] pelo GSA vinculado ao seu namespace
    • [HOST_PROJECT_ID] pelo ID do projeto host
Crie um ConfigConnectorContext

Para criar recursos do Google Cloud, você precisa configurar o Config Connector para monitorar seu namespace adicionando um objeto CustomResource ConfigConnectorContext no namespace desejado.

  1. Copie o seguinte YAML para um arquivo chamado configconnectorcontext.yaml.

    # 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:
      # The Google Service Account used to authenticate Google Cloud APIs in this Namespace
      googleServiceAccount: "[NAMESPACE_GSA]@[HOST_PROJECT_ID].iam.gserviceaccount.com"
    

    Substitua:

    • [NAMESPACE] pelo namespace
    • [NAMESPACE_GSA] pelo GSA vinculado ao seu namespace
    • [HOST_PROJECT_ID] pelo ID do projeto host
  2. Aplique o arquivo ao cluster com kubectl.

    kubectl apply -f configconnectorcontext.yaml
    
  3. Verifique se o operador do Config Connector criou uma conta de serviço do Kubernetes para o namespace com kubectl executando o seguinte comando:

    kubectl get serviceaccount/cnrm-controller-manager-[NAMESPACE] -n cnrm-system
    

    Substitua [NAMESPACE] pelo nome do namespace.

  4. Verifique se o pod do controlador do Config Connector está em execução para seu namespace com kubectl executando o seguinte comando:

    kubectl wait -n cnrm-system   --for=condition=Ready pod \
      -l cnrm.cloud.google.com/component=cnrm-controller-manager,cnrm.cloud.google.com/scoped-namespace=[NAMESPACE]
    

    Substitua [NAMESPACE] pelo nome do namespace.

    Se o controlador do Config Connector estiver em execução, a saída será semelhante a cnrm-controller-manager-abcdefghijk-0 condition met.

Vincule sua conta de serviço do ConfigConnector Kubernetes à conta de serviço do Google

Crie uma vinculação de política do IAM entre a conta de serviço do IAM e a conta de serviço do Config Connector do Kubernetes. Para vincular as contas de serviço, execute o seguinte comando gcloud:

gcloud config set project [HOST_PROJECT_ID]
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:

  • [HOST_PROJECT_ID] pelo ID do projeto host
  • [NAMESPACE_GSA] pelo GSA vinculado ao seu namespace
  • [NAMESPACE] pelo namespace

Workload Identity

Pré-requisitos

Antes de instalar o Config Connector em um cluster, execute as etapas a seguir:

  • Criar ou identificar um cluster GKE em que o Config Connector ainda não foi instalado.
  • Configurar a Identidade da carga de trabalho no cluster em que será instalado o Config Connector. Se você quiser usar a mesma conta de serviço do Google (GSA) e a conta de serviço do Kubernetes (KSA) que criou ao instalar a Identidade da carga de trabalho, tenha os IDs disponíveis.

  • Configurar kubectl para se conectar ao seu cluster.

Crie uma identidade

A configuração da identidade inclui:

  • Criar uma conta de serviço do IAM.
  • Criar uma vinculação entre a conta de serviço do IAM e a conta de serviço do Config Connector do Kubernetes.
  1. Crie a Conta de serviço cnrm-system com gcloud:

    gcloud iam service-accounts create cnrm-system
  2. Conceda à Conta de serviço do IAM permissões elevadas em seu projeto. Substitua [PROJECT_ID] pelo ID do projeto.

    gcloud projects add-iam-policy-binding [PROJECT_ID] \
    --member="serviceAccount:cnrm-system@[PROJECT_ID].iam.gserviceaccount.com" \
    --role="roles/owner"
    
  3. 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 executada pelo Config Connector. Substitua [PROJECT_ID] pelo ID do projeto.

    gcloud iam service-accounts add-iam-policy-binding \
    cnrm-system@[PROJECT_ID].iam.gserviceaccount.com \
    --member="serviceAccount:[PROJECT_ID].svc.id.goog[cnrm-system/cnrm-controller-manager]" \
    --role="roles/iam.workloadIdentityUser"
    

Como implantar o Config Connector

  1. Faça download do arquivo .tar do pacote de instalação mais recente:

     gsutil cp gs://cnrm/latest/release-bundle.tar.gz release-bundle.tar.gz
  2. Extraia o arquivo tar:

    tar zxvf release-bundle.tar.gz
  3. Forneça o código do projeto no manifesto de instalação do controlador. Antes de executar o comando a seguir, substitua [PROJECT_ID] pelo ID do projeto.

    sed -i.bak 's/${PROJECT_ID?}/[PROJECT_ID]/' install-bundle-workload-identity/0-cnrm-system.yaml
  4. Aplique os manifestos ao cluster.

    kubectl apply -f install-bundle-workload-identity/

Verificar instalação

O Config Connector executa todos os componentes dele em um namespace chamado `CNrm-system`. Para verificar se os pods estão prontos, execute o seguinte comando:

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

Google Cloud Identity

Pré-requisitos

Antes de instalar o Config Connector, execute as etapas a seguir:

  1. Criar um cluster do GKE.
  2. Configurar kubectl para se conectar ao seu cluster.

Como criar uma ClusterRoleBinding

O Config Connector precisa de permissão para criar Papéis do Kubernetes antes de poder criar recursos.

Verifique se é possível criar Papéis executando o comando a seguir.

kubectl auth can-i create roles

Se o resultado for yes, continue em Como criar uma identidade.

Se o resultado for no, crie ClusterRoleBinding no seu cluster. Isso permite que criar Papéis. Substitua [ACCOUNT_EMAIL] pelo e-mail associado à sua conta do Google Cloud.

kubectl create clusterrolebinding cluster-admin-binding \
--clusterrole cluster-admin \
--user [ACCOUNT_EMAIL]

Os resultados precisam conter a frase cluster-admin-binding created. Caso contrário, entre em contato com o administrador da sua conta do Google Cloud ou do cluster GKE sobre permissões.

Como criar uma identidade

Um cluster do Config Connector precisa de uma identidade do Google Cloud para se comunicar com outros recursos. Para configurar a identidade, crie uma conta de serviço do IAM e uma chave da conta de serviço. Depois disso, importe as credenciais da Chave como Secret em cada cluster que executa o Config Connector.

Como criar uma conta de serviço
  1. Crie a Conta de serviço cnrm-system com gcloud:

    gcloud iam service-accounts create cnrm-system
  2. Conceda à Conta de serviço do IAM permissões elevadas em seu projeto. Substitua [HOST_PROJECT_ID] pelo ID do projeto.

    gcloud projects add-iam-policy-binding [HOST_PROJECT_ID] \
    --member serviceAccount:cnrm-system@[HOST_PROJECT_ID].iam.gserviceaccount.com \
    --role roles/owner
  3. Crie uma Chave de conta de serviço e exporte as credenciais para um arquivo chamado key.json. Substitua [HOST_PROJECT_ID] pelo ID do projeto e execute o seguinte:

    gcloud iam service-accounts keys create --iam-account \
    cnrm-system@[HOST_PROJECT_ID].iam.gserviceaccount.com key.json

Como aplicar credenciais ao seu cluster

Aplique as credenciais a cada cluster em que o Config Connector será executado.

  1. Crie o namespace cnrm-system.

    kubectl create namespace cnrm-system
  2. Importe as credenciais da chave como um Secret.

    kubectl create secret generic gcp-key --from-file key.json --namespace cnrm-system
  3. Remova as credenciais do sistema.

    rm key.json

Como instalar o Config Connector

Para instalar o Config Connector manualmente, faça o download do arquivo tar de instalação e extraia-o e aplique o conteúdo ao seu cluster.

  1. Faça download do arquivo .tar do pacote de instalação mais recente:

    gsutil cp gs://cnrm/latest/release-bundle.tar.gz release-bundle.tar.gz
  2. Extraia o arquivo tar:

    tar zxvf release-bundle.tar.gz
  3. Aplique os manifestos ao cluster:

    kubectl apply -f install-bundle-gcp-identity/

Modo com namespace

O modo com namespace é uma extensão da instalação da Identidade da carga de trabalho. Ele permite gerenciar vários projetos com várias contas de serviço do Google vinculadas ao seu cluster do Config Connector. Para mais informações, consulte Como escolhe um tipo de instalação.

Pré-requisitos

Antes de instalar o Config Connector em um cluster, execute as etapas a seguir:

Instalar o Config Connector

  1. Faça o download do arquivo .tar mais recente do Config Connector:

    gsutil cp gs://configconnector-operator/latest/release-bundle.tar.gz release-bundle.tar.gz
  2. Extraia o arquivo tar:

    tar zxvf release-bundle.tar.gz
  3. Instale o operador do Config Connector no cluster.

    kubectl apply -f operator-system/configconnector-operator.yaml 
  4. Para instalar o Config Connector usando o operador, crie um arquivo de configuração para o ConfigConnector CustomResource e aplique-o usando o comando kubectl apply.

  5. Copie o seguinte 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 ConfigConnector instance installed in your cluster
      name: configconnector.core.cnrm.cloud.google.com
    
  6. Aplique a configuração ao cluster com kubectl apply:

    kubectl apply -f configconnector.yaml
    

Configure o Config Connector para observar seus namespaces

No restante desta seção, o projeto do Google Cloud em que você instala o Config Connector é conhecido como projeto host ou [HOST_PROJECT_ID]. Os outros projetos em que você gerencia recursos são conhecidos como projetos gerenciados ou [MANAGED_PROJECT_ID]. Eles podem ser o mesmo projeto se você pretende usar o Config Connector apenas para criar recursos do Google Cloud no mesmo projeto que seu cluster.

Crie um namespace

É possível ignorar este passo se você já tiver um namespace para organizar os recursos do Google Cloud.

Use kubectl para criar um novo namespace executando o seguinte comando:

kubectl create namespace [NAMESPACE]

Substitua [NAMESPACE] pelo namespace que você está configurando.

Crie uma conta de serviço

Em seguida, crie uma conta de serviço do gerenciamento de identidade e acesso (IAM, na sigla em inglês) para vincular sua conta de serviço do Google (GSA) e da Conta de serviço do Kubernetes (KSA).

  1. Configure gcloud para usar o projeto host.

    gcloud config set project [HOST_PROJECT_ID]
    

    Substitua [HOST_PROJECT_ID] pelo ID do projeto host.

  2. Crie uma conta de serviço. Se você já tiver uma conta de serviço, poderá 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]
    

    Substitua [NAMESPACE_GSA] pelo GSA vinculado ao seu namespace.

  3. Conceda à conta de serviço do IAM permissões elevadas no projeto gerenciado.

    Ao instalar o Config Connector, você concede permissões ao Identity and Access Management a uma conta de serviço do Google Cloud. Para saber mais sobre permissões, consulte Permissões do IAM para o Config Connector.

    gcloud config set project [MANAGED_PROJECT_ID]
    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 projeto gerenciado
    • [NAMESPACE_GSA] pelo GSA vinculado ao seu namespace
    • [HOST_PROJECT_ID] pelo ID do projeto host
Crie um ConfigConnectorContext

Para criar recursos do Google Cloud, você precisa configurar o Config Connector para monitorar seu namespace adicionando um objeto CustomResource ConfigConnectorContext no namespace desejado.

  1. Copie o seguinte YAML para um arquivo chamado configconnectorcontext.yaml.

    # 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:
      # The Google Service Account used to authenticate Google Cloud APIs in this Namespace
      googleServiceAccount: "[NAMESPACE_GSA]@[HOST_PROJECT_ID].iam.gserviceaccount.com"
    

    Substitua:

    • [NAMESPACE] pelo namespace
    • [NAMESPACE_GSA] pelo GSA vinculado ao seu namespace
    • [HOST_PROJECT_ID] pelo ID do projeto host
  2. Aplique o arquivo ao cluster com kubectl.

    kubectl apply -f configconnectorcontext.yaml
    
  3. Verifique se o operador do Config Connector criou uma conta de serviço do Kubernetes para o namespace com kubectl executando o seguinte comando:

    kubectl get serviceaccount/cnrm-controller-manager-[NAMESPACE] -n cnrm-system
    

    Substitua [NAMESPACE] pelo nome do namespace.

  4. Verifique se o pod do controlador do Config Connector está em execução para seu namespace com kubectl executando o seguinte comando:

    kubectl wait -n cnrm-system   --for=condition=Ready pod \
      -l cnrm.cloud.google.com/component=cnrm-controller-manager,cnrm.cloud.google.com/scoped-namespace=[NAMESPACE]
    

    Substitua [NAMESPACE] pelo nome do namespace.

    Se o controlador do Config Connector estiver em execução, a saída será semelhante a cnrm-controller-manager-abcdefghijk-0 condition met.

Vincule sua conta de serviço do ConfigConnector Kubernetes à conta de serviço do Google

Crie uma vinculação de política do IAM entre a conta de serviço do IAM e a conta de serviço do Config Connector do Kubernetes. Para vincular as contas de serviço, execute o seguinte comando gcloud:

gcloud config set project [HOST_PROJECT_ID]
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:

  • [HOST_PROJECT_ID] pelo ID do projeto host
  • [NAMESPACE_GSA] pelo GSA vinculado ao seu namespace
  • [NAMESPACE] pelo namespace

Especifique onde criar seus 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 no namespace. Para mais informações, consulte Como organizando recursos.

Crie recursos em um projeto, uma pasta ou uma organização. Selecione uma guia para escolher onde quer que o Config Connector crie recursos.

Projeto

Para criar recursos em um determinado projeto, execute o seguinte comando, substituindo [NAMESPACE_NAME] pelo nome do namespace e [PROJECT_ID] pelo ID do projeto do Google Cloud:

kubectl annotate namespace \
[NAMESPACE_NAME] cnrm.cloud.google.com/project-id=[PROJECT_ID]

Pasta

Para criar recursos em uma determinada pasta, execute o seguinte comando, substituindo [NAMESPACE_NAME] pelo nome do namespace e [FOLDER_ID] pelo ID da pasta do Google Cloud:

kubectl annotate namespace \
[NAMESPACE_NAME] cnrm.cloud.google.com/folder-id=[FOLDER_ID]

Organização

Para criar recursos em uma determinada organização, execute o seguinte comando, substituindo [NAMESPACE_NAME] pelo nome do namespace e [ORGANIZATION_ID] pelo ID da organização do Google Cloud:

kubectl annotate namespace \
[NAMESPACE_NAME] cnrm.cloud.google.com/organization-id=[ORGANIZATION_ID]

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.

Verificar instalação

O Config Connector executa todos os seus componentes em um namespace chamado cnrm-system. É possível verificar se os pods estão prontos executando 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 definir seu namespace padrão

Simplifique comandos e evitar adicionar `--namespace` a cada comando `kubectl` alterando o Namespace do contexto padrão. Para isso, execute o seguinte comando, substituindo [NAMESPACE_NAME] pelo nome do namespace:
kubectl config set-context --current --namespace [NAMESPACE_NAME]

Resolver problemas

Instâncias de CRD podem ser criadas, mas nada parece acontecer. Não há eventos.

Verifique os logs do controlador do Config Connector:

kubectl logs cnrm-controller-manager-0 --namespace=cnrm-system

Como solucionar problemas de instalações de identidade do Google Cloud

Se o pod com nome como cnrm-controller-manager-X não tiver status Running, tente reinstalar as credenciais da Conta de serviço do Google Cloud excluindo primeiro o secret existente (kubectl --namespace=cnrm-system delete secret gcp-key) e siga as instruções para criar o Secret. Em seguida, exclua o pod do controlador para acionar uma reinicialização:

kubectl delete pod --namespace=cnrm-system cnrm-controller-manager-0

Como fazer upgrade do Config Connector

Upgrade do complemento

O complemento Config Connector recebe upgrades para uma nova versão secundária com o cluster do GKE. Os recursos no cluster são preservados.

Upgrade do modo de namespace

Faça o download e instale a versão mais recente do operador do Config Connector.

gsutil 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

Upgrade manual

O upgrade do Config Connector preservará o estado dos recursos do Google Cloud em seu cluster enquanto faz upgrade dos componentes do sistema.

Para fazer upgrade do Config Connector:

  1. Remova os componentes do sistema:
    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
  2. Execute as etapas de instalação manual

Como desinstalar Config Connector

Desinstalar complemento

Use kubectl delete para remover Google Cloud Resource CRDs junto com os componentes do controlador.

kubectl delete ConfigConnector configconnector.core.cnrm.cloud.google.com --wait=true

Desativar o complemento ConfigConnector

É possível desativar o complemento ConfigConnector no cluster a partir do gcloud ou do 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.

  1. Acesse a página "Clusters" do Google Kubernetes Engine no Console do Google Cloud e selecione o cluster que você quer atualizar.

    Acesse o menu do Google Kubernetes Engine

  2. Clique em Edit. A tela Editar clusters é exibida.

  3. Clique em Complementos.

  4. Selecione Config Connector e escolha Desativado.

  5. Clique em Salvar para atualizar seu cluster.

Desinstalar o modo de namespace

Use kubectl delete para remover Google Cloud Resource CRDs junto com os componentes do controlador.

kubectl delete ConfigConnector configconnector.core.cnrm.cloud.google.com --wait=true

Desinstalar o operador do Config Connector

kubectl delete -f operator-system/configconnector-operator.yaml  --wait=true

Desinstalação manual

Se você instalou originalmente o Config Connector sem o complemento, remova todos os artefatos do Config Connector do cluster:

kubectl delete sts,po -n cnrm-system -l cnrm.cloud.google.com/component=cnrm-controller-manager --wait=true
kubectl delete crds -l cnrm.cloud.google.com/system=true --wait=true
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
kubectl delete namespace cnrm-system --ignore-not-found --wait=true

A seguir

Introdução ao Config Connector.