Esta página descreve como agendar cópias de segurança para o Cassandra sem o Cloud Storage. Neste método, as cópias de segurança são armazenadas num servidor remoto especificado por si, em vez de num contentor do Cloud Storage. O Apigee usa o SSH para comunicar com o servidor remoto.
Tem de agendar as cópias de segurança como tarefas cron
. Depois de aplicar uma programação de cópias de segurança ao cluster híbrido, é executada periodicamente uma tarefa de cópia de segurança do Kubernetes de acordo com a programação no plano de tempo de execução. A tarefa interage com cada pod do Cassandra no seu cluster híbrido para recolher todos os dados, criar um ficheiro de arquivo (comprimido) dos dados e enviar o arquivo para o servidor especificado no seu ficheiro overrides.yaml
.
Os passos seguintes incluem exemplos comuns para concluir tarefas específicas, como criar um par de chaves SSH. Use os métodos adequados à sua instalação.
O procedimento tem as seguintes partes:
Configure o servidor e o SSH
- Designe um servidor Linux ou Unix para as suas cópias de segurança. Este servidor tem de estar acessível através de SSH a partir do plano de tempo de execução híbrido do Apigee. Tem de ter armazenamento suficiente para as suas cópias de segurança.
- Configure um servidor SSH no servidor ou certifique-se de que tem um servidor SSH seguro configurado.
- Crie um par de chaves SSH e armazene o ficheiro de chave privada num caminho acessível a partir do plano de tempo de execução híbrido. Tem de usar uma palavra-passe em branco para o seu par de chaves, caso contrário, a cópia de segurança falha. Por exemplo:
ssh-keygen -t rsa -b 4096 -C exampleuser@example.com
Enter 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 que siga
-C
no comandossh-keygen
torna-se um comentário incluído na chavessh
recém-criada. A string de entrada pode ser qualquer string. Quando usa um nome de conta no formato exampleuser@example.com, pode identificar rapidamente a conta associada à chave. - Crie uma conta de utilizador no servidor de cópias de segurança com o nome
apigee
. Certifique-se de que o novo utilizadorapigee
tem um diretório pessoal em/home
. - No servidor de cópia de segurança, crie um diretório
.ssh
no novo diretório/home/apigee
. - Copie a chave pública (
ssh_key.pub
no exemplo anterior) para um ficheiro com o nomeauthorized_keys
no novo diretório/home/apigee/.ssh
. Por exemplo:cd /home/apigee
mkdir .ssh
cd .ssh
vi authorized_keys
- No servidor de cópias de segurança, crie um diretório de cópias de segurança no diretório
/home/apigee/
. O diretório de cópia de segurança pode ser qualquer diretório, desde que o utilizadorapigee
tenha acesso ao mesmo. Por exemplo:cd /home/apigee
mkdir cassandra-backup
Defina a programação e o destino da cópia de segurança
Define o horário e o destino das cópias de segurança no ficheiro overrides.yaml
.
- Adicione os seguintes parâmetros ao ficheiro
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 * * *"
Onde:
Propriedade Descrição backup:enabled
A cópia de segurança está desativada por predefinição. Tem de definir esta propriedade como true
.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). Este caminho tem de ser relativo ao diretório do gráficoapigee-datastore
.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
Para uma cópia de segurança do servidor remoto, defina a propriedade como
HYBRID
.backup:schedule
SCHEDULE
A hora em que a cópia de segurança começa, especificada na sintaxe crontab padrão. As horas estão no fuso horário local do cluster Kubernetes. Predefinição:
0 2 * * *
- Aplique a configuração da cópia de segurança ao âmbito de armazenamento do seu cluster:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f OVERRIDES_FILE.yaml
Em que OVERRIDES_FILE é o caminho para o ficheiro de substituições que acabou de editar.
- Valide a tarefa de cópia de segurança. Por exemplo:
kubectl get cronjob -n APIGEE_NAMESPACE
NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE apigee-cassandra-backup 33 * * * * False 0 <none> 94s