Esegui la migrazione delle risorse di Config Controller

Questa pagina mostra come eseguire la migrazione Configura le risorse del connettore da uno di cluster Config Controller a un altro cluster. 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 Config Controller, esegui la migrazione di uno a parte, iniziando con il cluster meno critico.
  • Se il cluster Config Sync si sincronizza da più fonti attendibili, esegui la migrazione di tutte risorse da ogni origine contemporaneamente.

Passaggi di 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 il push delle modifiche alla fonte attendibile del cluster di origine configurato per la sincronizzazione. La sincronizzazione di Config Sync dovrebbe continuare dalla una fonte attendibile. Solo le modifiche sincronizzate dal cluster di origine da interrompere.

  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 analizzare le risorse singolarmente. Se una risorsa non è stata ancora creata a causa di un viene creato in seguito utilizzando il Config Connector in esecuzione nella destinazione in un cluster Kubernetes. 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 presenti più sincronizzazioni se configuri la sincronizzazione da più di una fonte di riferimento, quindi esegui questa operazione per ogni sincronizzare.

  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 attendibile, 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 che sono state contrassegnate come abbandonate dall'origine in un cluster Kubernetes. Questa eliminazione funziona solo se queste risorse vengono rimosse dal prima di riprendere Config Sync.

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

  5. Configura il cluster di destinazione in modo che venga sincronizzato 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 Config Controller (ad esempio, quando esegui la migrazione di un sottoinsieme di risorse in un altro cluster), puoi eliminare le singole risorse. Per eliminare le singole risorse, disattiva la sincronizzazione della configurazione e imposta l'annotazione cnrm.cloud.google.com/deletion-policy: abandon sulle singole risorse da eliminare.

Esegui la migrazione delle risorse che hanno un servizio generato resourceID

Per le risorse in cui il campo resourceID non è stato fornito esplicitamente, il valore Non è necessario specificare resourceID per l'acquisizione di risorse da parte di un altro Config Connector. Tuttavia, ci sono risorse che hanno un ID risorsa generato dal servizio che richiedono passaggi aggiuntivi. Anche se resourceID è generato dal servizio, per acquisire queste risorse da un altro Config Connector in esecuzione in un'istanza Compute Engine. Per queste risorse, è necessario aggiungere resourceID all'origine 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 della risorsa sottostante prima apportando 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. Il lease viene concesso 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, la destinazione non sia in grado di acquisire il lease. Il cluster di origine deve rilasciare 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 rilasciato il lease nel cluster di origine, il cluster di destinazione può per acquisire il leasing. 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