Esta página descreve como migrar uma organização híbrida do Apigee de um cluster do Kubernetes para outro. Seguem-se alguns casos em que pode ter de migrar uma organização para outro cluster:
- O centro de dados que aloja o cluster existente não tem mais capacidade ou está a ser desativado.
- O cluster está a executar uma infraestrutura antiga ou uma versão antiga do Kubernetes e quer migrar para um cluster com uma infraestrutura mais recente.
- Quer mover organizações de clusters com várias organizações para clusters separados.
Tenha em atenção que existem riscos e limitações ao migrar uma organização para outro cluster híbrido. Leia os detalhes na secção Limitações antes de efetuar uma migração.
Limitações
Aplicam-se as seguintes limitações quando migra uma organização híbrida para outro cluster do Kubernetes:
- Existe um risco de perda de dados quando move os dados da organização para um novo cluster do Kubernetes. Deve fazer uma cópia de segurança dos dados de todas as organizações no cluster do Kubernetes, seguindo as instruções de cópia de segurança híbrida, antes de migrar uma organização.
- O tamanho máximo de dados suportado para a migração de organizações é de 5 GB em todos os espaços de chaves de uma organização, excluindo a cache e a quota.
- Os dados da cache não são migrados. O Hybrid recompila os dados da cache.
- Os dados de quota não vão ser migrados. O híbrido repõe os dados de quota.
- Só pode migrar organizações para um cluster do Kubernetes que não contenha uma implementação híbrida existente. A migração para um cluster com uma implementação híbrida existente não é suportada.
- A organização que está a ser migrada só pode ser movida para um novo cluster com uma implementação de região única. Depois de a implementação de região única estar em funcionamento, pode seguir o processo de expansão de regiões, descrito na Implementação em várias regiões, para expandir para outras regiões.
- O cluster do Cassandra deve estar a funcionar corretamente em todas as regiões.
Migrar uma organização
Siga as instruções abaixo para migrar uma organização híbrida de um cluster do Kubernetes para outro:
- Se ainda não estiver ativado, ative as cópias de segurança no cluster do Kubernetes que contém a organização híbrida a migrar. Consulte a vista geral da cópia de segurança do Cassandra para ver informações sobre cópias de segurança híbridas.
- Inicie uma tarefa de cópia de segurança híbrida com o seguinte comando:
kubectl create job -n apigee --from=cronjob/apigee-cassandra-backup <backup job name>
O elemento
<backup job name>
pode ser qualquer nome de contentor válido. - Assim que a tarefa de cópia de segurança estiver concluída, use as instruções nas secções seguintes de
Monitorização
de cópias de segurança para verificar se a cópia de segurança foi concluída com êxito:
- "Verifique o estado da tarefa de cópia de segurança"
- "Verifique os registos de cópias de segurança"
- Depois de verificar que a cópia de segurança foi bem-sucedida, anote o número de ID no final do registo de cópia de segurança.
Por exemplo, um registo de cópia de segurança bem-sucedido deve conter uma linha como a seguinte:
Tome nota do número de vários dígitos no final da linha. Vai precisar deste número mais tarde.INFO: completed upload for 20230207004250
- Mude o contexto do Kubernetes para o cluster do Kubernetes de destino:
kubectl config use-context <destination cluster name> # <destination cluster name>
em que
<destination cluster name>
é o nome do cluster do Kubernetes de destino. - Restaure os dados da cópia de segurança no cluster Kubernetes de destino através das instruções em
Restaurar numa única região.
- Use o ficheiro overrides.yaml para a organização que está a ser migrada para a implementação híbrida de destino.
- Lembre-se de definir o valor
restore:snapshotTimestamp
para o número de vários dígitos apresentado no passo 4 do início de sessão alternativo. Consulte Restaurar numa única região.
- Quando a restauração estiver concluída, elimine todos os dados da organização, exceto os dados da organização que está a ser migrada, do cluster Kubernetes de destino. Os ficheiros de cópia de segurança híbrida contêm os dados de todas as organizações, incluindo as que pode não querer migrar. Depois de restaurar a implementação híbrida de destino, tem de remover todos os dados da organização adicionais que foram copiados para a implementação, seguindo estes passos:
- Verifique se o contexto atual é o contexto correto para o cluster Kubernetes de destino:
kubectl config current-context
- Executar no agrupamento
apigee-cassandra-default-0
:kubectl exec -it -n apigee apigee-cassandra-default-0 -- /bin/bash
- Execute o seguinte comando:
find /opt/apigee/data/apigee-cassandra/ -iname '*_hybrid' -not -iname '*<migrated org name>*' -type d -maxdepth 2 -printf "%f\n"
Consulte o artigo Obtenha o nome da organização migrada para ver instruções sobre como encontrar
<migrated org name>
.Copie a lista de todos os nomes apresentados no resultado. Vai precisar desta lista no passo 7. f.
- Saia do pod
apigee-cassandra-default-0
. - Crie um pod de cliente de depuração do Cassandra através das instruções em
Crie um contentor de cliente para depuração. Avance para o passo seguinte depois de receber um comando
cqlsh
. - Execute os seguintes comandos na linha de comandos
cqlsh
:-
desc keyspaces;
Certifique-se de que este comando não devolve erros.
- Para cada nome na lista criada no passo 7. c., execute o seguinte comando:
drop keyspace <name>
-
- Saia do pod do cliente de depuração do Cassandra.
- Depois de executar os comandos
cqlsh
, execute os seguintes comandos em todos os pods do Cassandra no cluster Kubernetes de destino:kubectl exec -it -n apigee
-- /bin/bash find /opt/apigee/data/apigee-cassandra/ -iname '*_hybrid' -not -iname '*<migrated org name>*' -type d -maxdepth 2
Consulte o artigo Obtenha o nome da organização migrada para ver instruções sobre como encontrar o
<migrated org name>
.find /opt/apigee/data/apigee-cassandra/ -iname '*_hybrid' -not -iname '*
*' -type d -maxdepth 2 -exec rm -rf {} +
- Saia do pod Cassandra.
- Verifique se o contexto atual é o contexto correto para o cluster Kubernetes de destino:
- Mude o contexto do Kubernetes para o cluster do Kubernetes de origem:
kubectl config use-context <source cluster name>
em que
<source cluster name>
é o nome do cluster do Kubernetes de origem. - Elimine a organização migrada do cluster Kubernetes de origem. Certifique-se de que usa o ficheiro
overrides.yaml
para a organização no comando de eliminação:- Verifique se o contexto atual é o contexto correto para o cluster do Kubernetes de origem:
kubectl config current-context
apigeectl delete --settings virtualhost -f
apigeectl delete --all-envs -f <overrides.yaml>
apigeectl delete -f <overrides.yaml> --org
- Execute o comando no pod apigee-cassandra-default-0:
kubectl exec -it -n apigee apigee-cassandra-default-0 -- /bin/bash
- Execute o seguinte comando:
find /opt/apigee/data/apigee-cassandra/ -iname '*<migrated org name>_hybrid' -type d -maxdepth 2 -printf "%f\n"
Consulte o artigo Obtenha o nome da organização migrada para ver instruções sobre como encontrar o
<migrated org name>
.Copie a lista de todos os nomes apresentados no resultado. Vai precisar desta lista no passo 9. j.
- Saia do pod
apigee-cassandra-default-0
. - Crie um pod de cliente de depuração do Cassandra através das instruções em
Crie um contentor de cliente para depuração. Avance para o passo seguinte
depois de receber um comando
cqlsh
. - Execute os seguintes comandos no comando
cqlsh
:desc keyspaces;
Certifique-se de que este comando não devolve erros.
- Para cada nome na lista criada no passo 10. f.,
execute o seguinte comando:
drop keyspace <name>;
- Saia do pod do cliente de depuração do Cassandra. Depois de executar os comandos
-
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
Consulte o artigo Obtenha o nome da organização migrada para ver instruções sobre como encontrar o
<migrated org name>
. -
find /opt/apigee/data/apigee-cassandra/ -iname '*<migrated org name>_hybrid' -type d -maxdepth 2 -exec rm -rf {} +
- Saia do pod Cassandra.
cqlsh
, execute os seguintes comandos em todos os pods do Cassandra no cluster do Kubernetes de origem: - Verifique se o contexto atual é o contexto correto para o cluster do Kubernetes de origem:
Obtenha o nome da organização migrada
Vários dos passos no procedimento descrito na secção anterior requerem o nome da organização migrada. Para obter o nome da organização migrada, faça o seguinte:
- Obtenha o nome da organização a partir do ficheiro overrides.yaml da organização. Certifique-se de que verifica o ficheiro overrides.yaml da organização que está a ser migrada.
- Se o nome da organização contiver travessões "-", substitua todos os travessões "-" por sublinhados "_".