Instale 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 o artigo Escolher um tipo de instalação.

A instalação com o método manual oferece-lhe atualizações mais rápidas do que a utilização do suplemento.

O Config Connector está configurado como modo de cluster nas instruções abaixo, o que significa que haverá um controlador do Config Connector global representado como uma única Google Cloud conta de serviço do IAM. À medida que adiciona mais recursos do Config Connector e introduz mais espaços de nomes do Kubernetes no mesmo cluster, pode considerar mudar para o modo com espaço de nomes, que é mais escalável e oferece um melhor isolamento das autorizações de IAM para exemplos de utilização multi-inquilinos, por exemplo, a gestão de recursos de vários Google Cloud projetos.

Antes de começar

Antes de instalar manualmente o operador do Config Connector, conclua os seguintes passos:

Instalar o operador do Config Connector

O Config Connector usa um operador do Kubernetes para manter a instalação atualizada. Para instalar este operador, conclua os seguintes passos:

  1. Transfira o ficheiro tar do operador do Config Connector mais recente:

    gcloud storage cp gs://configconnector-operator/latest/release-bundle.tar.gz release-bundle.tar.gz
    
  2. Extraia o ficheiro TAR:

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

    1. Para clusters do GKE Autopilot:

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

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

Crie uma identidade

O Config Connector cria e gere Google Cloud recursos através da autenticação com uma conta de serviço de gestão de identidade e de acesso (IAM) e da utilização da Workload Identity Federation para o GKE para associar contas de serviço de IAM a contas de serviço do Kubernetes.

Para criar a identidade, conclua os seguintes passos:

  1. Crie uma conta de serviço do IAM. Se quiser usar uma conta de serviço existente, pode usar essa conta e ignorar este passo:

    gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
    

    Substitua SERVICE_ACCOUNT_NAME por um nome para a sua conta de serviço.

    Para saber mais sobre como criar contas de serviço, consulte o artigo Criar e gerir contas de serviço.

  2. Conceda autorizações elevadas à conta de serviço de IAM no seu 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 pelo ID do seu projeto.

  3. Crie uma associação de política IAM entre a conta de serviço IAM e a conta de serviço Kubernetes predefinida 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"
    

Configurar o Config Connector

Para concluir a instalação, crie um ficheiro de configuração para o ConfigConnector CustomResource e, em seguida, aplique-o com o comando kubectl apply. O operador do Config Connector instala CRDs de recursos e componentes do Config Connector no seu cluster.Google Cloud

Para configurar o operador como modo de cluster, conclua os seguintes passos:

  1. Copie o seguinte ficheiro YAML para um ficheiro com o nome 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 com o nome da sua conta de serviço.
    • PROJECT_ID com o ID do seu projeto.
  2. Aplique a configuração ao cluster com kubectl apply:
      kubectl apply -f configconnector.yaml

Especificar onde criar os recursos

O Config Connector pode organizar os recursos por projeto, pasta ou organização, da mesma forma que organizaria os recursos com o Google Cloud.

Antes de criar recursos com o Config Connector, tem de configurar onde criar os seus recursos. Para determinar onde criar o recurso, o Config Connector usa uma anotação na configuração do recurso ou num espaço de nomes existente. Para mais informações, consulte o artigo Organizar recursos.

Se não tiver um espaço de nomes para este fim, crie um com kubectl.
kubectl create namespace NAMESPACE

Substitua NAMESPACE pelo nome do seu espaço de nomes. Por exemplo config-connector.

Selecione um separador para escolher onde quer que o Config Connector crie recursos.

Projeto

Para criar recursos num determinado projeto, execute o seguinte comando:

    kubectl annotate namespace \
    NAMESPACE cnrm.cloud.google.com/project-id=PROJECT_ID

Substitua o seguinte:

  • NAMESPACE com o nome do seu espaço de nomes.
  • PROJECT_ID com o seu Google Cloud ID do projeto.

Pasta

Para criar recursos numa determinada pasta, execute o seguinte comando:

    kubectl annotate namespace \
    NAMESPACE cnrm.cloud.google.com/folder-id=FOLDER_ID

Substitua o seguinte:

  • NAMESPACE com o nome do seu espaço de nomes.
  • FOLDER_ID com o ID da pasta Google Cloud .

Organização

Para criar recursos numa determinada organização, execute o seguinte comando:

    kubectl annotate namespace \
    NAMESPACE cnrm.cloud.google.com/organization-id=ORGANIZATION_ID

Substitua o seguinte:

  • NAMESPACE com o nome do seu espaço de nomes.
  • ORGANIZATION_ID com o ID da sua Google Cloud organização.

Quando anota o seu espaço de nomes, o Config Connector cria recursos no projeto, na pasta ou na organização correspondente. Para saber mais sobre como o Config Connector usa os espaços de nomes do Kubernetes, consulte os artigos Espaços de nomes do Kubernetes e Google Cloud projetos.

Validar a instalação

O Config Connector executa todos os respetivos componentes num espaço de nomes denominado cnrm-system. Pode verificar se os pods estão prontos executando o seguinte comando:

kubectl wait -n cnrm-system \
      --for=condition=Ready pod --all

Se o Config Connector estiver instalado corretamente, o resultado é semelhante ao seguinte:

pod/cnrm-controller-manager-0 condition met

Atualizar o Config Connector

Para transferir 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

Reduzir a versão do Config Connector

A alteração completa do Config Connector para uma versão anterior não é suportada. Para reverter o operador e os CRDs do Config Connector, tem de desinstalar e reinstalar o Config Connector e, em seguida, voltar a aplicar os seus recursos.

Na versão 1.123.1 e posteriores do Config Connector, pode reverter a versão do operador para instalações que usam o modo com espaço de nomes. Em cada espaço de nomes que tenha um operador para o qual quer reverter, defina o campo spec.version no objeto ConfigConnectorContext para a versão anterior do Config Connector.

Pode reverter o controlador do Config Connector para um máximo de 3 versões secundárias. Tem sempre de reverter para a versão de patch mais recente de uma determinada versão secundária.

Desinstalar o Config Connector

Use kubectl delete para remover os CRDs do Config Connector juntamente com 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

Atualizar a partir de instalações não pertencentes a operadores

A versão 1.33.0 e superior do Config Connector só suporta a instalação com o suplemento do GKE ou o operador.

Para atualizar para o operador (e reter todos os recursos do Config Connector), tem de remover todos os componentes do sistema do Config Connector, exceto os CRDs, e, em seguida, instalar o operador.

  1. Execute os seguintes comandos para remover os componentes não CRD do sistema Config Connector:

    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 com o suplemento do GKE ou o operador.

Mudar do suplemento para uma instalação manual

Quando instalado como um suplemento, a versão do Config Connector está diretamente associada à versão do GKE instalada.

A instalação manual permite atualizações mais rápidas, mas requer atualizações manuais.

Para mudar, mantendo todos os recursos em segurança:

  1. Desative o suplemento sem eliminar objetos ConfigConnector ou ConfigConnectorContext:

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

    Substitua CLUSTER_NAME pelo nome do cluster no qual instalou o Config Connector.

  2. Instale o operador manual da versão escolhida.

    Para evitar potenciais erros de validação de CRD (por exemplo, KNV2009: Invalid value: "v1beta1": must appear in spec.versions, a versão escolhida do operador manual tem de ser igual ou posterior à versão que estava a usar para o suplemento. A desatualização da versão do operador manual pode causar erros (por exemplo, KNV2009) porque o suplemento do GKE pode já ter atualizado determinados CRDs para uma versão posterior do Config Connector.

O que se segue?