Risorse di Migrate 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 principale di Config Controller 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 di Config Connector di cui devi eseguire la migrazione.
- Cluster di destinazione: il cluster in cui verrà eseguita 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 separata per ogni cluster, a partire dal cluster meno critico.
- Se il cluster Config Sync si sincronizza da più repository, esegui la migrazione di tutte le risorse da ogni repository contemporaneamente.
Passaggi di migrazione per vari scenari
Esegui la migrazione di tutte le risorse
Per eseguire la migrazione di tutte le risorse, segui questi passaggi:
Crea il cluster di destinazione.
Interrompi il push delle modifiche nel repository Git da cui è configurato la sincronizzazione del cluster di origine. Config Sync dovrebbe continuare a eseguire la sincronizzazione dal repository. Devono essere interrotte solo le modifiche al ramo Git da cui viene sincronizzato il cluster di origine.
Assicurati che le eventuali modifiche recenti al repository Git 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 analizzare le risorse singolarmente. Se una risorsa non è ancora stata creata a causa di un errore, viene creata in seguito utilizzando Config Connector in esecuzione nel cluster di destinazione. Questi errori di solito possono essere ignorati. Tuttavia, per la maggior parte degli errori, le cause principali devono essere trovate e corrette prima di tentare la migrazione.
Configura Config Sync nel cluster di destinazione per leggere dallo stesso repository da cui è configurato il cluster di origine. Se sono configurate più sincronizzazioni da più repository, procedi per ogni sincronizzazione.
Usa il comando
nomos status
per assicurarti che il cluster di destinazione abbia sincronizzato tutte le risorse del repository Git.Dopo aver sincronizzato le risorse, rimuovi RepoSync dal cluster di origine.
Una volta eseguita la migrazione di tutte le sincronizzazioni dei repository, elimina il cluster di origine di Config Controller.
Eseguire la migrazione di alcune risorse
Per eseguire la migrazione di alcune risorse, completa questi passaggi:
Completa i passaggi da 1 a 6 della precedente sezione sulla migrazione di tutte le risorse.
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 di Config Connector viene eliminata dal cluster Config Controller.Elimina le risorse contrassegnate come abbandonate dal cluster di origine. Questa eliminazione funziona solo se queste risorse vengono rimosse anche dal repository Git prima di riprendere Config Sync.
Sposta queste risorse in un repository Git diverso o in una cartella diversa all'interno dello stesso repository.
Configura il cluster di destinazione per la sincronizzazione dalla località in cui hai spostato le risorse. Il cluster di destinazione ora può acquisire queste risorse e iniziare a gestirle.
Eseguire la migrazione di singole risorse
Quando non è possibile eliminare un cluster Config Controller (ad esempio, quando si esegue la migrazione solo di un sottoinsieme di risorse in un cluster diverso), è possibile eliminare le singole risorse. Per eliminare singole risorse, disattiva Config Sync
e imposta l'annotazione cnrm.cloud.google.com/deletion-policy: abandon
sulle
singole risorse che devi eliminare.
Esegui la migrazione delle risorse che hanno generato un servizio resourceID
Per le risorse in cui il campo resourceID
non è stato specificato in modo esplicito, non è necessario specificare resourceID
per l'acquisizione delle risorse 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, le risorse resourceID
devono essere aggiunte al repository Git 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 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 della risorsa sottostante prima di apportarne le modifiche. Ciò significa che il cluster di destinazione non è in grado di acquisire il lease immediatamente poiché il lease è conservato da Config Connector nel cluster di origine. Il lease è concesso per 40 minuti. Tuttavia, dopo 20 minuti Config Connector tenta in modo proattivo di rinnovare il lease. A causa di questo comportamento, se Config Connector nel cluster di origine è in stato integro e in esecuzione, il cluster di destinazione non è in grado di acquisire il lease. Il cluster di origine deve rilasciare il lease prima che possa essere acquisito dal cluster di destinazione. Puoi completare questa operazione eliminando il cluster di origine o eliminando la risorsa nel cluster di origine.
Una volta che il cluster di origine ha rilasciato il lease, il cluster di destinazione è in grado di acquisirlo. Il cluster di destinazione può acquisire il lease dopo massimo 40 minuti e 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
- Risolvere i problemi di Config Controller.
- Failover manuale a una seconda istanza di Config Controller.
- Gestione delle risorse con il campo
resourceID
. - Interrompere e riprendere la sincronizzazione delle configurazioni.