Como instalar o Config Connector

O Config Connector é um complemento do Kubernetes que permite gerenciar recursos do Google Cloud pela configuração do Kubernetes. Com o Anthos Config Management, os usuários do Anthos podem instalar e desinstalar o Config Connector automaticamente.

Antes de começar

  • Você precisa ter um direito do Anthos para instalar o Config Connector usando o Anthos Config Management. Se você não tem um direito do Anthos, precisa usar um dos métodos de instalação alternativos para o Config Connector em vez de seguir as instruções neste tópico.

  • Você precisa atualizar o Anthos Config Management para a v1.1.0 ou mais recente antes de seguir estas instruções.

  • Você precisa ter um cluster em que o Config Connector não esteja instalado.

Como instalar o Config Connector usando o Anthos Config Management

Para instalar o Config Connector usando o Anthos Config Management, você configura o Anthos Config Management para instalar o Config Connector em um dos clusters e, em seguida, configura a conta de serviço cnrm-system.

Como configurar o Anthos Config Management

  1. Defina o valor de spec.configConnector.enabled como true no arquivo de configuração do Anthos Config Management:

    # config-management.yaml
    
    apiVersion: configmanagement.gke.io/v1
    kind: ConfigManagement
    metadata:
      name: config-management
    spec:
      # Set to true to install and enable Config Connector
      configConnector:
        enabled: true
    
      # ...other fields...
      ```
    
  2. Aplique a configuração usando kubectl apply.

    kubectl apply -f config-management.yaml
    

O pod é criado, mas não é executado até que você configure a conta de serviço cnrm-system para gerenciar os recursos do Google Cloud em seu projeto.

Aplicar a configuração também cria o namespace cnrm-system, que pode ser anotado.

Como configurar a conta de serviço cnrm-system

Antes que o Anthos Config Management possa criar recursos do Google Cloud, o Config Connector precisa ser autenticado usando uma conta de serviço do gerenciamento de identidade e acesso

  1. Crie a conta de serviço cnrm-system:

    gcloud iam service-accounts create cnrm-system --project [PROJECT_ID]
    
  2. A conta de serviço tem um endereço de e-mail gerado automaticamente associado a ela. Para conseguir esse endereço de e-mail, use o seguinte comando:

    gcloud iam service-accounts list | grep cnrm-system
    

    Use esse valor em que [SERVICE_ACCOUNT_EMAIL] é exibido nos comandos a seguir.

  3. Conceda os papéis e permissões da conta de serviço cnrm-system necessários para configurar os recursos específicos do Google Cloud necessários. Este exemplo concede o papel roles/owner:

    gcloud projects add-iam-policy-binding [PROJECT_ID] \
     --member "serviceAccount:[SERVICE_ACCOUNT_EMAIL]" \
     --role "roles/owner"
    
  4. Crie uma chave para a conta de serviço, armazenada localmente como key.json:

    gcloud iam service-accounts keys create \
     --iam-account "[SERVICE_ACCOUNT_EMAIL]" \
     ./key.json
    
  5. Injete a chave no namespace cnrm-system no cluster:

    kubectl create secret generic gcp-key \
     --from-file ./key.json \
     --namespace cnrm-system
    
  6. Remova a cópia local da chave, porque ela contém dados confidenciais:

    rm ./key.json
    

O Config Connector agora pode gerenciar os recursos do Google Cloud sincronizando os configs armazenados no seu repo com os clusters registrados no Anthos Config Management.

Como especificar o local para criar os recursos

Antes de criar recursos com o Anthos Config Management, você precisa configurar onde eles serão criados. 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.

É possível criar recursos em um projeto, pasta ou organização da mesma forma que você organizaria recursos com o Google Cloud.

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.

Como verificar a instalação

Se o Config Connector estiver instalado corretamente, seu Pod e CRD existirão no cluster.

  1. Verifique se o Pod do conector de configuração está em execução:

    kubectl wait -n cnrm-system \
     --for=condition=Initialized pod \
     cnrm-controller-manager-0
    

    Se o Config Connector estiver instalado corretamente, a saída será semelhante à seguinte:

    pod/cnrm-controller-manager-0 condition met

  2. Verifique se os CRDs para cada tipo de recurso compatível com o Google Cloud estão instalados no cluster:

    kubectl get crds | grep cnrm.cloud.google.com
    

    Se o Config Connector estiver instalado corretamente, o comando listará os recursos que terminam em .cnrm.cloud.google.com, como bigquerydatasets.bigquery.cnrm.cloud.google.com.

Como desinstalar o Config Connector

Para desativar e desinstalar o Config Connector, edite o arquivo de configuração do Anthos Config Management e defina o valor de spec.configConnector.enabled como falso.

O Pod do Config Connector é parado e removido e os CRDs para cada tipo de recurso do Google Cloud são removidos. Os recursos atuais do Google Cloud não foram modificados.

A seguir