Estrategia de conciliación

Con la configuración declarativa, tú defines el estado deseado del sistema. Luego, el sistema trabaja constantemente para mantenerse lo más cerca posible de este estado. Consulta 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, sin importar las relaciones de dependencia. GKE traslada tu 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 cree el tema antes de crear la suscripción asociada.

La duración de la instalación de Config Connector no depende de la cantidad y los tipos de recursos que administra. Los cambios en un clúster de GKE suelen ejecutarse en segundos. Sin embargo, el tiempo para crear recursos de Google Cloud puede variar según el tipo de recurso. Por ejemplo, un solo objeto PubSubTopic tarda segundos en crearse. Los recursos de Google Cloud no alcanzan la coherencia hasta que se crean. Por ejemplo, cuando se crea un SQLInstance y un 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 después de un período de Jitter con un promedio de 10 minutos. Cuando hay un error en la conciliación, Config Connector vuelve a intentar la retirada exponencial, en la que la retirada máxima es de dos minutos. Puedes ver cualquier error en la sección Eventos de un recurso dado.

Los campos mutables, pero ilegibles, se activan solo cuando ocurre un cambio

Algunas API exponen campos que no se pueden leer, pero que son mutables (por ejemplo, la contraseña de un usuario de SQL). Debido a que no es posible verificar si se modificaron estos campos, los campos mutables, pero ilegibles, se actualizan solo cuando se modifica el recurso personalizado.

Los recursos no se vuelven a crear cuando se modifican campos inmutables

Algunos campos de un recurso son inmutables y no se pueden conciliar sin borrar y, luego, volver a crear el recurso de destino.

En estas situaciones, el Config Connector emite un evento de Kubernetes UpdatedUpdated para el recurso en lugar de realizar esta recreación. A continuación, debes borrar y volver a crear el recurso.

Ejemplo de evento:

Warning  UpdateFailed  37m (x643 over 15d)    computeinstance-controller  Update call failed: the desired mutation for the following field(s) is invalid: [bootDisk.0.InitializeParams.0.Image networkInterface.0.NetworkIp]