Esta página descreve como restaurar o Cassandra numa única região.
Numa implementação de região única, o Apigee hybrid é implementado num único centro de dados ou numa região. Se tiver várias organizações do Apigee na sua implementação, o processo de restauro restaura os dados de todas as organizações. Numa configuração com várias organizações, não pode restaurar uma organização específica.
Restaurar uma região a partir de uma cópia de segurança
Escolha as instruções abaixo para a ferramenta de gestão que está a usar para o Apigee Hybrid:
Leme
-
Atualize os detalhes de restauro do Cassandra no ficheiro
overrides.yaml
:namespace: YOUR_RESTORE_NAMESPACE # Use the same namespace as in your original cluster. cassandra: hostNetwork: false ... restore: enabled: true serviceAccountPath: "SA_JSON_FILE_PATH" dbStorageBucket: "CLOUD_STORAGE_BUCKET_PATH" cloudProvider: "GCP" # required verbatim "GCP" (all caps) snapshotTimestamp: "TIMESTAMP" ... backup: enabled: false ...
Onde:
Propriedade Descrição namespace
YOUR_RESTORE_NAMESPACE
Namespace para a restauração. Use o mesmo espaço de nomes que no cluster original.
cassandra:hostNetwork
hostNetwork
é obrigatório e deve ser sempre definido comofalse
.restore:enabled
O restauro está desativado por predefinição. Tem de definir esta propriedade como true
.restore:serviceAccountPath
SA_JSON_FILE_PATH
O caminho no seu sistema de ficheiros para a conta de serviço que criou para a cópia de segurança.
restore:dbStorageBucket
CLOUD_STORAGE_BUCKET_PATH
O caminho do contentor do Cloud Storage onde os dados da cópia de segurança estão armazenados no seguinte formato:
gs://BUCKET_NAME
. O campogs://
é obrigatório.restore:cloudProvider
GCP
A propriedade
cloudProvider: "GCP"
é obrigatória.restore:snapshotTimestamp
TIMESTAMP
A data/hora do instantâneo da cópia de segurança a restaurar. Para verificar que datas/horas podem ser usadas, aceda ao
dbStorageBucket
e consulte os ficheiros presentes no contentor. Cada nome de ficheiro contém um valor de carimbo de data/hora. Por exemplo,backup_20210203213003_apigee-cassandra-default-0.tgz
Em que 20210203213003 é o valor
snapshotTimestamp
que usaria se quisesse restaurar as cópias de segurança criadas nesse momento.backup:enabled
Deve definir esta propriedade como false
caso tenha sido definida anteriormente comotrue
. -
Caso não tenha um cluster limpo para começar, siga a documentação Desative uma região híbrida para o Helm para colocar a sua instalação híbrida existente num estado limpo (pode deixar o Cert Manager instalado). Isto leva-o a um estado igual como se tivesse seguido o manual de configuração do tempo de execução do Helm até ao início do passo 11.
-
Verifique se não existem pods restantes nos espaços de nomes do Apigee:
kubectl get pods -n apigee
kubectl get pods -n apigee-system
-
Se estiver a usar a cópia de segurança da CSI, certifique-se de que consegue ver os volumesnapshots que quer usar para o processo de restauro executando o seguinte comando:
kubectl get volumesnapshot -n apigee
-
Instale todos os componentes híbridos um a um, conforme descrito no passo 11 do manual de instalação. Tenha em atenção que o pod
apigee-cassandra-restore
é criado assim que executar o comando para instalar odatastore
, mas só passa para o estadorunning
depois de instalar o componenteapigee-org
.
Consulte a vista geral da cópia de segurança do Cassandra para ver mais detalhes sobre a cópia de segurança e o restauro do Cassandra.
apigeectl
Na sua configuração, a cópia de segurança do Cassandra pode residir no Cloud Storage ou num servidor remoto. Em qualquer dos casos, siga os passos abaixo para restaurar:
- Valide a versão híbrida.
Certifique-se de que a versão é a mesma que criou os ficheiros de cópia de segurança no armazenamento.apigeectl version
- Confirme que o cluster do Kubernetes para o qual está a restaurar não tem uma instalação híbrida do Apigee anterior. Se
estiver a restaurar para o cluster existente, use os seguintes comandos para eliminar a instalação do Apigee
hybrid existente:
apigeectl delete -f overrides.yaml
kubectl -n apigee get apigeedatastore,apigeeredis,apigeetelemetry,org,env,arc # The output should be empty.
apigeectl delete --all -f overrides.yaml
- Abra o ficheiro
overrides.yaml
e defina as propriedadesrestore
para os valores pretendidos:Cloud Storage
Parâmetros
namespace: YOUR_RESTORE_NAMESPACE # Use the same namespace as in your original cluster. cassandra: hostNetwork: false ... restore: enabled: true serviceAccountPath: "SA_JSON_FILE_PATH" dbStorageBucket: "CLOUD_STORAGE_BUCKET_PATH" cloudProvider: "GCP" # required verbatim "GCP" (all caps) snapshotTimestamp: "TIMESTAMP" ... backup: enabled: false serviceAccountPath: "SA_JSON_FILE_PATH" dbStorageBucket: "CLOUD_STORAGE_BUCKET_PATH" cloudProvider: "GCP" # required verbatim "GCP" (all caps) schedule: "SCHEDULE"
Exemplo
namespace: apigee cassandra: hostNetwork: false ... restore: enabled: true serviceAccountPath: "/Users/myhome/.ssh/my_cassandra_backup.json" dbStorageBucket: "gs://myname-cassandra-backup" cloudProvider: "GCP" snapshotTimestamp: "20201001183903" ... backup: enabled: false serviceAccountPath: "/Users/myhome/.ssh/my_cassandra_backup.json" dbStorageBucket: "gs://myname-cassandra-backup" cloudProvider: "GCP" schedule: "0 2 * * *" ...
Onde:
Propriedade Descrição namespace
YOUR_RESTORE_NAMESPACE
Namespace para a restauração. Use o mesmo espaço de nomes que no cluster original.
cassandra:hostNetwork
hostNetwork
é obrigatório e deve ser sempre definido comofalse
.restore:enabled
O restauro está desativado por predefinição. Tem de definir esta propriedade como true
.restore:serviceAccountPath
SA_JSON_FILE_PATH
O caminho no seu sistema de ficheiros para a conta de serviço que criou para a cópia de segurança.
restore:dbStorageBucket
CLOUD_STORAGE_BUCKET_PATH
O caminho do contentor do Cloud Storage onde os dados da cópia de segurança estão armazenados no seguinte formato:
gs://BUCKET_NAME
. O campogs://
é obrigatório.restore:cloudProvider
GCP
A propriedade
cloudProvider: "GCP"
é obrigatória.restore:snapshotTimestamp
TIMESTAMP
A data/hora do instantâneo da cópia de segurança a restaurar. Para verificar que datas/horas podem ser usadas, aceda ao
dbStorageBucket
e consulte os ficheiros presentes no contentor. Cada nome de ficheiro contém um valor de carimbo de data/hora. Por exemplo,backup_20210203213003_apigee-cassandra-default-0.tgz
Em que 20210203213003 é o valor
snapshotTimestamp
que usaria se quisesse restaurar as cópias de segurança criadas nesse momento.backup:enabled
Deve definir esta propriedade como false
caso tenha sido definida anteriormente comotrue
.backup:serviceAccountPath
SA_JSON_FILE_PATH
O caminho no seu sistema de ficheiros para o ficheiro JSON da conta de serviço que foi transferido quando executou
./tools/create-service-account
backup:dbStorageBucket
CLOUD_STORAGE_BUCKET_PATH
O caminho do contentor do Cloud Storage neste formato:
gs://BUCKET_NAME
. O campogs://
é obrigatório.backup:cloudProvider
GCP
A propriedade
cloudProvider: "GCP"
é obrigatória.backup:schedule
SCHEDULE
A hora em que a cópia de segurança começa, especificada na sintaxe crontab padrão. Predefinição:
0 2 * * *
Armazenamento não na nuvem
Parâmetros
namespace: YOUR_RESTORE_NAMESPACE # Use the same namespace as in your original cluster. cassandra: hostNetwork: false ... restore: enabled: true keyFile: "PATH_TO_PRIVATE_KEY_FILE" server: "BACKUP_SERVER_IP" storageDirectory: "/home/apigee/BACKUP_DIRECTORY" cloudProvider: "HYBRID" # required verbatim "HYBRID" (all caps) snapshotTimestamp: "TIMESTAMP" ... backup: enabled: false keyFile: "PATH_TO_PRIVATE_KEY_FILE" server: "BACKUP_SERVER_IP" storageDirectory: "/home/apigee/BACKUP_DIRECTORY" cloudProvider: "HYBRID" # required verbatim "HYBRID" (all caps) schedule: "SCHEDULE"
Exemplo
namespace: apigee cassandra: hostNetwork: false ... restore: enabled: true keyFile: "/Users/exampleuser/apigee-hybrid/hybrid-files/service-accounts/private.key" server: "34.56.78.90" storageDirectory: "/home/apigee/cassbackup" cloudProvider: "HYBRID" snapshotTimestamp: "20201001183903" ... backup: enabled: false keyFile: "/Users/exampleuser/apigee-hybrid/hybrid-files/service-accounts/private.key" server: "34.56.78.90" storageDirectory: "/home/apigee/cassbackup" cloudProvider: "HYBRID" schedule: "0 2 * * *" ...
Onde:
Propriedade Descrição namespace
YOUR_RESTORE_NAMESPACE
Namespace para a restauração. Use o mesmo espaço de nomes que no cluster original.
cassandra:hostNetwork
hostNetwork
é obrigatório e deve ser sempre definido comofalse
.restore:enabled
O restauro está desativado por predefinição. Tem de definir esta propriedade como true
.restore:keyFile
PATH_TO_PRIVATE_KEY_FILE
restore:server
BACKUP_SERVER_IP
O endereço IP do seu servidor de reserva.
restore:storageDirectory
BACKUP_DIRECTORY
O nome do diretório de cópia de segurança no servidor de cópia de segurança. Tem de ser um diretório em
home/apigee
(o diretório de cópia de segurança chama-secassandra_backup
no passo em que criou o diretório de cópia de segurança).restore:cloudProvider
HYBRID
A propriedade
cloudProvider: "HYBRID"
é obrigatória.restore:snapshotTimestamp
TIMESTAMP
A data/hora do instantâneo da cópia de segurança a restaurar. Para verificar que datas/horas podem ser usadas, aceda ao
dbStorageBucket
e consulte os ficheiros presentes no contentor. Cada nome de ficheiro contém um valor de carimbo de data/hora. Por exemplo,backup_20210203213003_apigee-cassandra-default-0.tgz
Em que 20210203213003 é o valor
snapshotTimestamp
que usaria se quisesse restaurar as cópias de segurança criadas nesse momento.backup:enabled
Deve definir esta propriedade como false
caso tenha sido definida anteriormente comotrue
.backup:keyFile
PATH_TO_PRIVATE_KEY_FILE
O caminho no seu sistema de ficheiros local para o ficheiro de chave privada de SSH (denominado
ssh_key
no passo em que criou o par de chaves SSH).backup:server
BACKUP_SERVER_IP
O endereço IP do seu servidor de reserva.
backup:storageDirectory
BACKUP_DIRECTORY
O nome do diretório de cópia de segurança no servidor de cópia de segurança. Tem de ser um diretório em
home/apigee
(o diretório de cópia de segurança tem o nomecassandra_backup
no passo em que criou o diretório de cópia de segurança).backup:cloudProvider
HYBRID
A propriedade
cloudProvider: "HYBRID"
é obrigatória.backup:schedule
SCHEDULE
A hora em que a cópia de segurança começa, especificada na sintaxe crontab padrão. Predefinição:
0 2 * * *
- Crie uma nova implementação de tempo de execução híbrido. Esta ação cria um novo cluster do Cassandra e começa a restaurar os dados da cópia de segurança no cluster:
${APIGEECTL_HOME}/apigeectl init -f overrides/overrides.yaml
${APIGEECTL_HOME}/apigeectl check-ready -f overrides/overrides.yaml
${APIGEECTL_HOME}/apigeectl apply -f overrides/overrides.yaml --restore
${APIGEECTL_HOME}/apigeectl check-ready -f overrides/overrides.yaml
Verifique o progresso da tarefa de restauro e confirme que apigeeds
e todos os outros pods estão ativos:
- Verifique
apigeeds
:kubectl get apigeeds -n apigee
- Verifique todos os outros pods:
kubectl get pods -n apigee
Após a conclusão com êxito do restauro e a confirmação de que os componentes de tempo de execução estão em bom estado, recomendamos que configure uma cópia de segurança no cluster:
- Remova a configuração
restore
do ficheirooverrides-restore.yaml
. - Adicione a configuração
backup
ao ficheirooverrides-restore.yaml
. - Aplique a configuração
backup
com o seguinte comando:Leme
helm upgrade datastore apigee-datastore/ \ --install \ --namespace apigee \ --atomic \ -f overrides.yaml
apigeectl
./apigeectl apply -f ../overrides.yaml