Instalar en otras distribuciones de Kubernetes
En esta página se explica cómo instalar Config Connector en una distribución de Kubernetes que no sea Google Kubernetes Engine (GKE) en Google Cloud, como GKE en AWS.
Antes de empezar
Antes de empezar, asegúrate de haber realizado las siguientes tareas:
- Selecciona o crea un proyecto Google Cloud para instalar Config Connector.
- Asegúrate de que tienes permisos para crear y descargar una cuenta de servicio en el proyecto.
- Crea o identifica un clúster de Kubernetes en el que aún no hayas instalado Config Connector.
Instalar Config Connector
Para instalar Config Connector en otro entorno de Kubernetes, después de crear o identificar un clúster de Kubernetes, crea una cuenta de servicio de Gestión de Identidades y Accesos (IAM) y, a continuación, instala los componentes de Config Connector en tu clúster.
Crear un ClusterRoleBinding
Config Connector necesita permiso para crear roles de Kubernetes antes de poder crear recursos.
Verifica que puedes crear roles ejecutando el siguiente comando:
kubectl auth can-i create roles
Si el resultado es yes
, ve a la sección Crear una identidad.
Si el resultado es no
, crea un ClusterRoleBinding
en tu clúster, lo que te permitirá crear roles:
kubectl create clusterrolebinding cluster-admin-binding \
--clusterrole cluster-admin \
--user ACCOUNT_EMAIL
Sustituye ACCOUNT_EMAIL por el correo que usas para iniciar sesión en tu cuenta de facturación de Cloud.
El resultado debe contener la frase cluster-admin-binding created
. Si no aparece esa frase, ponte en contacto con el administrador de tu cuenta de facturación de Cloud o de tu clúster de GKE para obtener información sobre los permisos.
Crear una identidad
Config Connector necesita una cuenta de Cloud Identity para comunicarse con otros recursos. Para configurar la identidad, debes crear una cuenta de servicio y una clave de cuenta de servicio de gestión de identidades y accesos (IAM). Después, importa las credenciales de la clave como un secreto en cada clúster que ejecute Config Connector.
En el siguiente conjunto de instrucciones, importarás una clave de Google Cloudcredenciales de cuenta de servicio en el clúster de Kubernetes. Importar credenciales de cuenta de servicio directamente a un clúster se considera una práctica poco segura, sobre todo si ejecutas cargas de trabajo de terceros o personalizadas en el mismo clúster. Este enfoque puede aprovechar las vulnerabilidades de escalada de nodos a clústeres e imitar la cuenta de servicio Google Cloud mediante este secreto. Si usas un clúster de GKE, te recomendamos que utilices Workload Identity Federation para GKE.
Creando una cuenta de servicio
Para crear una cuenta de servicio, sigue 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 la CLI de gcloud para crear la cuenta de servicio ejecutando el siguiente comando:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Sustituye
SERVICE_ACCOUNT_NAME
por el nombre de tu 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/owner"
Haz los cambios siguientes:
PROJECT_ID
por el ID de tu proyecto. Google CloudSERVICE_ACCOUNT_NAME
con el nombre de tu cuenta de servicio.
Crea una clave de cuenta de servicio y exporta sus credenciales a un archivo llamado
key.json
:gcloud iam service-accounts keys create --iam-account \ SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com key.json
Haz los cambios siguientes:
SERVICE_ACCOUNT_NAME
con el nombre de tu cuenta de servicio.PROJECT_ID
por el ID de tu proyecto. Google Cloud
Aplicar las credenciales al clúster
Para aplicar las credenciales al clúster en el que quieras ejecutar Config Connector, sigue estos pasos:
Crea el espacio de nombres
cnrm-system
:kubectl create namespace cnrm-system
Importa las credenciales de la clave como un secreto.
kubectl create secret generic SECRET_NAME \ --from-file key.json \ --namespace cnrm-system
Sustituye SECRET_NAME por el nombre que quieras dar al secreto.
Elimina las credenciales de tu sistema:
rm key.json
Instalar el operador de Config Connector
Sigue estos pasos para instalar el operador de Config Connector:
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
Extrae el archivo tar:
tar zxvf release-bundle.tar.gz
Instala el operador de Config Connector en tu clúster:
kubectl apply -f operator-system/configconnector-operator.yaml
Configurar Config Connector
Para configurar Config Connector con el operador, crea un archivo de configuración para el ConfigConnector
CustomResource
y, a continuación, aplícalo con el comando kubectl apply
.
Para configurar Config Connector mediante el operador, sigue estos pasos:
Copia el siguiente código YAML en un archivo llamado
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 spec: mode: cluster credentialSecretName: SECRET_NAME stateIntoSpec: Absent
Sustituye SECRET_NAME por el nombre del secreto que has creado anteriormente.
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:
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 actualizar Config Connector, descarga e instala la versión más reciente 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
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
Siguientes pasos
- Más información sobre cómo elegir un tipo de instalación
- Consulta cómo solucionar problemas de Config Connector.