- v1.15 (última)
- v1.14
- v1.13
- Lista de versiones admitidas
- v1.12
- v1.11
- v1.10
- v1.9
- v1.8
- v1.7
- Versión 1.6
- v1.5
- Versión 1.4
- Versión 1.3
- v1.2
- v1.1
Versiones compatibles:
Versiones no compatibles:
En esta sección se explica cómo configurar la copia de seguridad y la recuperación de tu base de datos de Cassandra con ssh
y tu sistema de archivos en lugar de usar Google Cloud. Consulta también:
¿Qué es la copia de seguridad y la recuperación de Cassandra con almacenamiento personalizado?
La copia de seguridad con almacenamiento personalizado almacena copias de seguridad de tu base de datos de Cassandra en archivos comprimidos del sistema de archivos de un servidor que especifiques. Las copias de seguridad se realizan según la programación que especifiques en el archivo de anulaciones. La conexión al servidor se realiza mediante SSH seguro.
Configurar copias de seguridad sin servicios en la nube
En los pasos que se indican a continuación se incluyen ejemplos habituales para completar tareas específicas, como crear un par de claves SSH. Usa los métodos que sean adecuados para tu instalación.
El procedimiento consta de las siguientes partes:
- Configurar el servidor y SSH
- Definir la programación y el destino de la copia de seguridad
- Configurar la recuperación
Configurar el servidor y SSH
- Designa un servidor Linux o Unix para tus copias de seguridad. Se debe poder acceder a este servidor mediante SSH desde tu plano de tiempo de ejecución de Apigee hybrid. Debe tener suficiente almacenamiento para tus copias de seguridad.
- Configura un servidor SSH en el servidor o asegúrate de que tenga configurado un servidor SSH seguro.
- Crea un par de claves SSH y almacena el archivo de clave privada en una ruta a la que se pueda acceder desde tu plano de ejecución híbrido. Debes usar una contraseña en blanco para tu par de claves o la copia de seguridad fallará. Por ejemplo:
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]-----+ - Crea una cuenta de usuario en el servidor de copia de seguridad con el nombre
apigee
. Asegúrate de que el nuevo usuario deapigee
tenga un directorio principal en/home
. - En el servidor de copia de seguridad, crea un directorio
ssh
en el nuevo directorio/home/apigee
. - Copia la clave pública (
ssh_key.pub
en el ejemplo anterior) en un archivo llamadoauthorized_keys
en el nuevo directorio/home/apigee/ssh
. Por ejemplo:cd /home/apigee
mkdir .ssh
cd .ssh
vi authorized_keys
- En el servidor de copia de seguridad, crea un directorio de copia de seguridad en el directorio
/home/apigee/
. El directorio de copia de seguridad puede ser cualquier directorio, siempre que el usuario deapigee
tenga acceso a él. Por ejemplo:cd /home/apigee
mkdir cassandra-backup
- Prueba la conexión. Debes asegurarte de que tus pods de Cassandra puedan conectarse a tu servidor de copias de seguridad mediante SSH:
- Inicia sesión en el shell de tu pod de Cassandra. Por ejemplo:
kubectl exec -it -n apigee APIGEE_CASSANDRA_DEFAULT_0 -- /bin/bash
Donde APIGEE_CASSANDRA_DEFAULT_0 es el nombre de un pod de Cassandra. Cambia este valor por el nombre del pod al que quieras conectarte.
- Conéctate a tu servidor de copia de seguridad mediante SSH con la dirección IP del servidor:
ssh apigee@BACKUP_SERVER_IP
- Inicia sesión en el shell de tu pod de Cassandra. Por ejemplo:
Definir la programación y el destino de la copia de seguridad
Tú decides la programación y el destino de las copias de seguridad en tu archivo overrides.yaml
.
- Añade los siguientes parámetros al archivo
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"
Ejemplo
cassandra: backup: enabled: true 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 * * *"
Donde:
Propiedad Descripción backup:enabled
La copia de seguridad está inhabilitada de forma predeterminada. Debe asignar el valor true
a esta propiedad.backup:keyFile
PATH_TO_PRIVATE_KEY_FILE
La ruta del archivo de clave privada SSH en tu sistema de archivos local (llamado
ssh_key
en el paso en el que creaste el par de claves SSH).backup:server
BACKUP_SERVER_IP
La dirección IP de tu servidor de copia de seguridad.
backup:storageDirectory
BACKUP_DIRECTORY
Nombre del directorio de la copia de seguridad en el servidor de copias de seguridad. Debe ser un directorio de
home/apigee
(el directorio de copia de seguridad se llamacassandra_backup
en el paso en el que creaste el directorio de copia de seguridad).backup:cloudProvider
HYBRID
La propiedad
cloudProvider: "HYBRID"
es obligatoria.backup:schedule
SCHEDULE
Hora en la que se inicia la copia de seguridad, especificada en la sintaxis estándar de crontab. Predeterminado:
0 2 * * *
- Usa
apigeectl
para aplicar la configuración de la copia de seguridad al ámbito de almacenamiento de tu clúster:$APIGEECTL_HOME/apigeectl --datastore -f YOUR_OVERRIDES_FILE
Donde YOUR_OVERRIDES_FILE es la ruta del archivo de anulaciones que acabas de editar.
Configurar restauración
La restauración toma los datos de la ubicación de la copia de seguridad y los restaura en un nuevo clúster de Cassandra con el mismo número de nodos. No se toman datos del clúster de Cassandra antiguo.
Las instrucciones de restauración que se indican a continuación son para implementaciones de una sola región que no usan Google Cloud Storage para las copias de seguridad. Para otras implementaciones, consulta lo siguiente:
- En el caso de las implementaciones de una sola región que usan Google Cloud Storage para las copias de seguridad, consulta el artículo sobre la copia de seguridad y la recuperación de Cassandra.
- Para obtener información sobre los despliegues multirregionales, consulta el artículo sobre despliegues multirregionales en GKE y GKE On-Prem.
Para restaurar copias de seguridad de Cassandra, sigue estos pasos:
- Crea un espacio de nombres en el clúster de Kubernetes que se usará para restaurar la implementación del runtime híbrido. No uses el nombre del espacio de nombres original para el nuevo. No utilice el espacio de nombres antiguo para la restauración.
-
En el directorio raíz de la instalación híbrida, crea un archivo
overrides-restore.yaml
. -
Copia la configuración completa de Cassandra del archivo
overrides.yaml
original en el nuevo archivooverrides-restore.yaml
. Por ejemplo:cp ./overrides.yaml ./overrides-restore.yaml
- Añade un elemento de espacio de nombres al nuevo archivo
overrides-restore.yaml
.Parámetros
namespace: YOUR_RESTORE_NAMESPACE cassandra: ... 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: "BACKUP_TO_RESTORE" ...
Ejemplo
namespace: cassandra-restore cassandra: 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"
- Cambia la etiqueta
app
en cualquier nodo de Cassandra del espacio de nombres antiguo ejecutando el siguiente comando:kubectl label pods --overwrite --namespace=OLD_NAMESPACE -l app=apigee-cassandra app=apigee-cassandra-old
- Crea un nuevo despliegue de tiempo de ejecución híbrido. De esta forma, se creará un clúster de Cassandra y se empezarán a restaurar los datos de la copia de seguridad en el clúster:
./apigeectl init -f ../overrides-restore.yaml
./apigeectl apply -f ../overrides-restore.yaml
-
Una vez completada la restauración, el tráfico debe cambiarse para usar el clúster de Cassandra en el nuevo espacio de nombres. Ejecuta los siguientes comandos para cambiar el tráfico:
kubectl get rs -n OLD_NAMESPACE # look for the 'apigee-connect' replicaset
kubectl patch rs -n OLD_NAMESPACE APIGEE_CONNECT_RS_NAME -p '{"spec":{"replicas" : 0}}'
- Una vez que se haya completado el cambio de tráfico, puedes volver a configurar las copias de seguridad en el clúster restaurado
quitando la configuración de
restore
y añadiendo la configuración debackup
al archivooverrides-restore.yaml
. Sustituye YOUR_RESTORE_NAMESPACE por el nuevo nombre de espacio de nombres creado en el paso 1.namespace: YOUR_RESTORE_NAMESPACE cassandra: ... backup: enabled: true serviceAccountPath: SA_JSON_FILE_PATH dbStorageBucket: CLOUD_STORAGE_BUCKET_PATH schedule: BACKUP_SCHEDULE_CODE ...
A continuación, aplica la configuración
backup
con el siguiente comando:./apigeectl apply -f ../overrides-restore.yaml
Donde:
Propiedad | Descripción |
---|---|
namespace |
YOUR_RESTORE_NAMESPACE El nombre del nuevo espacio de nombres que has creado en el paso 1 para el nuevo clúster de Cassandra. No uses el mismo espacio de nombres que usaste para tu clúster original. |
restore:enabled |
La restauración está inhabilitada de forma predeterminada. Debe asignar el valor true a esta propiedad. |
restore:keyFile |
PATH_TO_PRIVATE_KEY_FILE La ruta del archivo de clave privada SSH (llamado |
restore:server |
BACKUP_SERVER_IP La dirección IP de tu servidor de copia de seguridad. |
restore:storageDirectory |
BACKUP_DIRECTORY Nombre del directorio de la copia de seguridad en el servidor de copias de seguridad.
Debe ser un directorio de |
restore:cloudProvider |
La propiedad |
restore:snapshotTimestamp |
BACKUP_TO_RESTORE La copia de seguridad específica que quieres restaurar, especificada en sintaxis crontab estándar (no se permiten comodines). |