Instala, actualiza y desinstala Config Connector

Este tema describe cómo instalar Config Connector en tu clúster.

Antes de comenzar

Antes de comenzar, asegúrate de haber realizado las siguientes tareas:

Establece la configuración de gcloud predeterminada mediante uno de los siguientes métodos:

  • Usa gcloud init si deseas ver una explicación sobre cómo configurar parámetros predeterminados.
  • Usa gcloud config para establecer el ID, la zona y la región del proyecto de manera individual.

Usa gcloud init

Si recibes el error One of [--zone, --region] must be supplied: Please specify location, completa esta sección.

  1. Ejecuta gcloud init y sigue las instrucciones:

    gcloud init

    Si usas SSH en un servidor remoto, usa la marca --console-only para evitar que el comando abra un navegador:

    gcloud init --console-only
  2. Sigue las instrucciones a fin de autorizar a gcloud para que use tu cuenta de Google Cloud.
  3. Crea una configuración nueva o selecciona una existente.
  4. Elige un proyecto de Google Cloud.
  5. Elige una zona predeterminada de Compute Engine.

Usa gcloud config

  • Establece tu ID del proyecto predeterminado:
    gcloud config set project project-id
  • Si trabajas con clústeres zonales, establece tu zona de procesamiento predeterminada:
    gcloud config set compute/zone compute-zone
  • Si trabajas con clústeres regionales, establece tu región de procesamiento predeterminada:
    gcloud config set compute/region compute-region
  • Actualiza gcloud a la versión más reciente:
    gcloud components update
  • Selecciona un proyecto de Google Cloud donde instalarás Config Connector.

Elegir su tipo de instalación

Puede instalar Config Connector de una de las siguientes maneras:

  • Usa el complemento de conector de configuración con Workload Identity (Beta)
  • Con una Workload Identity de GKE,
  • Usar manualmente una cuenta de servicio y una Google Cloud Identity
  • Usa el modo de espacio de nombres de forma manual para admitir la administración de varios proyectos, cada uno con sus propias identidades de Google Cloud.

Para obtener más información sobre estos tipos de instalación, consulte Elección de un tipo de instalación.

Seleccione una pestaña a continuación para elegir su tipo de instalación.

Complemento

Para usar el complemento de Config Connector, crea un clúster nuevo o habilítalo en un clúster existente.

Requisitos

El complemento de conector de configuración requiere una versión de GKE de:

  • 1.15.11-gke.5 y posteriores
  • 1.16.8-gke.8 y posteriores
  • 1.17.4-gke.5 y posteriores

Además, tu clúster debe tener habilitadas Workload Identity y Kubernetes Engine Monitoring.

Crea un clúster nuevo con el complemento de Config Connector habilitado

Puedes crear un clúster de GKE con gcloud o Google Cloud Console. Con estas instrucciones, se crea un clúster nuevo con un grupo de Workload Identity y Kubernetes Engine Monitoring.

Después de instalar el complemento de Config Connector, configura tus Cuentas de servicio de Google y espacios de nombres.

gcloud

Para crear un clúster con gcloud,, ejecuta el siguiente comando:

gcloud beta container clusters create [CLUSTER_NAME] \
  --release-channel [CHANNEL] --addons ConfigConnector \
  --workload-pool=[PROJECT_ID].svc.id.goog --enable-stackdriver-kubernetes

Reemplaza lo siguiente:

  • [CLUSTER_NAME] por el nombre de tu clúster de GKE.
  • Se admiten [CHANNEL] por un canal de versiones de GKE, rapid y regular.
  • [PROJECT_ID] por el ID del proyecto de Google Cloud

Cloud Console

Para crear un clúster con Google Cloud Console, sigue estos pasos:

  1. Visita el menú de Google Kubernetes Engine en Cloud Console.

    Ir al menú Google Kubernetes Engine

  2. Haz clic en el botón Agregar clúster y, luego, en Crear clúster. Aparecerá la pantalla Crear un clúster de Kubernetes.

  3. Especifica un Nombre para tu clúster.

  4. Elige una Versión principal compatible.

  5. Configura tu clúster como desees.

  6. En el panel de navegación, en Clúster, haz clic en Seguridad.

  7. Selecciona la casilla de verificación Habilitar Workload Identity.

  8. En el panel de navegación del lado izquierdo, en Clúster, haz clic en Funciones.

  9. Selecciona la casilla de verificación Habilitar Config Connector.

  10. Haga clic en Crear.

Una vez que hayas completado esta tarea, continúa con la configuración del complemento Config Connector.

Habilitar el complemento de Config Connector en un clúster existente

Puedes habilitar el complemento de Config Connector en un clúster de GKE con gcloud o Google Cloud Console.

Antes de comenzar
  • Tener un clúster que cumpla con los requisitos para el complemento de Config Connector
  • Configure Workload Identity en el clúster donde instalará Config Connector.
Habilitar el complemento de Config Connector

Puedes habilitar el complemento de Config Connector en un clúster de GKE existente con gcloud o Google Cloud Console.

Después de instalar el complemento de Config Connector, debes configurar la instalación de Config Connector con las Cuentas de servicio de Google y los espacios de nombres.

gcloud

Para habilitar el complemento Config Connector en un clúster de GKE existente con gcloud, ejecuta el siguiente comando:

gcloud beta container clusters update [CLUSTER_NAME] --update-addons ConfigConnector=ENABLED

Reemplaza [CLUSTER_NAME] por el nombre de tu clúster de GKE.

Cloud Console

  1. Visita el menú de Google Kubernetes Engine en Cloud Console.

    Ir al menú Google Kubernetes Engine

  2. Selecciona el clúster en el que desees instalar Config Connector. Aparecerá la pantalla de detalles del clúster.

  3. Haz clic en Editar.

  4. Haz clic en Complementos. El menú se expande.

  5. En Config Connector, elige Habilitado.

  6. Haz clic en Guardar para actualizar tu clúster.

Una vez que hayas completado esta tarea, continúa con la configuración del complemento Config Connector.

Confirma la instalación del operador de Config Connector

El complemento de Config Connector instala un Operador de Kubernetes que configura Config Connector. Para comprobar el estado de instalación del operador de Config Connector, ejecuta el siguiente comando kubectl:

gcloud

kubectl wait pod/configconnector-operator-0 -n configconnector-operator-system --for=condition=Initialized

Cuando se ejecuta el operador del Config Connector, el comando muestra que hay exactamente un Pod con un STATUS de Running.

NAME                                        READY   STATUS    RESTARTS   AGE
configconnector-operator-0   1/1          Running    0                    2m

Cloud Console

Para verificar el estado del operador del Config Connector desde Google Cloud Console, visita el menú Cargas de trabajo de Google Kubernetes Engine.

Visitar el menú Cargas de trabajo

Si el operador del Config Connector está instalado de forma correcta, se muestra una carga de trabajo llamada configconnector-operator con el estado OK.

Configuración de Config Connector

Para completar la instalación del complemento de conector de configuración, debes crear un archivo de configuración para ConfigConnector CustomResource y, luego, aplicarlo con el comando kubectl apply.

  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 ConfigConnector instance installed in your cluster
      name: configconnector.core.cnrm.cloud.google.com
    
  2. Aplica la configuración a tu clúster con kubectl apply:

    kubectl apply -f configconnector.yaml
    

El operador de Config Connector instala los componentes de CRD de Google Cloud y los componentes de Config Connector en tu clúster.

Para ver los recursos de Google Cloud disponibles en Config Connector, ejecuta el siguiente comando:

kubectl get crds --selector cnrm.cloud.google.com/managed-by-kcc=true

Configura el Config Connector para mirar tus espacios de nombres

Para el resto de esta sección, el proyecto de Google Cloud en el que instalas Config Connector se conoce como proyecto host o [HOST_PROJECT_ID]. Los otros proyectos en los que administras recursos se conocen como los proyectos administrados o [MANAGED_PROJECT_ID]. Estos podrían ser el mismo proyecto si solo pretendes usar el conector de configuración para crear recursos de Google Cloud en el mismo proyecto que tu clúster.

Cree un espacio de nombres

Puedes omitir este paso si ya tienes un espacio de nombres para usar en la organización de los recursos de Google Cloud.

Usa kubectl para crear un nuevo espacio de nombres mediante la ejecución del siguiente comando:

kubectl create namespace [NAMESPACE]

Reemplaza [NAMESPACE] por el espacio de nombres que estás configurando.

Crea una cuenta de servicio

A continuación, crea una cuenta de servicio de administración de identidades y accesos (IAM) para vincular tu cuenta de servicio de Google (GSA) y tu cuenta de servicio de Kubernetes (KSA).

  1. Configura gcloud para usar tu proyecto host.

    gcloud config set project [HOST_PROJECT_ID]
    

    Reemplaza [HOST_PROJECT_ID] por el ID de tu proyecto host.

  2. Crea una cuenta de servicio. Si tienes una cuenta de servicio existente, puedes usarla en lugar de crear una nueva. Usa gcloud para crear la cuenta de servicio mediante la ejecución del siguiente comando:

    gcloud iam service-accounts create [NAMESPACE_GSA]
    

    Reemplaza [NAMESPACE_GSA] por la GSA vinculada a tu espacio de nombres.

  3. Otorga permisos elevados a la cuenta de servicio de IAM en tu proyecto administrado.

    gcloud config set project [MANAGED_PROJECT_ID]
    gcloud projects add-iam-policy-binding [MANAGED_PROJECT_ID] \
    --member="serviceAccount:[NAMESPACE_GSA]@[HOST_PROJECT_ID].iam.gserviceaccount.com" \
    --role="roles/owner"
    

    Reemplaza lo siguiente:

    • [MANAGED_PROJECT_ID] por el ID de tu proyecto administrado
    • [NAMESPACE_GSA] por la GSA vinculada al espacio de nombres
    • [HOST_PROJECT_ID] por el ID de tu proyecto host
Crea un ConfigConnectorContext

Para crear recursos de Google Cloud, debes configurar el conector de configuración a fin de ver tu espacio de nombres agregando un objeto ConfigConnectorContext CustomResource en el espacio de nombres deseado.

  1. Copia el siguiente YAML en un archivo llamado configconnectorcontext.yaml.

    # configconnectorcontext.yaml
    
    apiVersion: core.cnrm.cloud.google.com/v1beta1
    kind: ConfigConnectorContext
    metadata:
      # you can only have one ConfigConnectorContext per Namespace
      name: configconnectorcontext.core.cnrm.cloud.google.com
      namespace: [NAMESPACE]
    spec:
      # The Google Service Account used to authenticate Google Cloud APIs in this Namespace
      googleServiceAccount: "[NAMESPACE_GSA]@[HOST_PROJECT_ID].iam.gserviceaccount.com"
    

    Reemplaza lo siguiente:

    • [NAMESPACE] por tu espacio de nombres
    • [NAMESPACE_GSA] por la GSA vinculada al espacio de nombres
    • [HOST_PROJECT_ID] por el ID de tu proyecto host
  2. Aplica el archivo a tu clúster con kubectl.

    kubectl apply -f configconnectorcontext.yaml
    
  3. Verifica que el operador de Config Connector haya creado una cuenta de servicio de Kubernetes para tu espacio de nombres con kubectl mediante la ejecución del siguiente comando:

    kubectl get serviceaccount/cnrm-controller-manager-[NAMESPACE] -n cnrm-system
    

    Reemplaza [NAMESPACE] por el nombre de tu espacio de nombres.

  4. Verifica que el Pod del controlador de Config Connector se ejecute para tu espacio de nombres con kubectl mediante la ejecución del siguiente comando:

    kubectl wait -n cnrm-system \
      --for=condition=Ready pod\
      cnrm-controller-manager-[NAMESPACE]-0
    

    Reemplaza [NAMESPACE] por el nombre de tu espacio de nombres.

Vincula tu cuenta de servicio de Kubernetes del ConfigConnector a la cuenta de servicio de Google

Crea una vinculación de política de IAM entre la cuenta de servicio de IAM y la cuenta de servicio de Config Connector de Kubernetes. Para vincular las cuentas de servicio, ejecuta el siguiente comando de gcloud:

gcloud config set project [HOST_PROJECT_ID]
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"

Reemplaza lo siguiente:

  • [HOST_PROJECT_ID] por el ID de tu proyecto host
  • [NAMESPACE_GSA] por la GSA vinculada al espacio de nombres
  • [NAMESPACE] por tu espacio de nombres

Workload Identity

Requisitos

Antes de instalar Config Connector en un clúster, realiza los siguientes pasos.

  • Cree o identifique un clúster de GKE en el que Config Connector aún no se haya instalado.
  • Configura Workload Identity en el clúster en el que instalarás Config Connector. Si deseas usar la misma cuenta de servicio de Google (GSA) and Kubernetes (KSA) que creaste cuando instalaste Workload Identity, debes tener disponibles sus ID.

  • Configura kubectl para conectarte a tu clúster.

Crea una identidad

La configuración de la identidad incluye:

  • Crear una cuenta de servicio de IAM
  • Crear una vinculación entre la cuenta de servicio de IAM y la cuenta de servicio de Kubernetes de Config Connector.
  1. Cree la cuenta de servicio cnrm-system con gcloud:

    gcloud iam service-accounts create cnrm-system
  2. Otorga permisos elevados a la cuenta de servicio de IAM en tu proyecto. Reemplaza [PROJECT_ID] con el ID del proyecto.

    gcloud projects add-iam-policy-binding [PROJECT_ID] \
    --member="serviceAccount:cnrm-system@[PROJECT_ID].iam.gserviceaccount.com" \
    --role="roles/owner"
    
  3. 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. Reemplaza [PROJECT_ID] por el ID del proyecto.

    gcloud iam service-accounts add-iam-policy-binding \
    cnrm-system@[PROJECT_ID].iam.gserviceaccount.com \
    --member="serviceAccount:[PROJECT_ID].svc.id.goog[cnrm-system/cnrm-controller-manager]" \
    --role="roles/iam.workloadIdentityUser"
    

Implementa Config Connector

  1. Descarga el último archivo tar del paquete de instalación:

     gsutil cp gs://cnrm/latest/release-bundle.tar.gz release-bundle.tar.gz
  2. Extrae el archivo tar.

    tar zxvf release-bundle.tar.gz
  3. Proporciona el ID del proyecto en el manifiesto de instalación del controlador. Antes de ejecutar el siguiente comando, reemplaza [PROJECT_ID] por el ID de tu proyecto.

    sed -i.bak 's/${PROJECT_ID?}/[PROJECT_ID]/' install-bundle-workload-identity/0-cnrm-system.yaml
  4. Aplica los manifiestos a tu clúster.

    kubectl apply -f install-bundle-workload-identity/

Google Cloud Identity

Requisitos previos

Antes de poder instalar Config Connector, realice los siguientes pasos:

  1. Crea un clúster de GKE.
  2. Configura kubectl para conectarte a tu clúster.

Crea un ClusterRoleBinding

Config Connector necesita permiso para crear funciones de Kubernetes antes de poder crear recursos.

Verifica que puedes crear funciones si ejecutas el siguiente comando.

kubectl auth can-i create roles

Si el resultado es yes, continúe con Crea una identidad.

Si el resultado es no, cree un ClusterRoleBinding en su clúster. Esto le permite crear funciones. Reemplaza [ACCOUNT_EMAIL] por el correo electrónico asociado con tu cuenta de Google Cloud.

kubectl create clusterrolebinding cluster-admin-binding \
--clusterrole cluster-admin \
--user [ACCOUNT_EMAIL]

Las salidas deben contener la frase cluster-admin-binding created. Si no es así, comuníquese con el administrador de su cuenta de Google Cloud o del clúster de GKE para conocer los permisos.

Crea una identidad

Un clúster de Config Connector necesita una identidad de Google Cloud para comunicarse con otros recursos. Para configurar la identidad, debes crear una cuenta de servicio de IAM y una clave de cuenta de servicio. Después de eso, importa las credenciales de la clave como un secreto en cada clúster que ejecuta Config Connector.

Crea una cuenta de servicio
  1. Cree la cuenta de servicio cnrm-system con gcloud:

    gcloud iam service-accounts create cnrm-system
  2. Otorga permisos elevados a la cuenta de servicio de IAM en tu proyecto. Reemplaza [HOST_PROJECT_ID] con el ID del proyecto.

    gcloud projects add-iam-policy-binding [HOST_PROJECT_ID] \
    --member serviceAccount:cnrm-system@[HOST_PROJECT_ID].iam.gserviceaccount.com \
    --role roles/owner
  3. Crea una clave de cuenta de servicio y exporta tus credenciales a un archivo llamado key.json. Reemplaza [HOST_PROJECT_ID] por el ID del proyecto y ejecuta lo siguiente:

    gcloud iam service-accounts keys create --iam-account \
    cnrm-system@[HOST_PROJECT_ID].iam.gserviceaccount.com key.json

Aplica credenciales a tu clúster

Aplique las credenciales a cada clúster donde ejecutará Config Connector.

  1. Cree el espacio de nombres cnrm-system.

    kubectl create namespace cnrm-system
  2. Importe las credenciales de la clave como un secreto.

    kubectl create secret generic gcp-key --from-file key.json --namespace cnrm-system
  3. Quita las credenciales de tu sistema.

    rm key.json

Instala Config Connector

Para instalar manualmente Config Connector, descargue el archivo tar de instalación y extráigalo, luego aplique los contenidos a su clúster.

  1. Descarga el último archivo tar del paquete de instalación:

    gsutil cp gs://cnrm/latest/release-bundle.tar.gz release-bundle.tar.gz
  2. Extrae el archivo tar:

    tar zxvf release-bundle.tar.gz
  3. Aplica los manifiestos a tu clúster.

    kubectl apply -f install-bundle-gcp-identity/

Modo de espacio de nombres

El modo de espacio de nombres es una extensión de la instalación de Workload Identity. Te permite administrar múltiples proyectos con múltiples cuentas de servicio de Google vinculadas a tu clúster de Config Connector. Para obtener más información, consulta Elige un tipo de instalación.

Requisitos

Antes de instalar Config Connector en un clúster, realiza los siguientes pasos.

Instala Config Connector

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

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

    kubectl apply -f operator-system/configconnector-operator.yaml 
  4. Si deseas instalar Config Connector mediante el operador, debes crear un archivo de configuración para el CustomResource ConfigConnector y, luego, aplicarlo con el comando kubectl apply.

  5. 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 ConfigConnector instance installed in your cluster
      name: configconnector.core.cnrm.cloud.google.com
    
  6. Aplica la configuración a tu clúster con kubectl apply:

    kubectl apply -f configconnector.yaml
    

Configura el Config Connector para mirar tus espacios de nombres

Para el resto de esta sección, el proyecto de Google Cloud en el que instalas Config Connector se conoce como proyecto host o [HOST_PROJECT_ID]. Los otros proyectos en los que administras recursos se conocen como los proyectos administrados o [MANAGED_PROJECT_ID]. Estos podrían ser el mismo proyecto si solo pretendes usar el conector de configuración para crear recursos de Google Cloud en el mismo proyecto que tu clúster.

Cree un espacio de nombres

Puedes omitir este paso si ya tienes un espacio de nombres para usar en la organización de los recursos de Google Cloud.

Usa kubectl para crear un nuevo espacio de nombres mediante la ejecución del siguiente comando:

kubectl create namespace [NAMESPACE]

Reemplaza [NAMESPACE] por el espacio de nombres que estás configurando.

Crea una cuenta de servicio

A continuación, crea una cuenta de servicio de administración de identidades y accesos (IAM) para vincular tu cuenta de servicio de Google (GSA) y tu cuenta de servicio de Kubernetes (KSA).

  1. Configura gcloud para usar tu proyecto host.

    gcloud config set project [HOST_PROJECT_ID]
    

    Reemplaza [HOST_PROJECT_ID] por el ID de tu proyecto host.

  2. Crea una cuenta de servicio. Si tienes una cuenta de servicio existente, puedes usarla en lugar de crear una nueva. Usa gcloud para crear la cuenta de servicio mediante la ejecución del siguiente comando:

    gcloud iam service-accounts create [NAMESPACE_GSA]
    

    Reemplaza [NAMESPACE_GSA] por la GSA vinculada a tu espacio de nombres.

  3. Otorga permisos elevados a la cuenta de servicio de IAM en tu proyecto administrado.

    gcloud config set project [MANAGED_PROJECT_ID]
    gcloud projects add-iam-policy-binding [MANAGED_PROJECT_ID] \
    --member="serviceAccount:[NAMESPACE_GSA]@[HOST_PROJECT_ID].iam.gserviceaccount.com" \
    --role="roles/owner"
    

    Reemplaza lo siguiente:

    • [MANAGED_PROJECT_ID] por el ID de tu proyecto administrado
    • [NAMESPACE_GSA] por la GSA vinculada al espacio de nombres
    • [HOST_PROJECT_ID] por el ID de tu proyecto host
Crea un ConfigConnectorContext

Para crear recursos de Google Cloud, debes configurar el conector de configuración a fin de ver tu espacio de nombres agregando un objeto ConfigConnectorContext CustomResource en el espacio de nombres deseado.

  1. Copia el siguiente YAML en un archivo llamado configconnectorcontext.yaml.

    # configconnectorcontext.yaml
    
    apiVersion: core.cnrm.cloud.google.com/v1beta1
    kind: ConfigConnectorContext
    metadata:
      # you can only have one ConfigConnectorContext per Namespace
      name: configconnectorcontext.core.cnrm.cloud.google.com
      namespace: [NAMESPACE]
    spec:
      # The Google Service Account used to authenticate Google Cloud APIs in this Namespace
      googleServiceAccount: "[NAMESPACE_GSA]@[HOST_PROJECT_ID].iam.gserviceaccount.com"
    

    Reemplaza lo siguiente:

    • [NAMESPACE] por tu espacio de nombres
    • [NAMESPACE_GSA] por la GSA vinculada al espacio de nombres
    • [HOST_PROJECT_ID] por el ID de tu proyecto host
  2. Aplica el archivo a tu clúster con kubectl.

    kubectl apply -f configconnectorcontext.yaml
    
  3. Verifica que el operador de Config Connector haya creado una cuenta de servicio de Kubernetes para tu espacio de nombres con kubectl mediante la ejecución del siguiente comando:

    kubectl get serviceaccount/cnrm-controller-manager-[NAMESPACE] -n cnrm-system
    

    Reemplaza [NAMESPACE] por el nombre de tu espacio de nombres.

  4. Verifica que el Pod del controlador de Config Connector se ejecute para tu espacio de nombres con kubectl mediante la ejecución del siguiente comando:

    kubectl wait -n cnrm-system \
      --for=condition=Ready pod\
      cnrm-controller-manager-[NAMESPACE]-0
    

    Reemplaza [NAMESPACE] por el nombre de tu espacio de nombres.

Vincula tu cuenta de servicio de Kubernetes del ConfigConnector a la cuenta de servicio de Google

Crea una vinculación de política de IAM entre la cuenta de servicio de IAM y la cuenta de servicio de Config Connector de Kubernetes. Para vincular las cuentas de servicio, ejecuta el siguiente comando de gcloud:

gcloud config set project [HOST_PROJECT_ID]
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"

Reemplaza lo siguiente:

  • [HOST_PROJECT_ID] por el ID de tu proyecto host
  • [NAMESPACE_GSA] por la GSA vinculada al espacio de nombres
  • [NAMESPACE] por tu espacio de nombres

Especifica dónde 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.

Puede crear recursos en un proyecto, carpeta u organización. 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 y reemplaza [NAMESPACE_NAME] por el nombre de tu espacio de nombres y [PROJECT_ID] por el ID del proyecto de Google Cloud:

kubectl annotate namespace \
[NAMESPACE_NAME] cnrm.cloud.google.com/project-id=[PROJECT_ID]

Carpeta

Para crear recursos en una carpeta determinada, ejecuta el siguiente comando y reemplaza [NAMESPACE_NAME] por el nombre de tu espacio de nombres y [FOLDER_ID] por el ID del carpeta de Google Cloud:

kubectl annotate namespace \
[NAMESPACE_NAME] cnrm.cloud.google.com/folder-id=[FOLDER_ID]

Organización

Para crear recursos en una organización determinada, ejecuta el siguiente comando y reemplaza [NAMESPACE_NAME] por tu nombre de espacio de nombres y [ORGANIZATION_ID] por tu ID de organización de Google Cloud:

kubectl annotate namespace \
[NAMESPACE_NAME] cnrm.cloud.google.com/organization-id=[ORGANIZATION_ID]

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

Configurar el espacio de nombres predeterminado

Puedes simplificar los comandos y evitar agregar “--namespace” a cada comando “kubectl” si cambias el espacio de nombres del contexto predeterminado. Para hacerlo, ejecuta el siguiente comando y reemplaza [NAMESPACE_NAME] por el nombre de tu espacio de nombres:
kubectl config set-context --current --namespace [NAMESPACE_NAME]

Soluciona problemas

Se pueden crear instancias de CRD, pero parece que no sucede nada. No hay eventos.

Verifica los registros desde el controlador de Config Connector:

kubectl logs cnrm-controller-manager-0 --namespace=cnrm-system

Solución de problemas de las instalaciones de identidad de Google Cloud

Si el pod con nombre como cnrm-controller-manager-X no tiene estado Running, primero borra el secreto existente (kubectl --namespace=cnrm-system delete secret gcp-key) y, luego, sigue las instrucciones para crear el Secreto a fin de intentar reinstalar las credenciales de la cuenta de servicio de Google Cloud. Luego, elimina el pod del controlador para activar un reinicio:

kubectl delete pod --namespace=cnrm-system cnrm-controller-manager-0

Actualiza Config Connector

Actualización de complemento

Tu complemento de Config Connector se actualiza a una versión secundaria nueva con instancia principal del clúster de GKE. Los recursos de tu clúster se conservan.

Actualización del modo de espacio de nombres

Descarga y, luego, instala la última versión del operador de Config Connector.

gsutil 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

Actualización manual

La actualización de Config Connector preservará el estado de los recursos de Google Cloud en tu clúster mientras actualiza los componentes del sistema.

Para actualizar Config Connector:

  1. Quita los componentes del sistema:
    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. Ejecuta los pasos de instalación manual

Desinstalar Config Connector

Desinstalar complemento

Debes usar kubectl delete para quitar los CRD de los recursos de Google Cloud junto con los componentes del controlador.

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

Inhabilita el complemento ConfigConnector

Puedes inhabilitar el complemento de ConfigConnector en tu clúster desde gcloud o Google Cloud Console:

gcloud

Para inhabilitar el complemento Config Connector con gcloud, ejecuta el siguiente comando:

gcloud beta container clusters update [CLUSTER_NAME] --update-addons ConfigConnector=DISABLED

Reemplaza [CLUSTER_NAME] por el nombre del clúster que tiene instalado el complemento Config Connector.

Cloud Console

Para inhabilitar el complemento Config Connector de Google Cloud Console, realiza los siguientes pasos.

  1. Ve a la página de clústeres de Google Kubernetes Engine en Google Cloud Console y selecciona el clúster que deseas actualizar.

    Ir al menú Google Kubernetes Engine

  2. Haz clic en Editar. Aparecerá la pantalla Editar clústeres.

  3. Haz clic en Complementos.

  4. Selecciona Config Connector y elige Inhabilitado.

  5. Haz clic en Guardar para actualizar tu clúster.

Desinstala el modo con espacio de nombres

Debes usar kubectl delete para quitar los CRD de los recursos de Google Cloud junto con los componentes del controlador.

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

Desinstala el operador de Config Connector

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

Desinstalación manual

Si instalaste originalmente el conector de Config Connector sin el complemento, quita todos los artefactos del Config Connector de tu clúster:

kubectl delete sts,po -n cnrm-system -l cnrm.cloud.google.com/component=cnrm-controller-manager --wait=true
kubectl delete crds -l cnrm.cloud.google.com/system=true --wait=true
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
kubectl delete namespace cnrm-system --ignore-not-found --wait=true

¿Qué sigue?

Comienza con Config Connector.