- 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:
A partir de Apigee hybrid 1.9, puedes crear copias de seguridad y restaurar tus datos híbridos mediante las instantáneas de CSI (interfaz de almacenamiento de contenedores). La copia de seguridad de CSI genera snapshots de disco y los almacena como datos cifrados en el almacenamiento en la nube. La copia de seguridad de CSI no necesita un segmento de Google Cloud Storage ni un servidor remoto para almacenar datos de copia de seguridad.
Se recomienda usar copias de seguridad de CSI en instancias híbridas alojadas en Google Cloud, AWS o Azure.
En esta página se describen los pasos para usar la copia de seguridad y la restauración de CSI híbridas. Para obtener una descripción general de la copia de seguridad y la restauración híbridas, consulta el artículo Descripción general de la copia de seguridad y la restauración de Cassandra.
Limitaciones de las copias de seguridad y la restauración
Ten en cuenta estas limitaciones al usar la copia de seguridad y la restauración de CSI:
- El controlador de CSI que usa la clase de almacenamiento configurada debe admitir las copias de seguridad de CSI. Consulta esta lista de controladores CSI de Kubernetes para obtener información sobre los controladores.
- No todas las plataformas son compatibles. Solo se admiten las plataformas Google Cloud, AWS y Azure.
- No se admite la plataforma de contenedores OpenShift debido a limitaciones de las copias de seguridad de volúmenes.
- Solo se admiten plataformas en la nube. No se admiten plataformas locales.
- Los datos de copia de seguridad de CSI y los datos de copia de seguridad híbrida que no son de CSI no son compatibles. Las copias de seguridad que no son de CSI no se pueden usar con la restauración de CSI, y las copias de seguridad de CSI no se pueden usar con la restauración que no es de CSI.
- La instalación y la funcionalidad del controlador de CSI son responsabilidad del proveedor del controlador de CSI.
- Los usuarios son responsables de asegurarse de que haya recursos de clúster suficientes para aprovisionar las copias de seguridad de CSI.
- Los usuarios son responsables de eliminar los datos de las capturas antiguas.
Configurar copias de seguridad de CSI
Para programar copias de seguridad híbridas con CSI, sigue estos pasos:
- Si no has configurado previamente la copia de seguridad híbrida:
- Ejecuta el siguiente comando
create-service-account
para crear una cuenta de servicio (SA) de Google Cloud con el rol estándarroles/storage.objectAdmin
. Este rol de SA te permite escribir datos de copias de seguridad en Cloud Storage. Ejecuta el siguiente comando en el directoriohybrid-base-directory/hybrid-files
: Este comando crea una cuenta de servicio llamada./tools/create-service-account --env non-prod --dir ./service-accounts
apigee-non-prod
para usarla en entornos que no son de producción y coloca el archivo de claves descargado en el directorio./service-accounts
. Para obtener más información sobre las cuentas de servicio de Google Cloud, consulta el artículo sobre cómo crear y gestionar cuentas de servicio. - El comando
create-service-account
guarda un archivo JSON que contiene la clave privada de la cuenta de servicio. El archivo se guarda en el mismo directorio en el que se ejecuta el comando. Necesitarás la ruta a este archivo en los pasos siguientes.
- Ejecuta el siguiente comando
- Abre el archivo
overrides.yaml
. Define los siguientes parámetros, como se muestra en Ejemplos de archivos de anulaciones.- Defina los parámetros generales que se muestran a continuación en el bloque
backup
. Si ya has definido estos parámetros para la solución de copia de seguridad híbrida que no es de CSI, puedes usar los mismos parámetros para tus copias de seguridad de CSI. Consulta la tabla de referencia de las propiedades de copia de seguridad para obtener más información sobre cada valor.
Para
backup
:- enabled: asigna el valor
true
para habilitar las copias de seguridad programadas. - pullPolicy en image: se ha definido como
Always
. - serviceAccountPath: la ruta a la cuenta de servicio.
- schedule: proporciona una programación de expresiones cron.
- enabled: asigna el valor
- Defina estos parámetros para la copia de seguridad específica de CSI:
- Valores del grupo de almacenamiento de Cassandra: la clase de almacenamiento de Cassandra configurada debe admitir las copias de seguridad de CSI para que la copia de seguridad y la restauración de CSI funcionen. Para comprobar si una clase de almacenamiento admite las copias de seguridad de CSI, ejecuta el siguiente comando para obtener las clases de almacenamiento disponibles:
Consulta el resultado de "Provisioner" de cada clase de almacenamiento. Los provisionadores que usan CSI suelen tener la parte ".csi." en su nombre, como "pd.csi.storage.gke.io". Busca el nombre del aprovisionador en esta lista de controladores CSI de Kubernetes. Si la columna "Otras funciones" del aprovisionador contiene la palabra "SNAPSHOT", la clase de almacenamiento que usa el aprovisionador admite las instantáneas de CSI.kubectl get sc
Añade estos parámetros al grupo de almacenamiento. Ambos valores son obligatorios.
- storageclass: nombre de una clase de almacenamiento habilitada para instantáneas de CSI.
- capacity: capacidad del disco.
- Tipo de proveedor de servicios en la nube:
Una vez que se haya verificado la función de creación de copias de seguridad de CSI, modifica el archivo de anulaciones para usar la copia de seguridad y la restauración de CSI:
- cloudProvider: asigna el valor
cloudProvider
abackup
yrestore
aCSI
.
- cloudProvider: asigna el valor
- Valores del grupo de almacenamiento de Cassandra: la clase de almacenamiento de Cassandra configurada debe admitir las copias de seguridad de CSI para que la copia de seguridad y la restauración de CSI funcionen. Para comprobar si una clase de almacenamiento admite las copias de seguridad de CSI, ejecuta el siguiente comando para obtener las clases de almacenamiento disponibles:
- Defina los parámetros generales que se muestran a continuación en el bloque
Ejemplo de configuración de copia de seguridad
En esta sección se muestran las partes relacionadas con la copia de seguridad de un archivooverrides.yaml
de ejemplo.
cassandra: hostNetwork: false replicaCount: 3 storage: storageclass: standard-rwo capacity: 100Gi image: pullPolicy: Always backup: enabled: true image: pullPolicy: Always serviceAccountPath: "/Users/myuser/apigee-hybrid/hybrid-files/service-accounts/mycompany-hybrid-apigee-cassandra.json" cloudProvider: "CSI" schedule: "0 * * 11 *"
Iniciar una copia de seguridad manual
Las copias de seguridad de CSI se generan automáticamente según la programación cron definida en el archivo overrides.yaml
.
Para iniciar una copia de seguridad manual de CSI, usa este comando:
kubectl create job -n apigee --from=cronjob/apigee-cassandra-backup backup-pod-name
backup-pod-name
es el nombre del pod de copia de seguridad que se creará.
Verificar copias de seguridad
Una forma de comprobar si se ha creado una copia de seguridad correctamente es consultar las copias de seguridad de volúmenes del clúster de Kubernetes con este comando:
kubectl get volumesnapshot -n apigee
El resultado muestra la lista actual de las copias de seguridad del clúster. El proceso de copia de seguridad de CSI crea una instantánea de cada disco de Cassandra. El número de copias debe coincidir con el número total de pods de Cassandra del clúster.
Restaurar una copia de seguridad
Sigue este proceso para restaurar una copia de seguridad de CSI generada anteriormente. Para obtener información general sobre la restauración de copias de seguridad y una descripción general del proceso, consulta la página de descripción general de la restauración.
Para iniciar una restauración de una copia de seguridad de CSI, sigue las instrucciones de la restauración híbrida de una sola región que no sea de CSI, pero usa estos valores en el bloque restore
de tu overrides.yaml
.
Consulta la tabla de referencia de las propiedades de copia de seguridad para obtener más información sobre cada valor y el ejemplo de configuración de restauración.
- enabled: asigna el valor
true
para habilitar la restauración de la copia de seguridad a la que se hace referencia con la marca de tiemposnapshotTimestamp
. - snapshotTimestamp: proporciona la marca de tiempo de una copia de seguridad de CSI anterior.
- serviceAccountPath: la ruta a la cuenta de servicio.
- pullPolicy en image: se ha definido como
Always
.
Para encontrar el valor de snapshotTimestamp
que quieres restaurar, ejecuta este comando para obtener la lista de las capturas disponibles:
kubectl get volumesnapshot -n apigee
pvc-us-west2-b-20220803004907-47beff0e306d8861
20220803004907
.
Ejemplo de configuración de restauración
En esta sección se muestran las partes relacionadas con la restauración de un archivooverrides.yaml
de ejemplo.
cassandra: hostNetwork: false replicaCount: 3 storage: storageclass: standard-rwo capacity: 100Gi image: pullPolicy: Always restore: enabled: true snapshotTimestamp: "20220908222130" serviceAccountPath: "/Users/myuser/apigee-hybrid/hybrid-files/service-accounts/mycompany-hybrid-apigee-cassandra.json" cloudProvider: "CSI" image: pullPolicy: Always
Migrar a la copia de seguridad y restauración de CSI
Si no has usado antes la copia de seguridad y restauración híbridas, puedes seguir las instrucciones de Configurar copias de seguridad de CSI para crear copias de seguridad de CSI sin seguir los pasos de esta sección. En estos pasos se explica cómo migrar de la solución de copia de seguridad y restauración que no es de CSI a las copias de seguridad de CSI.
- Genera una nueva copia de seguridad con el método de copia de seguridad no CSI configurado.
- Cambia la configuración de copia de seguridad del archivo híbrido
overrides.yaml
para usar las anulaciones de copia de seguridad de CSI, tal como se muestra en el ejemplo de configuración de copia de seguridad. - Aplica los cambios del archivo
overrides.yaml
:
$APIGEECTL_HOME/apigeectl apply -f YOUR_OVERRIDES_FILE
- Verifica el trabajo de copia de seguridad:
kubectl get cronjob -n apigee
- Una vez que se haya completado una tarea de copia de seguridad, comprueba que se hayan creado las instantáneas. El número de
las copias de seguridad generadas debe ser equivalente al número de nodos de Cassandra de la instancia híbrida.
kubectl get volumesnapshot -n apigee