Esegui la migrazione delle risorse di Config Controller

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

Questa pagina utilizza la seguente terminologia:

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

Suggerimenti

  • Prima di apportare modifiche in produzione, completa questi passaggi in un ambiente di test.
  • Se devi eseguire la migrazione di più cluster Config Controller, esegui la migrazione di ognuno 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 di migrazione per scenari diversi

Esegui la migrazione di tutte le risorse

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

  1. Crea il cluster di destinazione.

  2. Interrompi il push delle modifiche all'origine attendibile da cui è configurato il cluster di origine per la sincronizzazione. Config Sync dovrebbe continuare a sincronizzarsi dalla fonte attendibile. Devono essere arrestate solo le modifiche da cui esegue la sincronizzazione del cluster di origine.

  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 è stata ancora creata a causa di un errore, viene successivamente creata 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 principali devono essere individuate e risolte prima di tentare la migrazione.

  4. Configura Config Sync nel cluster di destinazione per leggere dalla stessa fonte attendibile 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 dall'origine attendibile.

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

  7. Una volta eseguita la migrazione di ogni origine attendibile, elimina il cluster di Config Controller 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 sezione Eseguire la migrazione di tutte le risorse precedente.

  2. Annota le risorse di cui deve essere eseguita la migrazione nel 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 ripristinare Config Sync.

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

  5. Configura il cluster di destinazione per la sincronizzazione dalla località in cui hai spostato le risorse. Il cluster di destinazione può ora acquisire queste risorse e iniziare a gestirle.

Esegui la migrazione di singole risorse

Quando non è possibile eliminare un cluster Config Controller (ad esempio, quando esegui solo la migrazione di un sottoinsieme di risorse in un cluster diverso), puoi eliminare le singole risorse. Per eliminare singole risorse, disabilita Config Sync e poi imposta l'annotazione cnrm.cloud.google.com/deletion-policy: abandon sulle singole risorse da eliminare.

Esegui la migrazione delle risorse che hanno un servizio che ha generato resourceID

Per le risorse in cui il campo resourceID non è stato fornito in modo esplicito, non è necessario specificare resourceID per l'acquisizione delle risorse da parte di un'altra istanza di Config Connector. Tuttavia, ci sono risorse che hanno un ID risorsa generato dal servizio, che richiedono passaggi aggiuntivi. Anche se resourceID viene generato dal servizio, è necessario fornirlo per acquisire queste risorse da un'altra istanza di Config Connector. Per queste risorse, è necessario aggiungere resourceID all'origine attendibile prima di provare ad 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 abilitarlo su 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 modificarla. Ciò significa che il cluster di destinazione non è in grado di acquisire il lease immediatamente poiché il lease è mantenuto da Config Connector nel cluster di origine. Il lease viene concesso per 40 minuti. Tuttavia, dopo 20 minuti Config Connector prova proattivamente a rinnovare il lease. 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 proprio lease prima che il cluster di destinazione possa acquisirlo. A questo scopo, elimina 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 è in grado di acquisire il lease. Il cluster di destinazione può acquisire il lease dopo almeno 40 minuti e può iniziare a gestire le risorse. Non apportare modifiche alle risorse di Config Connector finché il lease non è stato acquisito dal cluster di destinazione.

Passaggi successivi