Instalar o Config Connector manualmente


Nesta página, explicamos como instalar manualmente o Config Connector.

Para obter mais informações sobre as diferentes opções de instalação, consulte Como escolher um tipo de instalação.

A instalação com o método manual oferece atualizações mais rápidas do que com o complemento.

O Config Connector está configurado como o modo de cluster nas instruções abaixo. Isso significa que haverá um controlador global do Config Connector que será representado como uma única conta de serviço do Google Cloud IAM. Conforme você adicionar mais recursos do Config Connector e introduzir mais namespaces do Kubernetes no mesmo cluster, considere mudar ao modo com namespace, que é mais escalonável e oferece melhor isolamento de permissões do IAM para casos de uso multilocatários, por exemplo, o gerenciamento de recursos de vários projetos do Google Cloud.

Antes de começar

Antes de instalar manualmente o operador do Config Connector, conclua as etapas a seguir:

Como instalar o operador do Config Connector

O Config Connector usa um Operador do Kubernetes para manter a própria instalação atualizada. Para instalar esse operador, conclua as etapas a seguir:

  1. 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
    
  2. Extraia o arquivo tar:

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

    1. Para clusters do Autopilot do GKE:

      kubectl apply -f operator-system/autopilot-configconnector-operator.yaml
      
    2. Para clusters do GKE Standard:

      kubectl apply -f operator-system/configconnector-operator.yaml
      

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:

  1. 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
    Substitua SERVICE_ACCOUNT_NAME por um nome para sua conta de serviço.
  2. Para saber mais sobre como criar contas de serviço, consulte Como criar e gerenciar contas de serviço.

  3. 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 o seguinte:
    • PROJECT_ID pelo código do projeto;
    • SERVICE_ACCOUNT_NAME pelo nome da conta de serviço.
  4. 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;

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 Config Connector Operator instala CRDs de recursos do Google Cloud e componentes do Config Connector no cluster.

Para configurar o operador como modo de cluster, siga estas etapas:

  1. 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"
      # 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
    Substitua o seguinte:
    • SERVICE_ACCOUNT_NAME pelo nome da conta de serviço.
    • PROJECT_ID pelo código do projeto;
  2. 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 com kubectl.
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

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 desinstalar o Config Connector

Não siga estas etapas para desinstalar um Controlador de configuração cluster.

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.

  1. 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
    
  2. Instale o Config Connector usando o complemento do GKE ou o operador.

Migrar do complemento para uma instalação manual

Quando instalada 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:

  1. Desative o complemento sem excluir nenhum objeto ConfigConnector ou ConfigConnectorContext:

    gcloud container clusters update CLUSTER_NAME --update-addons ConfigConnector=DISABLED
    

    Substitua CLUSTER_NAME pelo nome do cluster em que você instalou o Config Connector.

  2. Siga as instruções para instalar o operador manual da versão pretendida.

A seguir