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.
En las siguientes instrucciones, Config Connector se configura como modo de clúster, lo que significa que habrá un controlador global de Config Connector que se suplantará como una sola cuenta de servicio de IAM Google Cloud . A medida que agregues más recursos de Config Connector y más espacios de nombres de Kubernetes en el mismo clúster, tal vez quieras considerar cambiar al modo de espacio de nombres, que es más escalable y ofrece un mejor aislamiento de permisos de IAM para casos de uso de múltiples inquilinos, por ejemplo, la administración de recursos de múltiples proyectos de Google Cloud .
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
kubectl
para conectarte a tu clúster.
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:
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
Extrae el archivo tar:
tar zxvf release-bundle.tar.gz
Instala el operador de Config Connector en tu clúster.
Para los clústeres de GKE Autopilot, haz lo siguiente:
kubectl apply -f operator-system/autopilot-configconnector-operator.yaml
Para los clústeres de GKE Standard, haz lo siguiente:
kubectl apply -f operator-system/configconnector-operator.yaml
Crea una identidad
Config Connector crea y administra recursos Google Cloud autenticándose con una cuenta de servicio de Identity and Access Management (IAM) y usando la federación de identidades para cargas de trabajo de 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 usarla y omitir este paso:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Reemplaza SERVICE_ACCOUNT_NAME por un nombre para tu cuenta de servicio.
Si deseas obtener más información para crear cuentas de servicio, consulta Crea y administra cuentas de servicio.
Otorga permisos elevados a la cuenta de servicio de IAM 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ítica 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"
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 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_NAME
por el nombre de tu cuenta de servicioPROJECT_ID
por 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, 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 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:
NAMESPACE
por tu nombre de 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
Reemplaza lo siguiente:
NAMESPACE
por tu nombre de espacio de nombres.FOLDER_ID
por el ID de tu carpeta 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:
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 de 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 reversión completa de Config Connector. Para cambiar a una versión inferior del operador y los CRD de Config Connector, debes desinstalarlo, reinstalarlo 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 desees 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 secundarias. Siempre debes revertir a la versión de parche más reciente para una versión secundaria 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.
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
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 instalada.
La instalación manual permite actualizaciones más rápidas, pero requiere actualizaciones manuales.
Para cambiar de cuenta y conservar todos los recursos de forma segura, haz lo siguiente:
Inhabilita el complemento sin borrar ningún objeto
ConfigConnector
oConfigConnectorContext
: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.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 revierte la versión del operador manual, se pueden producir errores (por ejemplo, KNV2009) porque es posible que el complemento de GKE ya haya actualizado ciertos CRD a una versión posterior de Config Connector.
¿Qué sigue?
- Comienza con Config Connector.
- Obtén información sobre las prácticas recomendadas para Config Connector.