Recursos

En Config Connector, se incluye una colección de definiciones de recursos personalizados (CRD). Cada CRD te permite configurar un recurso de Google Cloud desde Kubernetes. Config Connector también te permite aprovechar una serie de funciones de Kubernetes para administrar los recursos de Google Cloud.

En esta página, se presenta cómo Config Connector usa los objetos de Kubernetes y sus metadatos.

Objetos de Kubernetes y recursos de Config Connector

Por ejemplo, cuando creas un Objeto de Kubernetes de kind: SQLInstance, Config Connector crea una Instancia de Cloud SQL. En esta sección, se describe cómo Config Connector extiende los tipos de objeto.

Especificación y estado

Cada recurso de Config Connector es un objeto Kubernetes con un Spec y un Status.

Spec
El campo Spec contiene todos los campos que definen el estado deseado de un objeto, excepto Labels. Los subcampos de un Spec hacen referencia al recurso de Google Cloud asociado. Cuando cambias un subcampo, el valor del recurso de Google Cloud tiene coherencia eventual con el valor previsto.
En un ejemplo de un campo que admite escritura es databaseVersion en un recurso SQLInstance.
Estado
El campo Status es de solo lectura y contiene el estado actual del objeto. Config Connector lee de forma periódica la información sobre el recurso de Google Cloud y actualiza el Status. Puedes verificar los mensajes de error o la preparación de un recurso si consultas Status.Condition.
Un ejemplo de campo de solo lectura Status es el connectionName de un recurso de SQLInstance.

Metadatos de objeto

Cada recurso de Config Connector incluye un campo de metadatos. En esta sección, se describe cómo Config Connector usa subcampos dentro de los metadatos.

Name
La creación de un recurso de Config Connector crea un recurso de Google Cloud con el mismo nombre.
Namespace
El espacio de nombres en el que crea un recurso de Config Connector determina el proyecto que contiene el recurso de Google Cloud. Para obtener más información sobre los espacios de nombres, consulta Espacios de nombres de Kubernetes y Google Cloud Projects.
Labels
Las etiquetas en el campo de metadatos de un recurso de Config Connector también se agregan al recurso asociado de Google Cloud.
Además, Config Connector agrega una etiqueta del sistema llamada managed-by-cnrm con un valor de true a sus recursos de Google Cloud.
Anotaciones

Config Connector puede realizar acciones adicionales en tus recursos que no están definidas en Spec. Estas acciones se definen en los subcampos metadata.annotations. Los valores de anotación deben ser una string. Los tipos de anotaciones que admite Config Connector se describen en las siguientes secciones.

Eliminación

De forma predeterminada, Config Connector borra un recurso después de borrar el objeto del clúster. Si prefieres conservar el recurso, configura la anotación deletion-policy.

Directivas

Las directivas configuran Config Connector para tomar acciones adicionales más allá de crear o borrar recursos.

Por ejemplo, Cloud Storage no te permite borrar un StorageBucket que contiene objetos. Cuando aplicas la anotación force-destroy al depósito y, luego, borras el depósito, Config Connector borra primero todos los objetos dentro del depósito, y luego, el depósito.

Por ejemplo, la directiva force-destroy se declara en el siguiente fragmento YAML.

metadata:
  annotations:
    cnrm.cloud.google.com/force-destroy: "true"

Para saber qué recursos admiten directivas, consulta Recursos.

Carpetas y recursos jerárquicos

Además de administrar recursos en productos de Google Cloud, Config Connector admite la creación y administración de recursos dentro de las carpetas y organizaciones de Google Cloud. Para obtener más información, consulta Espacios de nombres y proyectos.

Usa RBAC para el control de acceso

El Control de acceso basado según las funciones de Kubernetes (RBAC) asegura los recursos. Puedes controlar la creación de recursos de Google Cloud si asignas permisos RBAC. Para obtener más información, consulta Asegura el acceso a los recursos.

Condición de estado

Config Connector usa una condición de preparación en status.condition con dos propósitos:

  • indicar cuándo está listo un recurso. Cuando un recurso está conciliado y listo, su status.condition.status se establecerá como True. Para verificar cuándo un recurso está listo, consulta Espera que los recursos estén listos
  • mostrar información o error adicional. La condición de preparación tiene los campos Message y Reason que proporcionan información adicional sobre el estado del recurso.

Eventos

Los cambios de estado importantes para los recursos de Config Connector son visibles como eventos de Kubernetes. Para obtener más información, consulta Ve los eventos.

Configuración declarativa y coherencia eventual

Con la configuración declarativa, defines el estado deseado del sistema. El sistema funciona de forma constante para permanecer lo más cerca posible de este estado. Consulta Declarative management of Kubernetes objects using configuration files (Administración declarativa de objetos de Kubernetes mediante archivos de configuración) para obtener más información.

Con Config Connector, puedes crear y actualizar recursos en cualquier orden, independientemente de las relaciones de dependencia. GKE mueve la configuración declarada hacia la coherencia eventual con el estado deseado.

Por ejemplo, si creas un PubSubSubscription antes del PubSubTopic correspondiente, Config Connector espera hasta que se crea el tema antes de crear la suscripción asociada.

La duración de la instalación de Config Connector depende de la cantidad y los tipos de recursos que administra. Por lo general, los cambios en un clúster de GKE se ejecutan en segundos. Sin embargo, el tiempo para crear recursos de Google Cloud puede variar según el tipo de recurso. Por ejemplo, un solo PubSubTopic tarda unos segundos en crearse. Los recursos de Google Cloud no alcanzan la coherencia hasta que se crean. Por ejemplo, cuando creas una SQLInstance y una SQLDatabase, el sistema es incoherente durante un período de minutos mientras se crea la base de datos.

GKE y Config Connector concilian cada recurso con cada actualización o cada 10 minutos. Cuando hay un error en la conciliación, el Config Connector vuelve a intentarlo cada 30 segundos con una retirada exponencial. Puedes ver cualquier error en los eventos de un recurso dado.

Qué sigue