Esegui la migrazione delle risorse di Config Controller

Questa pagina mostra come eseguire la migrazione delle risorse di Config Connector da un cluster Config Controller a un altro. Potresti dover eseguire la migrazione di una risorsa se il cluster Config Controller principale non funziona e deve essere sostituito o se devi modificare una configurazione del cluster immutabile.

Questa pagina utilizza la seguente terminologia:

  • Cluster di origine: il cluster contenente le risorse di Config Connector di cui devi eseguire la migrazione.
  • Cluster di destinazione: il cluster a cui eseguirai la migrazione delle risorse.

Consigli

  • Prima di apportare modifiche in produzione, completa questi passaggi in un ambiente di test.
  • Se devi eseguire la migrazione di più cluster di Config Controller, esegui la migrazione di ciascuno separatamente, iniziando dal cluster meno critico.
  • Se il cluster Config Sync esegue la sincronizzazione da più di una fonte attendibile, esegui la migrazione di tutte le risorse da ogni origine contemporaneamente.

Passaggi per la migrazione per vari scenari

Esegui la migrazione di tutte le risorse

Per eseguire la migrazione di tutte le risorse:

  1. Crea il cluster di destinazione.

  2. Interrompi l'invio di modifiche alla fonte attendibile con cui il cluster di origine è configurato per la sincronizzazione. Config Sync dovrebbe continuare a sincronizzarsi dalla fonte attendibile. Devono essere interrotte solo le modifiche con cui il cluster di origine esegue la sincronizzazione.

  3. Assicurati che eventuali modifiche recenti alla fonte attendibile siano state sincronizzate nel cluster e che tutte le risorse siano aggiornate nel cluster di origine.

    Se si verificano errori per alcune risorse, potrebbe essere necessario analizzarle singolarmente. Se una risorsa non è ancora stata creata a causa di un errore, verrà creata in un secondo momento utilizzando Config Connector in esecuzione nel cluster di destinazione. In genere, questi errori possono essere ignorati. Tuttavia, per la maggior parte degli errori, le cause assolute devono essere trovate e corrette prima di tentare la migrazione.

  4. Configura Config Sync nel cluster di destinazione in modo che legga dalla stessa fonte di attendibilità da cui è configurato il cluster di origine. Se sono configurate più sincronizzazioni per la sincronizzazione da più di una fonte attendibile, esegui questa operazione per ogni sincronizzazione.

  5. Utilizza il comando nomos status per assicurarti che il cluster di destinazione abbia sincronizzato tutte le risorse dalla fonte attendibile.

  6. Una volta sincronizzate le risorse, rimuovi RootSync o RepoSync dal cluster di origine.

  7. Una volta eseguita la migrazione di ogni origine della verità, elimina il cluster del controller di configurazione di origine.

Esegui la migrazione di alcune risorse

Per eseguire la migrazione di alcune risorse, completa i seguenti passaggi:

  1. Completa i passaggi da 1 a 6 della precedente sezione Esegui la migrazione di tutte le risorse.

  2. Annota le risorse di cui eseguire la migrazione al cluster di destinazione con l'annotazione cnrm.cloud.google.com/deletion-policy: abandon. Questa annotazione impedisce a Config Connector di eliminare le risorse sottostanti quando la risorsa Config Connector viene eliminata dal cluster Config Controller.

  3. Elimina le risorse contrassegnate come abbandonate dal cluster di origine. Questa eliminazione funziona solo se queste risorse vengono rimosse anche dalla fonte attendibile prima di riprendere la Config Sync.

  4. Sposta queste risorse in un'altra fonte attendibile o in un'altra cartella all'interno della stessa fonte attendibile.

  5. Configura il cluster di destinazione in modo che si sincronizzi dalla posizione in cui hai spostato le risorse. Il cluster di destinazione ora può acquisire queste risorse e iniziare a gestirle.

Esegui la migrazione di singole risorse

Quando non è possibile eliminare un cluster di controller di configurazione (ad esempio, quando esegui la migrazione di un sottoinsieme di risorse a un altro cluster), puoi eliminare le singole risorse. Per eliminare le singole risorse, disattiva la Config Sync e imposta l'annotazione cnrm.cloud.google.com/deletion-policy: abandon sulle singole risorse da eliminare.

Esegui la migrazione delle risorse per cui è stato generato un servizio resourceID

Per le risorse in cui il campo resourceID non è stato fornito esplicitamente, il valore resourceID non deve essere specificato per l'acquisizione della risorsa da parte di un'altra istanza di Config Connector. Tuttavia, esistono risorse con un ID risorsa generato dal servizio che richiedono passaggi aggiuntivi. Anche se resourceID è generato dal servizio, deve essere fornito per acquisire queste risorse da un'altra istanza di Config Connector. Per queste risorse, i valori resourceID devono essere aggiunti alla verità assoluta prima di tentare di acquisire risorse dal cluster di destinazione.

Esegui la migrazione delle risorse utilizzando il criterio di prevenzione dei conflitti

Per impostazione predefinita, il criterio di prevenzione dei conflitti è disattivato per le risorse. Puoi attivarla in una risorsa impostando la seguente annotazione:

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

Una volta impostato, Config Connector deve acquisire un lease sulla risorsa sottostante prima di apportare modifiche. Ciò significa che il cluster di destinazione non è in grado di acquisire immediatamente il lease, poiché è detenuto da Config Connector nel cluster di origine. La concessione in leasing viene concessa per 40 minuti. Tuttavia, dopo 20 minuti, Config Connector tenta di rinnovare il lease in modo proattivo. A causa di questo comportamento, se Config Connector nel cluster di origine è integro e in esecuzione, il cluster di destinazione non è in grado di acquisire il lease. Il cluster di origine deve rilasciare il suo lease prima che il cluster di destinazione possa acquisirlo. Questa operazione può essere eseguita eliminando il cluster di origine o la risorsa nel cluster di origine.

Una volta che il cluster di origine ha rilasciato il lease, il cluster di destinazione può acquisirlo. Il cluster di destinazione può acquisire il lease dopo al massimo 40 minuti e può iniziare a gestire le risorse. Non devono essere apportate modifiche alle risorse di Config Connector finché il lease non è stato acquisito dal cluster di destinazione.

Passaggi successivi