Instala Config Connector de forma manual


En esta página, se explica cómo instalar Config Connector de forma manual.

Para obtener más información sobre las diferentes opciones de instalación, consulta Elige un tipo de instalación.

La instalación con el método manual te brinda actualizaciones más rápidas que usar el complemento.

Config Connector se configura como modo de clúster en las instrucciones que se indican a continuación, lo que significa que habrá un controlador global de Config Connector que se hará pasar por una sola Google Cloud cuenta de servicio de IAM. A medida que agregues más recursos de Config Connector y presentes más espacios de nombres de Kubernetes en el mismo clúster, te recomendamos que cambies al modo con espacio de nombres, que es más escalable y ofrece un mejor aislamiento de permisos de IAM para casos de uso de varios inquilinos, por ejemplo, la administración de recursos de varios proyectos Google Cloud .

Antes de comenzar

Antes de instalar de forma manual el operador de Config Connector, completa los siguientes pasos:

Instala el operador de Config Connector

Config Connector usa un operador de Kubernetes para mantener la instalación actualizada. Para instalar este operador, completa los siguientes pasos:

  1. Descarga el archivo tar de Config Connector más reciente:

    gcloud storage cp gs://configconnector-operator/latest/release-bundle.tar.gz release-bundle.tar.gz
    
  2. Extrae el archivo tar:

    tar zxvf release-bundle.tar.gz
    
  3. Instala el operador de Config Connector en tu clúster.

    1. Para clústeres de GKE Autopilot:

      kubectl apply -f operator-system/autopilot-configconnector-operator.yaml
      
    2. Para clústeres de GKE Standard:

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

Configura una política de IAM para conectarte a las APIs de Google Cloud

Para permitir que Config Connector administre tus Google Cloud recursos con la federación de identidades para cargas de trabajo para GKE, crea una política de IAM.

Para configurar la vinculación de políticas, crea una política de permisos de IAM que haga referencia a la ServiceAccount de Kubernetes que se crea automáticamente cuando instalas Config Connector en tu clúster:

gcloud projects add-iam-policy-binding projects/PROJECT_ID \
    --role=roles/iam.workloadIdentityUser \
    --member=principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/subject/ns/NAMESPACE/sa/cnrm-system/cnrm-controller-manager \
    --condition=None

Reemplaza lo siguiente:

  • PROJECT_ID: El Google Cloud ID de tu proyecto.
  • PROJECT_NUMBER: Es el número de proyecto numérico Google Cloud.
  • NAMESPACE: Es el nombre del espacio de nombres de Kubernetes para la cuenta de servicio de Config Connector. Si no creaste un espacio de nombres de forma explícita, el valor es default.

Configuración de Config Connector

A fin de completar la instalación, crea un archivo de configuración para el CustomResource de ConfigConnector y, luego, aplícalo mediante el comando kubectl apply. El operador de Config Connector instala los componentes de CRD de recursos deGoogle Cloud y de Config Connector en tu clúster.

Para configurar el operador como modo de clúster, completa los siguientes pasos:

  1. Copia el siguiente YAML en un archivo llamado 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
    Reemplaza lo siguiente:
    • SERVICE_ACCOUNT_NAME por el nombre de tu cuenta de servicio
    • PROJECT_ID por el ID del proyecto
  2. Aplica la configuración a tu clúster con kubectl apply:
      kubectl apply -f configconnector.yaml

Especifica en que ubicación crear tus recursos

Config Connector puede organizar los recursos por proyecto, carpeta u organización, de la misma manera que organizarías los recursos con Google Cloud.

Antes de crear recursos con Config Connector, debes configurar dónde crear los recursos. Para determinar dónde crear el recurso, Config Connector usa una anotación en la configuración del recurso o en el espacio de nombres. Para obtener más información, consulta Organiza recursos.

Si no tienes un espacio de nombres para este fin, crea uno con kubectl.
kubectl create namespace NAMESPACE

Reemplaza NAMESPACE por el nombre de tu espacio de nombres. Por ejemplo config-connector.

Selecciona una pestaña para elegir dónde deseas que Config Connector cree recursos.

Proyecto

Para crear recursos en un proyecto determinado, ejecuta el siguiente comando:

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

Reemplaza lo siguiente:

  • NAMESPACE por tu nombre de espacio de nombres.
  • PROJECT_ID por el Google Cloud ID de tu proyecto.

Carpeta

Para crear recursos en una carpeta determinada, ejecuta el siguiente comando:

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

Reemplaza lo siguiente:

  • NAMESPACE por tu nombre de espacio de nombres.
  • FOLDER_ID por tu Google Cloud ID de carpeta.

Organización

Para crear recursos en una organización determinada, ejecuta el siguiente comando:

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

Reemplaza lo siguiente:

  • NAMESPACE por tu nombre de espacio de nombres.
  • ORGANIZATION_ID por el Google Cloud ID de tu organización.

Cuando anotas el espacio de nombres, Config Connector crea recursos en el proyecto, la carpeta o la organización correspondiente. Para obtener más información sobre cómo Config Connector usa los espacios de nombres de Kubernetes, consulta Espacios de nombres de Kubernetes y proyectos Google Cloud .

Verifica tu instalación

Config Connector ejecuta todos sus componentes en un espacio de nombres llamado cnrm-system. Puedes verificar que los Pods estén listos si ejecutas el siguiente comando:

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

Si Config Connector está instalado correctamente, el resultado es similar al siguiente:

pod/cnrm-controller-manager-0 condition met

Actualiza Config Connector

Descarga e instala la última versión del operador de 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

Cómo cambiar a una versión anterior de Config Connector

No se admite la baja de versión completa de Config Connector. Para cambiar a una versión inferior del operador de Config Connector y de los CRD, debes desinstalar y reinstalar Config Connector y, luego, volver a aplicar tus recursos.

En la versión 1.123.1 y posteriores de Config Connector, puedes revertir la versión del operador para las instalaciones que usan el modo de espacio de nombres. En cada espacio de nombres que tenga un operador al que deseas revertir, establece el campo spec.version en el objeto ConfigConnectorContext en la versión anterior de Config Connector.

Puedes revertir el controlador de Config Connector hasta 3 versiones menores. Siempre debes revertir a la versión de parche más reciente de una versión menor determinada.

Desinstalar Config Connector

Usa kubectl delete para quitar las CRD de Config Connector junto con los componentes del controlador:

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

Para desinstalar el operador de Config Connector, ejecuta el siguiente comando:

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

Actualiza desde instalaciones sin operadores

La versión 1.33.0 de Config Connector y versiones posteriores, solo admiten la instalación con el complemento de GKE o el operador.

Para actualizar al operador (y retener todos los recursos de Config Connector), debes quitar todos los componentes del sistema de Config Connector, excepto los CRD y, luego, instalar el operador.

  1. Ejecuta los siguientes comandos para quitar los componentes del sistema de Config Connector que no son 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. Instala Config Connector con el complemento de GKE o el operador.

Cómo cambiar del complemento a una instalación manual

Cuando se instala como complemento, la versión de Config Connector está directamente vinculada a la versión de GKE que se instala.

La instalación manual permite actualizaciones más rápidas a costa de actualizaciones manuales.

Para cambiar y conservar todos los recursos de forma segura, sigue estos pasos:

  1. Inhabilita el complemento sin borrar ningún objeto ConfigConnector o ConfigConnectorContext:

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

    Reemplaza CLUSTER_NAME por el nombre del clúster en el que instalaste Config Connector.

  2. Sigue las instrucciones para instalar el operador manual de la versión deseada.

¿Qué sigue?