Nesta página, descrevemos como programar backups do Cassandra sem o Cloud Storage. Neste método, os backups são armazenados em um servidor remoto especificado por você, em vez de um bucket do Cloud Storage. A Apigee usa SSH para se comunicar com o servidor remoto.
É necessário programar os backups como jobs cron. Depois que uma programação de backup é aplicada
ao cluster híbrido, um job de backup do Kubernetes é executado periodicamente de acordo com a programação
no plano de ambiente de execução. O job interage com cada pod do Cassandra no cluster híbrido para coletar
todos os dados, criar um arquivo (compactado) dos dados e enviar o arquivo ao servidor
especificado no arquivo overrides.yaml.
As etapas a seguir incluem exemplos comuns de como concluir tarefas específicas, como criar um par de chaves SSH. Use os métodos apropriados para a instalação.
O procedimento tem as seguintes partes:
Configurar o servidor e o SSH
- Designe um servidor Linux ou Unix para seus backups. Esse servidor precisa ser acessível via SSH pelo plano do ambiente de execução da Apigee híbrida. Ele deve ter armazenamento suficiente para seus backups.
- Configure um servidor SSH ou verifique se há um servidor SSH seguro configurado.
- Crie um par de chaves SSH e armazene o arquivo da chave privada em um caminho acessível no plano do
ambiente de execução híbrido. Use uma senha em branco para o par de chaves ou o backup falhará. Exemplo:
ssh-keygen -t rsa -b 4096 -C exampleuser@example.comEnter file in which to save the key (/Users/exampleuser/.ssh/id_rsa): $APIGEE_HOME/hybrid-files/certs/ssh_key Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in ssh_key Your public key has been saved in ssh_key.pub The key fingerprint is: SHA256:DWKo334XMZcZYLOLrd/8HNpjTERPJJ0mc11UYmrPvSA exampleuser@example.com The key's randomart image is: +---[RSA 4096]----+ | +. ++X| | . . o.=.*+| | . o . . o==o | | . . . =oo+o...| | . S +E oo .| | . . .. . o .| | . . . . o.. | | . ...o ++. | | .. .. +o+. | +----[SHA256]-----+Em que: exampleuser@example.com é uma string. Qualquer string após
-Cno comandossh-keygense torna um comentário incluído na chavesshrecém-criada. A string de entrada pode ser qualquer string. Quando você usa um nome de conta no formato exampleuser@example.com, é possível identificar rapidamente qual conta corresponde à chave. - Crie uma conta de usuário no servidor de backup com o nome
apigee. Verifique se o novo usuárioapigeetem um diretório principal em/home. - No servidor de backup, crie um diretório
.sshno novo diretório/home/apigee. - Copie a chave pública (
ssh_key.pubno exemplo anterior) em um arquivo chamadoauthorized_keysno novo diretório/home/apigee/.ssh. Exemplo:cd /home/apigee
mkdir .sshcd .sshvi authorized_keys - No servidor de backup, crie um diretório de backup dentro do diretório
/home/apigee/. O diretório de backup pode ser qualquer diretório, desde que o usuárioapigeetenha acesso a ele. Exemplo:cd /home/apigee
mkdir cassandra-backup
Definir a programação e o destino do backup
Você define a programação e o destino dos backups no arquivo overrides.yaml.
- Adicione os seguintes parâmetros ao seu arquivo
overrides.yaml:Parâmetros
cassandra: backup: enabled: true 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
cassandra: backup: enabled: true keyFile: "private.key"# path relative to apigee-datastore path server: "34.56.78.90" storageDirectory: "/home/apigee/cassbackup" cloudProvider: "HYBRID" schedule: "0 2 * * *"
Em que:
Propriedade Descrição backup:enabledO backup está desativado por padrão. É preciso definir essa propriedade como true.backup:keyFilePATH_TO_PRIVATE_KEY_FILE
O caminho no sistema de arquivos local para o arquivo de chave privada SSH (chamado
ssh_keyna etapa em que você criou o par de chaves SSH). O caminho precisa ser relativo ao diretório do gráficoapigee-datastore.backup:serverBACKUP_SERVER_IP
O endereço IP do servidor de backup.
backup:storageDirectoryBACKUP_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_backupna etapa em que você criou o diretório de backup).backup:cloudProviderHYBRIDPara um backup remoto do servidor, defina a propriedade como
HYBRID.backup:scheduleSCHEDULE
O horário de início do backup, especificado na sintaxe padrão de crontab. As horas estão no fuso horário local do cluster do Kubernetes. Padrão:
0 2 * * * - Aplique a configuração de backup ao escopo de armazenamento do
cluster:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f OVERRIDES_FILE.yaml
Em que OVERRIDES_FILE é o caminho para o arquivo de substituição que você acabou de editar.
- Verifique o job de backup. Exemplo:
kubectl get cronjob -n APIGEE_NAMESPACE
NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE apigee-cassandra-backup 33 * * * * False 0 <none> 94s