Instalar Config Connector manualmente
En esta página se explica cómo instalar Config Connector manualmente. La instalación manual es una opción flexible que te permite controlar la versión instalada y la programación de las actualizaciones.
Para obtener más información sobre las diferentes opciones de instalación, consulta Elegir un tipo de instalación.
En la mayoría de los casos prácticos, recomendamos instalar Config Connector manualmente en el modo de espacio de nombres. La alternativa es el modo de clúster. El modo con espacio de nombres es más escalable y ofrece un mejor aislamiento de los permisos, lo que resulta ideal para casos prácticos de multitenancy o cuando se gestionan recursos de varios proyectos.
Si prefieres usar una sola cuenta de servicio en todo el clúster, sigue las instrucciones para instalar en modo clúster.
Antes de empezar
Antes de instalar manualmente el operador de Config Connector, sigue estos pasos:
- Crea o identifica un clúster de GKE en el que aún no se haya instalado Config Connector y que tenga habilitadas las opciones Workload Identity y Monitorización de Kubernetes Engine.
- Configura
kubectlpara conectarte a tu clúster.
Instalar el operador de Config Connector
Config Connector usa un operador de Kubernetes para mantener su instalación actualizada. Es necesario instalar el operador tanto si instalas Config Connector en el modo de espacio de nombres como en el modo de clúster.
Para instalar el operador de Config Connector, sigue estos pasos:
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.gzExtrae el archivo tar:
tar zxvf release-bundle.tar.gzInstala el operador de Config Connector en tu clúster:
Autopilot
kubectl apply -f operator-system/autopilot-configconnector-operator.yamlEstándar
kubectl apply -f operator-system/configconnector-operator.yamlPara configurar el operador de Config Connector de forma que se ejecute en el modo de espacio de nombres, sigue estos pasos:
Crea un archivo de manifiesto llamado
configconnector.yamlcon el siguiente contenido:apiVersion: core.cnrm.cloud.google.com/v1beta1 kind: ConfigConnector metadata: # the name is restricted to ensure that there is only ConfigConnector resource installed in your cluster name: configconnector.core.cnrm.cloud.google.com spec: mode: namespaced stateIntoSpec: AbsentAplica el manifiesto a tu clúster:
kubectl apply -f configconnector.yaml
Instalar Config Connector en modo de espacio de nombres
En las siguientes secciones, el proyecto en el que instales Config Connector será el proyecto host. Los otros proyectos en los que Config Connector puede gestionar recursos son los proyectos gestionados. El proyecto host y el proyecto gestionado pueden ser el mismo si quieres que Config Connector solo cree recursos en el mismo proyecto que tu clúster.
Crear un espacio de nombres
Crea un espacio de nombres ejecutando el siguiente comando:
kubectl create namespace NAMESPACE
Sustituye NAMESPACE por el nombre del espacio de nombres.
Crear una identidad
Crea una cuenta de servicio de Gestión de Identidades y Accesos (IAM) y crea un enlace entre la cuenta de servicio de IAM y la cuenta de servicio de Kubernetes de Config Connector siguiendo estos pasos:
Crea una cuenta de servicio de IAM. Si ya tienes una cuenta de servicio, puedes usarla en lugar de crear una nueva. Usa
gcloudpara crear la cuenta de servicio ejecutando el siguiente comando:gcloud iam service-accounts create NAMESPACE_GSA --project HOST_PROJECT_IDHaz los cambios siguientes:
- NAMESPACE_GSA con el nombre de la cuenta de servicio de Google (GSA) vinculada a tu espacio de nombres.
- HOST_PROJECT_ID por el ID de tu proyecto host.
Para obtener más información sobre cómo crear cuentas de servicio, consulta el artículo Crear y gestionar cuentas de servicio.
Concede permisos elevados a la cuenta de servicio de gestión de identidades y accesos en tu proyecto gestionado:
gcloud projects add-iam-policy-binding MANAGED_PROJECT_ID \ --member="serviceAccount:NAMESPACE_GSA@HOST_PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/owner"Sustituye MANAGED_PROJECT_ID por el ID de tu proyecto gestionado.
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 de Config Connector:
gcloud iam service-accounts add-iam-policy-binding \ NAMESPACE_GSA@HOST_PROJECT_ID.iam.gserviceaccount.com \ --member="serviceAccount:HOST_PROJECT_ID.svc.id.goog[cnrm-system/cnrm-controller-manager-NAMESPACE]" \ --role="roles/iam.workloadIdentityUser"Concede a la cuenta de servicio de gestión de identidades y accesos permisos para publicar métricas de Prometheus en Google Cloud Observability en tu proyecto host:
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member="serviceAccount:NAMESPACE_GSA@HOST_PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.metricWriter"
Crear un ConfigConnectorContext
Para crear recursos de Google Cloud , configura Config Connector para que monitorice tu espacio de nombres añadiendo un objeto ConfigConnectorContext en ese espacio.
Para crear un ConfigConnectorContext, sigue estos pasos:
Crea un archivo de manifiesto llamado
configconnectorcontext.yamlcon el siguiente contenido:apiVersion: core.cnrm.cloud.google.com/v1beta1 kind: ConfigConnectorContext metadata: # you need one ConfigConnectorContext per namespace name: configconnectorcontext.core.cnrm.cloud.google.com namespace: NAMESPACE spec: googleServiceAccount: "NAMESPACE_GSA@HOST_PROJECT_ID.iam.gserviceaccount.com" stateIntoSpec: AbsentAplica el manifiesto a tu clúster:
kubectl apply -f configconnectorcontext.yamlPara verificar que el operador de Config Connector ha creado una cuenta de servicio de Kubernetes para tu espacio de nombres, ejecuta el siguiente comando:
kubectl get serviceaccount/cnrm-controller-manager-NAMESPACE -n cnrm-systemVerifica que el pod del controlador de Config Connector se esté ejecutando en tu espacio de nombres:
kubectl wait -n cnrm-system \ --for=condition=Ready pod \ -l cnrm.cloud.google.com/component=cnrm-controller-manager \ -l cnrm.cloud.google.com/scoped-namespace=NAMESPACESi el controlador de Config Connector está en ejecución, el resultado será similar al siguiente:
cnrm-controller-manager-abcdefghijk-0 condition met.
Dejar de gestionar recursos en un espacio de nombres
Si quiere que Config Connector deje de gestionar recursos en un espacio de nombres, elimine todos los recursos de Config Connector y el objeto ConfigConnectorContext de ese espacio de nombres.
Para encontrar todos los recursos de Config Connector de tu espacio de nombres, enumera todos los recursos de cada definición de recurso personalizado de Config Connector.
kubectl get gcp -n NAMESPACEEl resultado de este comando muestra todas las definiciones de recursos personalizadas (CRDs) que representan un recurso gestionado por Config Connector en ese espacio de nombres, incluido el nombre y el tipo de Kubernetes de ese recurso.
Para eliminar todos los recursos de Config Connector, ejecuta el siguiente comando para cada recurso de la salida del paso anterior:
kubectl delete -n NAMESPACE KIND NAMEHaz los cambios siguientes:
KIND: el tipo de Kubernetes del recurso.NAME: el nombre del recurso.
Elimina el objeto
ConfigConnectorContextde tu espacio de nombres.kubectl delete -n NAMESPACE ConfigConnectorContext configconnectorcontext.core.cnrm.cloud.google.com
Desinstalar Config Connector
Para desinstalar Config Connector, sigue estos pasos:
Para quitar los CRDs y los componentes del controlador de Config Connector, ejecuta el siguiente comando:
kubectl delete ConfigConnectorContext --all -A –wait=false kubectl delete ConfigConnector configconnector.core.cnrm.cloud.google.com \ --wait=truePara desinstalar el operador de Config Connector, ejecuta el siguiente comando:
kubectl delete -f operator-system/configconnector-operator.yaml --wait=true
Instalar en modo clúster
Puede que prefieras instalar y gestionar Config Connector en el modo de clúster si quieres gestionar recursos en un solo proyecto y no necesitas la separación de permisos que proporciona el modo de espacio de nombres.
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:
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_NAMESustituye 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.
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.
.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 el ConfigConnector
CustomResource
y, a continuación, aplícalo con el comando kubectl apply. El operador de Config Connector instala CRDs de recursos y componentes de Config Connector en tu clúster.Google Cloud
Para configurar el operador como modo de clúster, sigue estos pasos:
-
Copia el siguiente archivo YAML en un archivo llamado
configconnector.yaml: Sustituye lo siguiente:# 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
SERVICE_ACCOUNT_NAMEcon el nombre de tu cuenta de servicio.PROJECT_IDpor el ID del proyecto.
-
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 conkubectl.
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:
NAMESPACEcon el nombre de tu espacio de nombres.PROJECT_IDpor el ID de tu proyecto. Google Cloud
Carpeta
Para crear recursos en una carpeta concreta, ejecuta el siguiente comando:
kubectl annotate namespace \ NAMESPACE cnrm.cloud.google.com/folder-id=FOLDER_ID
Haz los cambios siguientes:
NAMESPACEcon el nombre de tu espacio de nombres.FOLDER_IDcon 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:
NAMESPACEcon el nombre de tu espacio de nombres.ORGANIZATION_IDcon 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
Desinstalar Config Connector
Para desinstalar Config Connector, sigue estos pasos:
Para quitar los CRDs y los componentes del controlador de Config Connector, ejecuta el siguiente comando:
kubectl delete ConfigConnector configconnector.core.cnrm.cloud.google.com \ --wait=truePara desinstalar el operador de Config Connector, ejecuta el siguiente comando:
kubectl delete -f operator-system/configconnector-operator.yaml --wait=true
Actualizar Config Connector
Para descargar e instalar la versión más reciente del operador de Config Connector, ejecuta el siguiente comando:
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.
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.
Ejecuta los siguientes comandos para eliminar los componentes del sistema de Config Connector que no son CRDs:
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=trueInstala 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 requiere que las actualizaciones se hagan manualmente.
Para cambiar de método de instalación y conservar tus recursos de forma segura, sigue estos pasos:
Inhabilita el complemento sin eliminar ningún objeto
ConfigConnectorniConfigConnectorContext:gcloud container clusters update CLUSTER_NAME --update-addons ConfigConnector=DISABLEDSustituye
CLUSTER_NAMEpor el nombre del clúster en el que has instalado Config Connector.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 la misma o posterior a la 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
- Empieza a usar Config Connector.
- Consulta las prácticas recomendadas de Config Connector.