Instalar en otras distribuciones de Kubernetes
En esta página, se muestra cómo instalar Config Connector en un clúster de Kubernetes de Google Cloud que no sea Google Kubernetes Engine (GKE) en Google Cloud, por ejemplo, GKE on AWS.
Antes de comenzar
Antes de comenzar, asegúrate de haber realizado las siguientes tareas:
- Selecciona o crea un proyecto de Google Cloud para instalar Config Connector.
- Asegúrate de tener 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.
Instala 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 administración de identidades y accesos (IAM) y, luego, instala los componentes del Config Connector en el 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úa con la sección Crea una identidad.
Si el resultado es no
, crea un ClusterRoleBinding
en tu clúster, lo que te permite crear roles:
kubectl create clusterrolebinding cluster-admin-binding \
--clusterrole cluster-admin \
--user ACCOUNT_EMAIL
Reemplaza ACCOUNT_EMAIL por el correo electrónico que usas para acceder a tu cuenta de Facturación de Cloud.
El resultado debe contener la frase cluster-admin-binding created
. Si esa frase no aparece, comunícate con tu cuenta de Facturación de Cloud o con el administrador de clúster de GKE sobre los permisos.
Crea una identidad
Config Connector necesita Cloud Identity 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.
En el siguiente conjunto de instrucciones, importarás una clave de credenciales de la cuenta de servicio de Google Cloud al clúster de Kubernetes. Por lo general, importar credenciales de cuenta de servicio directamente en un clúster se considera inseguro, en especial si ejecutas cargas de trabajo personalizadas o de terceros en el mismo clúster. Con este enfoque, se pueden aprovechar las funciones brechas de derivación y la identidad de la cuenta de servicio de Google Cloud a través de este Secret. Si usas un clúster de GKE, te recomendamos con la Federación de identidades para cargas de trabajo para GKE.
Crea una cuenta de servicio
Para crear una cuenta de servicio, completa los siguientes pasos:
Crea una cuenta de servicio de IAM. Si tienes una cuenta de servicio existente, puedes usarla en lugar de crear una nueva.
Usa gcloud CLI para crear la cuenta de servicio ejecutando el siguiente comando :
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Reemplaza
SERVICE_ACCOUNT_NAME
por el nombre de 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/owner"
Reemplaza lo siguiente:
PROJECT_ID
por el ID del proyecto de Google CloudSERVICE_ACCOUNT_NAME
por 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
Reemplaza lo siguiente:
SERVICE_ACCOUNT_NAME
por el nombre de tu cuenta de servicioPROJECT_ID
por el ID del proyecto de Google Cloud
Aplica las credenciales a tu clúster
Para aplicar las credenciales al clúster en el que quieres ejecutar Config Connector, completa los siguientes pasos:
Crea el espacio de nombres
cnrm-system
:kubectl create namespace cnrm-system
Importe las credenciales de la clave como un secreto.
kubectl create secret generic SECRET_NAME \ --from-file key.json \ --namespace cnrm-system
Reemplaza SECRET_NAME por el nombre que deseas darle a tu secreto.
Quita las credenciales de tu sistema:
rm key.json
Instala el operador de Connector Operator
Completa los siguientes pasos para instalar el operador de Config Connector:
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:
kubectl apply -f operator-system/configconnector-operator.yaml
Configuración de Config Connector
Si deseas instalar Config Connector mediante el operador, debes crear un archivo de configuración para el CustomResource ConfigConnector
y, luego, aplicarlo mediante el comando kubectl apply
.
Para configurar Config Connector mediante el operador, sigue estos pasos:
Copia el siguiente 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
Reemplaza SECRET_NAME por el nombre del secreto que creaste antes.
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 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:
NAMESPACE
por tu nombre de espacio de nombres.FOLDER_ID
por tu ID de 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:
NAMESPACE
por tu nombre de espacio de nombres.ORGANIZATION_ID
por el ID de la organización de Google Cloud.
Cuando anotas el espacio de nombres, Config Connector crea recursos en el proyecto, la carpeta o la organización correspondiente. Si deseas obtener más información para 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
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 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
¿Qué sigue?
- Obtén más información para elegir un tipo de instalación.
- Obtén más información para solucionar problemas de Config Connector.