Nesta página, descrevemos como restaurar o Cassandra em uma única região.
Em uma implantação de região única, a Apigee híbrida é implantada em um único data center ou região. Se você tiver várias organizações da Apigee na implantação, o processo de restauração vai restaurar dados para todas as organizações. Em uma configuração de várias organizações, não é possível restaurar uma organização específica.
Como restaurar uma região de um backup
Escolha as instruções abaixo para a ferramenta de gerenciamento que você usa para a Apigee híbrida:
Helm
-
Atualize os detalhes da restauração do Cassandra no arquivo
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 ...
Em que:
Propriedade Descrição namespace
YOUR_RESTORE_NAMESPACE
Namespace para restauração. Use o namespace como no cluster original.
cassandra:hostNetwork
hostNetwork
é obrigatório e precisa ser sempre definido comofalse
.restore:enabled
A restauração é desativada por padrão. É preciso definir essa propriedade como true
.restore:serviceAccountPath
SA_JSON_FILE_PATH
O caminho no sistema de arquivos para a conta de serviço que você criou para o backup.
restore:dbStorageBucket
CLOUD_STORAGE_BUCKET_PATH
O caminho do bucket do Cloud Storage em que os dados de backup são armazenados no seguinte formato:
gs://BUCKET_NAME
. Ogs://
é obrigatório.restore:cloudProvider
GCP
A propriedade
cloudProvider: "GCP"
é obrigatória.restore:snapshotTimestamp
TIMESTAMP
O carimbo de data/hora do snapshot de backup a ser restaurado. Para verificar quais carimbos de data/hora podem ser usados, acesse
dbStorageBucket
e observe os arquivos presentes no bucket. Cada nome de arquivo contém um valor de carimbo de data/hora. Exemplo:backup_20210203213003_apigee-cassandra-default-0.tgz
Onde 20210203213003 é o valor
snapshotTimestamp
que você usaria se quisesse restaurar os backups criados nesse momento.backup:enabled
Defina essa propriedade como false
caso ela tenha sido configurada anteriormente comotrue
. -
Caso você não tenha um cluster limpo para começar, siga a documentação Desativar uma região híbrida para Helm para deixar sua instalação híbrida atual em um estado limpo (deixe o Gerenciador de certificados instalado). Isso traria o mesmo estado que se você tivesse seguido o Manual de configuração do ambiente de execução do Helm até o início da Etapa 11.
-
Verifique se não há pods restantes nos namespaces da Apigee:
kubectl get pods -n apigee
kubectl get pods -n apigee-system
-
Se você estiver usando o backup CSI, verifique se os volumesnapshots que quer usar no processo de restauração é exibido. Para isso, execute o seguinte comando:
kubectl get volumesnapshot -n apigee
-
Instale todos os componentes híbridos, um por um, conforme descrito na Etapa 11 no manual de instalação. O pod
apigee-cassandra-restore
será criado quando você executar o comando para instalar odatastore
, mas ele só entrará no estadorunning
depois que você instalar o componenteapigee-org
.
Consulte Visão geral do backup do Cassandra para ver mais detalhes sobre o backup e a restauração do Cassandra.
apigeectl
Na sua configuração, o backup do Cassandra pode residir no Cloud Storage ou em um servidor remoto. Nos dois casos, execute as seguintes etapas para restaurar:
- Verifique a versão híbrida.
apigeectl version
Verifique se a versão é a mesma que criou os arquivos de backup no armazenamento. - Confirme se o cluster do Kubernetes que você está restaurando não tem uma instalação híbrida da Apigee anterior. Se você estiver restaurando para o cluster já existente, use os seguintes comandos para excluir a instalação atual da Apigee híbrida:
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 arquivo
overrides.yaml
e defina as propriedadesrestore
para os valores desejados: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 * * *" ...
Em que:
Propriedade Descrição namespace
YOUR_RESTORE_NAMESPACE
Namespace para restauração. Use o namespace como no cluster original.
cassandra:hostNetwork
hostNetwork
é obrigatório e precisa ser sempre definido comofalse
.restore:enabled
A restauração é desativada por padrão. É preciso definir essa propriedade como true
.restore:serviceAccountPath
SA_JSON_FILE_PATH
O caminho no sistema de arquivos para a conta de serviço que você criou para o backup.
restore:dbStorageBucket
CLOUD_STORAGE_BUCKET_PATH
O caminho do bucket do Cloud Storage em que os dados de backup são armazenados no seguinte formato:
gs://BUCKET_NAME
. Ogs://
é obrigatório.restore:cloudProvider
GCP
A propriedade
cloudProvider: "GCP"
é obrigatória.restore:snapshotTimestamp
TIMESTAMP
O carimbo de data/hora do snapshot de backup a ser restaurado. Para verificar quais carimbos de data/hora podem ser usados, acesse
dbStorageBucket
e observe os arquivos presentes no bucket. Cada nome de arquivo contém um valor de carimbo de data/hora. Exemplo:backup_20210203213003_apigee-cassandra-default-0.tgz
Onde 20210203213003 é o valor
snapshotTimestamp
que você usaria se quisesse restaurar os backups criados nesse momento.backup:enabled
Defina essa propriedade como false
caso ela tenha sido configurada anteriormente comotrue
.backup:serviceAccountPath
SA_JSON_FILE_PATH
O caminho no sistema de arquivos para o arquivo JSON da conta de serviço que foi salvo quando você executou
./tools/create-service-account
backup:dbStorageBucket
CLOUD_STORAGE_BUCKET_PATH
O caminho do bucket do Cloud Storage neste formato:
gs://BUCKET_NAME
. Ogs://
é obrigatório.backup:cloudProvider
GCP
A propriedade
cloudProvider: "GCP"
é obrigatória.backup:schedule
SCHEDULE
O horário de início do backup, especificado na sintaxe padrão de crontab. Padrão:
0 2 * * *
Não são do Cloud Storage
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 * * *" ...
Em que:
Propriedade Descrição namespace
YOUR_RESTORE_NAMESPACE
Namespace para restauração. Use o mesmo namespace de nome do cluster original.
cassandra:hostNetwork
hostNetwork
é obrigatório e precisa ser sempre definido comofalse
.restore:enabled
A restauração é desativada por padrão. É preciso definir essa propriedade como true
.restore:keyFile
PATH_TO_PRIVATE_KEY_FILE
O caminho no sistema de arquivos local para o arquivo de chave privada SSH (chamado
ssh_key
na etapa em que você criou o par de chaves SSH).restore:server
BACKUP_SERVER_IP
O endereço IP do servidor de backup.
restore:storageDirectory
BACKUP_DIRECTORY
O nome do diretório de backup no servidor de backup. Precisa ser um diretório dentro de
home/apigee
(o diretório de backup se chamacassandra_backup
na etapa em que você criou o diretório de backup).restore:cloudProvider
HYBRID
A propriedade
cloudProvider: "HYBRID"
é obrigatória.restore:snapshotTimestamp
TIMESTAMP
O carimbo de data/hora do snapshot de backup a ser restaurado. Para verificar quais carimbos de data/hora podem ser usados, acesse
dbStorageBucket
e observe os arquivos presentes no bucket. Cada nome de arquivo contém um valor de carimbo de data/hora. Por exemplo,backup_20210203213003_apigee-cassandra-default-0.tgz
Onde 20210203213003 é o valor
snapshotTimestamp
que você usaria se quisesse restaurar os backups criados nesse momento.backup:enabled
Defina essa propriedade como false
caso ela tenha sido definida anteriormente comotrue
.backup:keyFile
PATH_TO_PRIVATE_KEY_FILE
O caminho no sistema de arquivos local para o arquivo de chave privada SSH (chamado
ssh_key
na etapa em que você criou o par de chaves SSH).backup:server
BACKUP_SERVER_IP
O endereço IP do servidor de backup.
backup:storageDirectory
BACKUP_DIRECTORY
O nome do diretório de backup no servidor de backup. Precisa ser um diretório dentro de
home/apigee
(o diretório de backup se chamacassandra_backup
na etapa em que você criou o diretório de backup).backup:cloudProvider
HYBRID
A propriedade
cloudProvider: "HYBRID"
é obrigatória.backup:schedule
SCHEDULE
O horário de início do backup, especificado na sintaxe padrão de crontab. Padrão:
0 2 * * *
- Crie uma nova implantação híbrida de ambiente de execução. Isso criará um novo cluster do Cassandra e começará
a restaurar os dados de backup 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 do job de restauração e confirme se apigeeds
e todos os outros pods estão ativos:
- Verificação
apigeeds
:kubectl get apigeeds -n apigee
- Verifique todos os outros pods:
kubectl get pods -n apigee
Após a conclusão bem-sucedida da restauração e da confirmação de que os componentes do ambiente de execução estão íntegros, recomendamos que você configure um backup no cluster:
- Remova a configuração
restore
do arquivooverrides-restore.yaml
. - Adicione a configuração
backup
ao arquivooverrides-restore.yaml
. - Aplique a configuração
backup
com o seguinte comando:Helm
helm upgrade datastore apigee-datastore/ \ --install \ --namespace apigee \ --atomic \ -f overrides.yaml
apigeectl
./apigeectl apply -f ../overrides.yaml