Questa pagina descrive come eseguire la migrazione di un'organizzazione Apigee hybrid da un cluster Kubernetes a un altro. Alcuni casi in cui potrebbe essere necessario eseguire la migrazione di un'organizzazione a un altro cluster sono i seguenti:
- Il data center che ospita il cluster esistente non ha più capacità o è in fase di ritiro.
- Il cluster esegue 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 dai cluster multi-organizzazione in cluster separati.
Tieni presente che esistono rischi e limitazioni quando esegui la migrazione di un'organizzazione a un altro cluster ibrido. 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 il rischio di perdita di dati quando si spostano i dati dell'organizzazione in un nuovo cluster Kubernetes. Prima di eseguire la migrazione di un'organizzazione, devi eseguire il backup dei dati di tutte le organizzazioni nel cluster Kubernetes utilizzando le istruzioni per il backup ibrido.
- La dimensione massima dei dati supportata per la migrazione dell'organizzazione è 5 GB in tutti gli spazi delle chiavi di un'organizzazione, esclusi cache e quota.
- I dati della cache non verranno migrati. L'ibrido ricompila i dati della cache.
- I dati relativi alla quota non verranno migrati. Il ripristino ibrido azzera i dati della quota.
- 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 un deployment in una singola regione. Una volta completata l'implementazione in una singola regione, puoi seguire la procedura di espansione della regione descritta in Implementazione multiregionale per espanderti in altre regioni.
- Il cluster Cassandra deve funzionare correttamente 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:
- Se non sono già abilitati, abilita i backup sul cluster Kubernetes contenente l'organizzazione ibrida da migrare. Consulta la panoramica del backup di Cassandra per informazioni sui backup ibridi.
- 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 contenitore valido. - Una volta completato il job di backup, segui le istruzioni riportate nelle sezioni seguenti di
Monitoraggio
dei backup per verificare che il backup sia stato completato correttamente:
- "Controlla lo stato del job di backup"
- "Controlla i log di backup"
- Dopo aver verificato che il backup è riuscito, annota il numero ID alla fine
del log di backup.
Ad esempio, un log di backup riuscito dovrebbe contenere una riga simile alla seguente:
Prendi nota del numero a più cifre alla fine della riga. Avrai bisogno di questo numero in un secondo momento.INFO: completed upload for 20230207004250
- Passa al contesto Kubernetes del 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. - Ripristina i dati di backup nel cluster Kubernetes di destinazione seguendo le istruzioni riportate in
Ripristino in una singola regione.
- Utilizza il file overrides.yaml per l'organizzazione di cui viene eseguita la migrazione al deployment ibrido di destinazione.
- Ricorda di impostare il valore di
restore:snapshotTimestampsul numero a più cifre mostrato dal log di backup nel passaggio 4. Consulta Ripristino in una singola regione.
- Una volta completato il ripristino, elimina tutti i dati dell'organizzazione, ad eccezione di quelli dell'organizzazione di cui è in corso la migrazione, dal cluster Kubernetes di destinazione. I file di backup ibrido contengono i dati di tutte le
organizzazioni, comprese quelle di cui potresti non voler eseguire la migrazione. Dopo il ripristino del deployment ibrido di destinazione, devi rimuovere tutti i dati dell'organizzazione aggiuntivi copiati nel
deployment, seguendo questi passaggi:
- Verifica che il contesto attuale sia quello corretto per il cluster Kubernetes di destinazione:
kubectl config current-context
- Esegui l'accesso al pod
apigee-cassandra-default-0:kubectl exec -it -n apigee apigee-cassandra-default-0 -- /bin/bash
- Esegui questo comando:
find /opt/apigee/data/apigee-cassandra/ -iname '*_hybrid' -not -iname '*<migrated org name>*' -type d -maxdepth 2 -printf "%f\n"
Consulta Recuperare il nome dell'organizzazione di cui è stata eseguita la migrazione per istruzioni su come trovare
<migrated org name>.Copia l'elenco di tutti i nomi visualizzati nell'output. Ti servirà nel passaggio 7. f.
- Esci dal pod
apigee-cassandra-default-0. - Crea un pod client di debug di Cassandra seguendo le istruzioni riportate in
Crea un container client per il debug. Passa al passaggio successivo dopo aver ricevuto un
prompt
cqlsh. - Esegui i seguenti 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>
-
- Esci dal pod client di debug di Cassandra.
- Dopo aver eseguito i comandi
cqlsh, esegui i seguenti 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
Consulta Recuperare il nome dell'organizzazione di cui è stata eseguita la migrazione per istruzioni su come trovare
<migrated org name>.find /opt/apigee/data/apigee-cassandra/ -iname '*_hybrid' -not -iname '*
*' -type d -maxdepth 2 -exec rm -rf {} +
- Esci dal pod Cassandra.
- Verifica che il contesto attuale sia quello corretto per il cluster Kubernetes di destinazione:
- Passa al contesto Kubernetes del cluster Kubernetes di origine:
kubectl config use-context <source cluster name>
dove
<source cluster name>è il nome del cluster Kubernetes di origine. - Elimina l'organizzazione di cui è stata eseguita la migrazione dal cluster Kubernetes di origine. Assicurati di utilizzare il
file
overrides.yamlper l'organizzazione nel comando di eliminazione:- Verifica che il contesto attuale sia quello corretto per il cluster Kubernetes di origine:
kubectl config current-context
apigeectl delete --settings virtualhost -f <overrides.yaml>
apigeectl delete --all-envs -f <overrides.yaml>
apigeectl delete -f <overrides.yaml> --org
- Esegui l'accesso al pod apigee-cassandra-default-0:
kubectl exec -it -n apigee apigee-cassandra-default-0 -- /bin/bash
- Esegui questo comando:
find /opt/apigee/data/apigee-cassandra/ -iname '*<migrated org name>_hybrid' -type d -maxdepth 2 -printf "%f\n"
Consulta Recuperare il nome dell'organizzazione di cui è stata eseguita la migrazione per istruzioni su come trovare
<migrated org name>.Copia l'elenco di tutti i nomi visualizzati nell'output. Avrai bisogno di questo elenco nel passaggio 9. j.
- Esci dal pod
apigee-cassandra-default-0. - Crea un pod client di debug di Cassandra seguendo le istruzioni riportate in
Crea un container client per il debug. Passa al passaggio successivo
dopo aver ricevuto un prompt
cqlsh. - Esegui i seguenti comandi al prompt
cqlsh:desc keyspaces;
Assicurati che questo comando non restituisca errori.
- Per ogni nome nell'elenco creato al passaggio 10. f.,
esegui questo comando:
drop keyspace <name>;
- Esci dal pod client di debug di Cassandra. Dopo aver eseguito i comandi
-
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
Consulta Recuperare il nome dell'organizzazione di cui è stata eseguita la migrazione per istruzioni su come trovare
<migrated org name>. -
find /opt/apigee/data/apigee-cassandra/ -iname '*<migrated org name>_hybrid' -type d -maxdepth 2 -exec rm -rf {} + - Esci dal pod Cassandra.
cqlsh, esegui i seguenti comandi su tutti i pod Cassandra nel cluster Kubernetes di origine: - Verifica che il contesto attuale sia quello corretto per il cluster Kubernetes di origine:
Ottenere il nome dell'organizzazione di cui è stata eseguita la migrazione
Diversi passaggi della procedura descritta nella sezione precedente richiedono il nome dell'organizzazione di cui è stata eseguita la migrazione. Per ottenere il nome dell'organizzazione di cui è stata eseguita la migrazione:
- Recupera il nome dell'organizzazione dal file overrides.yaml dell'organizzazione. Assicurati di controllare il file overrides.yaml per l'organizzazione di cui viene eseguita la migrazione.
- Se il nome dell'organizzazione contiene trattini "-", sostituiscili tutti con trattini bassi "_".