Migrazione di un'organizzazione a un altro cluster

Questa pagina descrive come eseguire la migrazione di un'organizzazione Apigee ibrida da un cluster Kubernetes a un altro. Di seguito sono riportati alcuni casi in cui potresti dover eseguire la migrazione di un'organizzazione a un altro cluster:

  • Il data center che ospita il cluster esistente non ha più capacità o è in fase di dismissione.
  • Il cluster utilizza un'infrastruttura precedente o una versione precedente di Kubernetes e vuoi eseguire la migrazione a un cluster con un'infrastruttura più recente.
  • Vuoi spostare le organizzazioni da cluster multiorganizzativi a cluster separati.

Tieni presente che la migrazione di un'organizzazione a un altro cluster ibrido presenta rischi e limitazioni. Leggi i dettagli nella sezione Limitazioni prima di eseguire una migrazione.

Limitazioni

Quando esegui la migrazione di un'organizzazione ibrida a un altro cluster Kubernetes si applicano le seguenti limitazioni:

  • Esiste un rischio di perdita di dati quando si spostano i dati dell'organizzazione in un nuovo cluster Kubernetes. Devi eseguire il backup dei dati di tutte le organizzazioni nel cluster Kubernetes, utilizzando le istruzioni per il backup ibrido, prima di eseguire la migrazione di un'organizzazione.
  • La dimensione massima dei dati supportata per la migrazione dell'organizzazione è di 5 GB in tutti gli spazi delle chiavi di un'organizzazione, escluse cache e quota.
  • Non verrà eseguita la migrazione dei dati della cache. La modalità ibrida ricrea i dati della cache.
  • Non verrà eseguita la migrazione dei dati delle quote. La modalità ibrida reimposta i dati delle quote.
  • Puoi eseguire la migrazione delle organizzazioni solo a un cluster Kubernetes che non contiene un deployment ibrido esistente. La migrazione a un cluster con un deployment ibrido esistente non è supportata.
  • L'organizzazione di cui viene eseguita la migrazione può essere spostata solo in un nuovo cluster con il deployment di una singola regione. Una volta avviato il deployment in una singola regione, puoi seguire il processo di espansione della regione, descritto in Deployment in più regioni, per espanderlo ad altre regioni.
  • Il cluster Cassandra dovrebbe funzionare in buona integrità in tutte le regioni.

Migrazione di un'organizzazione

Segui le istruzioni riportate di seguito per eseguire la migrazione di un'organizzazione ibrida da un cluster Kubernetes a un altro:

  1. Se non sono già abilitati, abilita i backup sul cluster Kubernetes contenente l'organizzazione ibrida di cui eseguire la migrazione. Per informazioni sui backup ibridi, consulta Panoramica del backup di Cassandra.
  2. Avvia un job di backup ibrido utilizzando il seguente comando:
    kubectl create job -n apigee --from=cronjob/apigee-cassandra-backup <backup job name>

    <backup job name> può essere qualsiasi nome di container valido.

  3. Una volta completato il job di backup, segui le istruzioni nelle seguenti sezioni della sezione Backup in ambito di Monitoring per verificare che il backup sia stato completato correttamente:
    • "Controlla lo stato del job di backup"
    • "Controlla i log di backup"
  4. Dopo aver verificato l'esito positivo del backup, prendi nota del numero ID alla fine del log di backup. Ad esempio, un log di backup riuscito dovrebbe contenere una riga simile alla seguente:
    INFO: completed upload for 20230207004250
    Annota il numero a più cifre alla fine della riga. Questo numero ti servirà in un secondo momento.
  5. Passa dal contesto di Kubernetes al cluster Kubernetes di destinazione:
    kubectl config use-context <destination cluster name> # <destination cluster name>

    dove <destination cluster name> è il nome del cluster Kubernetes di destinazione.

  6. Ripristina i dati di backup nel cluster Kubernetes di destinazione utilizzando le istruzioni in Ripristino in una singola regione.
    • Utilizza il file override.yaml per l'organizzazione di cui viene eseguita la migrazione al deployment ibrido di destinazione.
    • Ricordati di impostare il valore restore:snapshotTimestamp sul numero a più cifre mostrato nel log di backup nel passaggio 4. Consulta Ripristino in una singola regione.
  7. Al termine del ripristino, elimina tutti i dati dell'organizzazione, ad eccezione di quelli dell'organizzazione di cui viene eseguita la migrazione, dal cluster Kubernetes di destinazione. I file di backup ibridi contengono i dati di tutte le organizzazioni, incluse quelle di cui non vuoi eseguire la migrazione. Dopo aver ripristinato il deployment ibrido di destinazione, devi rimuovere tutti i dati dell'organizzazione aggiuntivi che sono stati copiati nel deployment, seguendo questi passaggi:
    1. Verifica che il contesto attuale sia corretto per il cluster Kubernetes di destinazione:
      kubectl config current-context
    2. Esegui nel pod apigee-cassandra-default-0:
      kubectl exec -it -n apigee apigee-cassandra-default-0 -- /bin/bash
    3. Esegui questo comando:
      find /opt/apigee/data/apigee-cassandra/ -iname '*_hybrid' -not -iname '*<migrated org name>*' -type d -maxdepth 2 -printf "%f\n"

      Per istruzioni su come trovare <migrated org name>, consulta Recuperare il nome dell'organizzazione di cui è stata eseguita la migrazione.

      Copia l'elenco di tutti i nomi visualizzati nell'output. Ti servirà nel passaggio 7. f.

    4. Esci dal pod apigee-cassandra-default-0.
    5. Crea un pod del client di debug Cassandra utilizzando le istruzioni in Creare un contenitore client per il debug. Vai al passaggio successivo dopo aver ricevuto un messaggio di cqlsh.
    6. Esegui questi comandi nel prompt cqlsh:
      • desc keyspaces;

        Assicurati che questo comando non restituisca errori.

      • Per ogni nome nell'elenco creato nel passaggio 7. c., esegui questo comando:
        drop keyspace <name>
    7. Esci dal pod del client di debug Cassandra.
    8. Dopo aver eseguito i comandi cqlsh, esegui questi comandi su tutti i pod Cassandra nel cluster Kubernetes di destinazione:
      • kubectl exec -it -n apigee  -- /bin/bash
      • find /opt/apigee/data/apigee-cassandra/ -iname '*_hybrid' -not -iname '*<migrated org name>*' -type d -maxdepth 2

        Per istruzioni su come trovare <migrated org name>, consulta Recuperare il nome dell'organizzazione di cui è stata eseguita la migrazione.

      • find /opt/apigee/data/apigee-cassandra/ -iname '*_hybrid' -not -iname '**' -type d -maxdepth 2 -exec rm -rf {} +
    9. Esci dal pod Cassandra.
  8. Passa dal contesto di Kubernetes al cluster Kubernetes di origine:
    kubectl config use-context <source cluster name>

    dove <source cluster name> è il nome del cluster Kubernetes di origine.

  9. Elimina l'organizzazione di cui è stata eseguita la migrazione dal cluster Kubernetes di origine. Assicurati di utilizzare il file overrides.yaml per l'organizzazione nel comando di eliminazione:
    1. Verifica che il contesto attuale sia corretto per il cluster Kubernetes di origine:
      kubectl config current-context
    2. apigeectl delete --settings virtualhost -f <overrides.yaml>
    3. apigeectl delete --all-envs -f <overrides.yaml>
    4. apigeectl delete -f <overrides.yaml> --org
    5. Esegui nel pod apigee-cassandra-default-0:
      kubectl exec -it -n apigee apigee-cassandra-default-0 -- /bin/bash
    6. Esegui questo comando:
      find /opt/apigee/data/apigee-cassandra/ -iname '*<migrated org name>_hybrid' -type d -maxdepth 2 -printf "%f\n"

      Per istruzioni su come trovare <migrated org name>, consulta Recuperare il nome dell'organizzazione di cui è stata eseguita la migrazione.

      Copia l'elenco di tutti i nomi visualizzati nell'output. Questo elenco ti servirà al passaggio 9. j.

    7. Esci dal pod apigee-cassandra-default-0.
    8. Crea un pod del client di debug Cassandra utilizzando le istruzioni in Creare un contenitore client per il debug. Vai al passaggio successivo dopo aver ricevuto un prompt di cqlsh.
    9. Esegui i seguenti comandi al prompt di cqlsh:
      desc keyspaces;

      Assicurati che questo comando non restituisca errori.

    10. Per ciascun nome dell'elenco creato nel passaggio 10. f., Esegui questo comando:
      drop keyspace <name>;
    11. Esci dal pod del client di debug Cassandra.
    12. Dopo aver eseguito i comandi cqlsh, esegui questi comandi su tutti i pod Cassandra nel cluster Kubernetes di origine:
      • kubectl exec -it -n apigee <cassandra pod name> -- /bin/bash
      • find /opt/apigee/data/apigee-cassandra/ -iname '*<migrated org name>_hybrid' -type d -maxdepth 2

        Per istruzioni su come trovare <migrated org name>, consulta Recuperare il nome dell'organizzazione di cui è stata eseguita la migrazione.

      • find /opt/apigee/data/apigee-cassandra/ -iname '*<migrated org name>_hybrid' -type d -maxdepth 2 -exec rm -rf {} +
    13. Esci dal pod Cassandra.

Visualizza il nome dell'organizzazione di cui è stata eseguita la migrazione

Molti dei passaggi della procedura descritta nella sezione precedente richiedono il nome dell'organizzazione di cui è stata eseguita la migrazione. Per recuperare il nome dell'organizzazione di cui è stata eseguita la migrazione:

  1. Ottieni il nome dell'organizzazione dal file override.yaml dell'organizzazione. Assicurati di controllare il file override.yaml per l'organizzazione di cui viene eseguita la migrazione.
  2. Se il nome dell'organizzazione contiene trattini "-", sostituisci tutti i trattini "-" con trattini bassi "_".