Instala Config Connector de forma manual
En esta página, se explica cómo instalar Config Connector de forma manual. La instalación manual es una opción flexible que te permite controlar la versión instalada y el programa de actualización.
Las instrucciones de esta página se enfocan en la instalación de Config Connector en clústeres de Google Kubernetes Engine (GKE). Para obtener más información sobre las diferentes opciones de instalación, consulta Elige un tipo de instalación.
En la mayoría de los casos de uso, debes instalar Config Connector de forma manual 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 permisos, lo que lo convierte en el modo recomendado para clústeres multiusuario o para administrar recursos en varios proyectos. En entornos multiusuario, evita el modo de clúster. El modo de clúster usa una sola cuenta de servicio de Identity and Access Management (IAM) compartida. Cualquier usuario que pueda crear recursos de Config Connector en cualquier espacio de nombres puede actuar con los permisos de IAM completos de esa cuenta de servicio.
Si prefieres una sola cuenta de servicio para todo el clúster, sigue las instrucciones para instalar en modo de clúster.
Antes de comenzar
Antes de instalar de forma manual el operador de Config Connector, completa los siguientes pasos:
- Crea o identifica un clúster de GKE en el que aún no se haya instalado Config Connector y que tenga Workload Identity y Kubernetes Engine Monitoring habilitado.
- Configura
kubectlpara conectarte a tu clúster.
Instala el operador de Config Connector
Config Connector usa un operador de Kubernetes para mantener su instalación actualizada. La instalación del operador es obligatoria, ya sea que instales Config Connector en modo de espacio de nombres o en modo de clúster.
Para instalar el operador del Config Connector, completa los siguientes pasos:
Descarga el archivo .tar más reciente del operador de Config Connector:
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 modo que se ejecute en el modo con espacio de nombres, completa los siguientes pasos:
Crea un 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 al clúster:
kubectl apply -f configconnector.yaml
Instala Config Connector en modo de espacio de nombres
En las siguientes secciones, el proyecto en el que instalas Config Connector es el proyecto host. Los otros proyectos en los que puedes hacer que Config Connector administre recursos son proyectos administrados. El proyecto host y el administrado pueden ser el mismo proyecto si deseas que Config Connector solo cree recursos en el mismo proyecto que tu clúster.
Crea un espacio de nombres
Crea un espacio de nombres nuevo ejecutando el siguiente comando:
kubectl create namespace NAMESPACE
Reemplaza NAMESPACE por un nombre para el espacio de nombres.
Crea una identidad
Crea una cuenta de servicio de IAM y una vinculación 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 tienes una cuenta de servicio existente, puedes usarla en lugar de crear una nueva. Usa
gcloudpara crear la cuenta de servicio mediante la ejecución del siguiente comando:gcloud iam service-accounts create NAMESPACE_GSA --project HOST_PROJECT_IDReemplaza lo siguiente:
- NAMESPACE_GSA con el nombre de la cuenta de servicio de Google (GSA) vinculado 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 Crea y administra cuentas de servicio.
Otorga a la cuenta de servicio de IAM permisos elevados en tu proyecto administrado:
gcloud projects add-iam-policy-binding MANAGED_PROJECT_ID \ --member="serviceAccount:NAMESPACE_GSA@HOST_PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/owner"Reemplaza MANAGED_PROJECT_ID por el ID de tu proyecto administrado.
Crea una vinculación de políticas de IAM entre la cuenta de servicio de IAM 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"Otorga permisos a la cuenta de servicio de IAM 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"
Crea un ConfigConnectorContext
Para crear recursos de Google Cloud , configura el Config Connector
para que supervise tu espacio de nombres agregando un objeto ConfigConnectorContext
en ese espacio de nombres.
Para crear un ConfigConnectorContext, completa los siguientes pasos.
Crea un 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 al clúster:
kubectl apply -f configconnectorcontext.yamlVerifica que el operador de Config Connector haya creado una cuenta de servicio de Kubernetes para tu espacio de nombres. Para ello, 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 es similar al siguiente:
cnrm-controller-manager-abcdefghijk-0 condition met.
Deja de administrar recursos en un espacio de nombres
Si deseas que Config Connector deje de administrar recursos en un espacio de nombres, quita todos
los recursos de Config Connector y el objeto ConfigConnectorContext
en ese espacio de nombres.
Para encontrar todos los recursos de Config Connector en tu espacio de nombres, enumera todos los recursos de cada definición de recurso personalizado de Config Connector.
kubectl get gcp -n NAMESPACEEn el resultado de este comando, se enumeran todas las definiciones de recursos personalizados (CRD) que representan un recurso administrado por Config Connector en ese espacio de nombres, incluidos el nombre y el tipo de Kubernetes de ese recurso.
Para quitar todos los recursos del Config Connector, ejecuta el siguiente comando para cada recurso en el resultado del paso anterior:
kubectl delete -n NAMESPACE KIND NAMEReemplaza lo siguiente:
KIND: Es el tipo de Kubernetes del recurso.NAME: el nombre del recurso.
Borra el objeto
ConfigConnectorContexten tu espacio de nombres.kubectl delete -n NAMESPACE ConfigConnectorContext configconnectorcontext.core.cnrm.cloud.google.com
Desinstala Config Connector
Para desinstalar Config Connector, completa los siguientes pasos:
Para quitar los CRD 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
Instala en modo de clúster
Es posible que prefieras instalar y administrar Config Connector en modo de clúster si quieres administrar recursos dentro de un solo proyecto y no necesitas la separación de permisos que proporciona el modo de espacio de nombres.
Crea una identidad
Config Connector crea y administra recursos de Google Cloud mediante la autenticación con una cuenta de servicio de Identity and Access Management (IAM) y el uso de Workload Identity Federation for GKE para 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 deseas usar una cuenta de servicio existente, puedes usar esa cuenta y omitir este paso:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAMEReemplaza SERVICE_ACCOUNT_NAME por un nombre para tu cuenta de servicio.
Para obtener más información sobre cómo crear cuentas de servicio, consulta Crea y administra cuentas de servicio.
Otorga a la cuenta de servicio de IAM permisos elevados en tu proyecto:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/editor"Reemplaza PROJECT_ID con el ID del proyecto.
Crea una vinculación de políticas de IAM entre la cuenta de servicio de IAM y la cuenta de servicio de Kubernetes predefinida que 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"
Configura 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 CRD de recursos deGoogle Cloud y los componentes de Config Connector en tu clúster.
Para configurar el operador como modo de clúster, completa los siguientes pasos:
-
Copia el siguiente archivo YAML en un archivo llamado
configconnector.yaml: Reemplaza 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_NAMEpor el nombre de tu cuenta de servicioPROJECT_IDpor el ID del proyecto
-
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, que es la misma forma en 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 conkubectl.
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:
NAMESPACEpor tu nombre de espacio de nombres.PROJECT_IDpor el ID del proyecto de 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
Reemplaza lo siguiente:
NAMESPACEpor tu nombre de espacio de nombres.FOLDER_IDpor el ID de tu carpeta de Google Cloud .
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:
NAMESPACEpor tu nombre de espacio de nombres.ORGANIZATION_IDcon su ID de organización. Google Cloud
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 de Google Cloud .
Verifica la 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
Desinstala Config Connector
Para desinstalar Config Connector, completa los siguientes pasos:
Para quitar los CRD 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
Actualiza Config Connector
Para descargar e instalar la versión más reciente del operador del 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
Cambia a una versión anterior de Config Connector
No se admite la versión anterior completa del Config Connector. Para cambiar a una versión anterior del operador de Config Connector y de las 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 que quieras 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 a un máximo de 3 versiones secundarias. Siempre debes revertir a la versión de parche más reciente para una versión secundaria determinada.
Actualiza desde instalaciones que no son de operador
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.
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=trueInstala Config Connector con el complemento de GKE o el operador.
Cambia del complemento a una instalación manual
Cuando se instala como un complemento, la versión de Config Connector está vinculada directamente a la versión de GKE que se instala.
La instalación manual permite actualizaciones más rápidas a costa de las actualizaciones manuales.
Para cambiar los métodos de instalación y conservar tus recursos de forma segura, completa los siguientes pasos:
Inhabilita el complemento sin borrar ningún objeto
ConfigConnectorniConfigConnectorContext:gcloud container clusters update CLUSTER_NAME --update-addons ConfigConnector=DISABLEDReemplaza
CLUSTER_NAMEpor el nombre del clúster en el que instalaste el 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 usabas para el complemento. Cambiar a una versión anterior del operador manual puede causar errores (por ejemplo, KNV2009) porque es posible que el complemento de GKE ya haya actualizado ciertas CRD a una versión posterior de Config Connector.
¿Qué sigue?
- Comienza con Config Connector.
- Obtén más información sobre las prácticas recomendadas para Config Connector.