Migrar recursos de Config Controller

En esta página se explica cómo migrar recursos de Config Connector de un clúster de Config Controller a otro. Puede que tengas que migrar un recurso si tu clúster principal de Config Controller falla y debe sustituirse, o si necesitas cambiar una configuración de clúster inmutable.

En esta página se utiliza la siguiente terminología:

  • Clúster de origen: el clúster que contiene los recursos de Config Connector que necesitas migrar.
  • Clúster de destino: clúster al que vas a migrar recursos.

Recomendaciones

  • Antes de hacer cambios en producción, sigue estos pasos en un entorno de prueba.
  • Si necesitas migrar varios clústeres de Config Controller, migra cada uno por separado, empezando por el menos crítico.
  • Si el clúster de Config Sync se sincroniza con más de una fuente de información veraz, migra todos los recursos de cada fuente a la vez.

Pasos de migración para diferentes situaciones

Migrar todos los recursos

Para migrar todos los recursos, sigue estos pasos:

  1. Crea el clúster de destino.

  2. Dejar de enviar cambios a la fuente de información veraz desde la que se ha configurado la sincronización del clúster de origen. Config Sync debería seguir sincronizando desde la fuente de datos tradicional. Solo se deben detener los cambios que sincronice el clúster de origen.

  3. Asegúrate de que los cambios recientes en la fuente de información veraz se hayan sincronizado en el clúster y de que todos los recursos estén actualizados en el clúster de origen.

    Si hay errores en algunos recursos, es posible que tenga que analizarlos individualmente. Si aún no se ha creado un recurso debido a un error, se creará más adelante mediante Config Connector, que se ejecuta en el clúster de destino. Estos errores suelen poder ignorarse. Sin embargo, en la mayoría de los casos, las causas principales deben identificarse y corregirse antes de intentar la migración.

  4. Configura Config Sync en el clúster de destino para que lea de la misma fuente de información veraz que el clúster de origen. Si se han configurado varias sincronizaciones para sincronizar datos de más de una fuente fiable, haz lo siguiente para cada sincronización.

  5. Usa el comando nomos status para asegurarte de que el clúster de destino ha sincronizado todos los recursos de la fuente de información veraz.

  6. Una vez que los recursos se hayan sincronizado, elimina el RootSync o RepoSync del clúster de origen.

  7. Una vez que se haya migrado cada fuente de información veraz, elimina el clúster SourceConfig Controller.

Migrar algunos recursos

Para migrar algunos recursos, sigue estos pasos:

  1. Completa los pasos del 1 al 6 de la sección anterior Migrar todos los recursos.

  2. Anota los recursos que se deben migrar al clúster de destino con la anotación cnrm.cloud.google.com/deletion-policy: abandon. Esta anotación impide que Config Connector elimine los recursos subyacentes cuando se elimine el recurso de Config Connector del clúster de Config Controller.

  3. Elimina los recursos que se hayan marcado como abandonados del clúster de origen. Esta eliminación solo funciona si estos recursos también se eliminan de la fuente de referencia antes de reanudar Config Sync.

  4. Mueve estos recursos a otra fuente de información veraz o a otra carpeta dentro de la misma fuente de información veraz.

  5. Configura el clúster de destino para que se sincronice desde la ubicación a la que has movido los recursos. El clúster de destino ahora puede adquirir estos recursos y empezar a gestionarlos.

Migrar recursos concretos

Cuando no se puede eliminar un clúster de Config Controller (por ejemplo, cuando solo se migra un subconjunto de recursos a otro clúster), puedes eliminar recursos concretos. Para eliminar recursos concretos, inhabilita Config Sync y, a continuación, define la anotación cnrm.cloud.google.com/deletion-policy: abandon en los recursos que quieras eliminar.

Migrar recursos que tengan un resourceID generado por el servicio

En los recursos en los que no se ha proporcionado explícitamente el campo resourceID, no es necesario especificar resourceID para que otra instancia de Config Connector adquiera el recurso. Sin embargo, hay recursos que tienen un ID de recurso generado por el servicio y que requieren pasos adicionales. Aunque el resourceID se genera automáticamente, debe proporcionarse para adquirir estos recursos de otra instancia de Config Connector. En el caso de estos recursos, los resourceID se deben añadir a la fuente de información veraz antes de intentar adquirir recursos del clúster de destino.

Migrar recursos con la política de prevención de conflictos

De forma predeterminada, la política de prevención de conflictos está desactivada para los recursos. Puedes habilitarlo en un recurso configurando la siguiente anotación:

cnrm.cloud.google.com/management-conflict-prevention-policy: "resource"

Una vez configurado, Config Connector debe obtener un arrendamiento del recurso subyacente antes de hacerle cambios. Esto significa que el clúster de destino no puede adquirir el arrendamiento inmediatamente, ya que lo tiene Config Connector en el clúster de origen. La concesión se realiza durante 40 minutos. Sin embargo, después de 20 minutos, Config Connector intenta renovar el arrendamiento de forma proactiva. Debido a este comportamiento, si Config Connector está en buen estado y en ejecución en el clúster de origen, el clúster de destino no podrá adquirir el arrendamiento. El clúster de origen debe liberar su arrendamiento para que el clúster de destino pueda adquirirlo. Esto se puede hacer eliminando el clúster de origen o eliminando el recurso del clúster de origen.

Una vez que el clúster de origen haya liberado el arrendamiento, el clúster de destino podrá adquirirlo. El clúster de destino puede adquirir el arrendamiento en un plazo máximo de 40 minutos y empezar a gestionar los recursos. No se debe hacer ningún cambio en los recursos de Config Connector hasta que el clúster de destino haya adquirido el arrendamiento.

Siguientes pasos