Instalar Config Connector manualmente


En esta página se explica cómo instalar Config Connector manualmente.

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

Si lo instalas manualmente, las actualizaciones serán más rápidas que si usas el complemento.

En las instrucciones que se indican a continuación, Config Connector se configura en modo de clúster, lo que significa que habrá un controlador de Config Connector global que se hará pasar por una sola cuenta de servicio de gestión de identidades y accesos (IAM) de Google Cloud . A medida que añadas más recursos de Config Connector e introduzcas más espacios de nombres de Kubernetes en el mismo clúster, puede que te interese cambiar al modo de espacio de nombres, que es más escalable y ofrece un mejor aislamiento de los permisos de gestión de identidades y accesos para casos prácticos de varios usuarios, como la gestión de recursos de varios Google Cloud proyectos.

Antes de empezar

Antes de instalar manualmente el operador de Config Connector, sigue estos pasos:

Instalar el operador de Config Connector

Config Connector usa un operador de Kubernetes para mantener su instalación actualizada. Para instalar este operador, sigue estos pasos:

  1. Descarga el archivo tar del operador 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. En el caso de los clústeres de Autopilot de GKE:

      kubectl apply -f operator-system/autopilot-configconnector-operator.yaml
      
    2. En el caso de los clústeres de GKE Standard:

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

Crear una identidad

Config Connector crea y gestiona Google Cloud recursos autenticándose con una cuenta de servicio de gestión de identidades y accesos (IAM) y usando la federación de identidades de carga de trabajo para GKE con el fin de vincular cuentas de servicio de IAM con cuentas de servicio de Kubernetes.

Para crear la identidad, sigue estos pasos:

  1. Crea una cuenta de servicio de IAM. Si quieres usar una cuenta de servicio que ya tengas, puedes usarla y saltarte este paso:

    gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
    

    Sustituye SERVICE_ACCOUNT_NAME por el nombre que quieras darle a la cuenta de servicio.

    Para obtener más información sobre cómo crear cuentas de servicio, consulta el artículo Crear y gestionar cuentas de servicio.

  2. Concede permisos elevados a la cuenta de servicio de gestión de identidades y accesos en tu proyecto:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" \
      --role="roles/editor"
    

    Sustituye PROJECT_ID por el ID del proyecto.

  3. Crea un enlace de política de gestión de identidades y accesos entre la cuenta de servicio de gestión de identidades y accesos y la cuenta de servicio de Kubernetes predefinida en la que se ejecuta Config Connector:

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

Para completar la instalación, crea un archivo de configuración para ConfigConnector CustomResource y aplícalo con el comando kubectl apply. El operador de Config Connector instalaGoogle Cloud CRDs de recursos y componentes de Config Connector en tu clúster.

Para configurar el operador como modo de clúster, sigue estos pasos:

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

Especificar dónde crear los recursos

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

Antes de crear recursos con Config Connector, debes configurar dónde quieres crearlos. Para determinar dónde crear el recurso, Config Connector usa una anotación en la configuración del recurso o en un espacio de nombres. Para obtener más información, consulta el artículo sobre cómo organizar recursos.

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

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

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

Proyecto

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

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

Haz los cambios siguientes:

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

Carpeta

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

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

Haz los cambios siguientes:

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

Organización

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

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

Haz los cambios siguientes:

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

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

Verificar la instalación

Config Connector ejecuta todos sus componentes en un espacio de nombres llamado cnrm-system. Para comprobar que los pods están listos, ejecuta el siguiente comando:

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

Si Config Connector se ha instalado correctamente, el resultado será similar al siguiente:

pod/cnrm-controller-manager-0 condition met

Actualizar Config Connector

Para descargar e instalar la versión más reciente del operador de Config Connector, sigue estos pasos:

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

Revertir a una versión anterior de Config Connector

No se admite la degradación completa de Config Connector. Para cambiar a una versión anterior tanto del operador de Config Connector como de los CRDs, debes desinstalar y volver a instalar Config Connector, y, a continuación, volver a aplicar tus recursos.

En Config Connector 1.123.1 y versiones posteriores, puedes restaurar la versión del operador en las instalaciones que usen el modo con espacio de nombres. En cada espacio de nombres que tenga un operador al que quieras revertir, define el campo spec.version del objeto ConfigConnectorContext en la versión anterior de Config Connector.

Puedes revertir el controlador de Config Connector a un máximo de 3 versiones secundarias. Siempre debes volver a la versión de parche más reciente de una versión secundaria determinada.

Desinstalar Config Connector

Usa kubectl delete para quitar los CRDs 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

Actualizar desde instalaciones que no son de operadores

Config Connector versión 1.33.0 y posteriores solo admite la instalación con el complemento de GKE o el operador.

Para actualizar al operador (y conservar todos los recursos de Config Connector), debes eliminar todos los componentes del sistema de Config Connector, excepto los CRDs, y, a continuación, instalar el operador.

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

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 instalada.

La instalación manual permite que las actualizaciones sean más rápidas, pero las actualizaciones deben hacerse manualmente.

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

  1. Inhabilita el complemento sin eliminar ningún objeto ConfigConnector ni ConfigConnectorContext:

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

    Sustituye CLUSTER_NAME por el nombre del clúster en el que has instalado Config Connector.

  2. Instala el operador manual de la versión elegida.

    Para evitar posibles errores de validación de CRD (por ejemplo, KNV2009: Invalid value: "v1beta1": must appear in spec.versions, la versión elegida del operador manual debe ser igual o posterior a la versión que estabas usando para el complemento. Si se cambia a una versión anterior del operador manual, pueden producirse errores (por ejemplo, KNV2009) porque es posible que el complemento de GKE ya haya actualizado determinados CRDs a una versión posterior de Config Connector.

Siguientes pasos