Velero: Programar copias de seguridad en Kubernetes
Hace unos días os hablé de la excelente herramienta de copias de seguridad para Kubernetes, llamada Velero. En esa entrada os comenté lo fácil de su instalación y primera configuración., utilizando como almacenaje MinIO dentro un entorno de Kubernetes con K3S. Pues bien, hoy quiero seguir hablando de Velero, pero en este caso sobre como programar las copias de seguridad.
Antes de continuar, os quiero recordar que el entorno con Kubernetes lo tengo creado en mi proveedor de confianza Clouding.io. Que como sabéis hace muchos años que trabajo con ellos, y siempre me han dado un servicio excelente.
Programar copias de seguridad en Kubernetes con Velero
La verdad es que es bastante sencillo, ya que recuerda bastante a como se programan tareas en sistemas tipo UNIX o GNU/Linux, mediante cron y crontab.
Tal y como vimos en la entrada anterior, para trabajar con la herramienta, por ejemplo para crear una copia de seguridad manual, sería así:
velero backup create copia-seguridad-ejemplo --include-namespaces nombres-de-los-namespace
Esto sería la manual, si queremos programar una, sería similar a esto:
velero schedule create ejemplo-copia-programada --schedule="0 * * * *" --include-namespaces nombre-de-los-namepsace
También se podría programar así:
velero schedule create ejemplo-copia-cada-hora --schedule="@hourly" --selector app="seleccionamos las apps"
Aunque estén programadas, también se pueden activar de forma manual:
velero backup create --from-schedule copia-seguridad-ejemplo
Vamos a crear una copia de ejemplo, para este caso veamos primero los espacios de nombres que tenemos disponibles:
operador@servmaster:~/drupal-in-k3s# kubectl get namespaces NAME STATUS AGE cert-manager Active 16d default Active 16d drupal1 Active 23m kube-node-lease Active 16d kube-public Active 16d kube-system Active 16d minio-dev Active 5d23h velero Active 5d23
Tal y como se observa tenemos un buen puñado de espacios de nombres, crearemos un bakcup diario, que se ejecutará a las tres de la mañana:
velero schedule create daily --schedule="0 3 * * *"" \ --include-namespaces cert-manager,default,kube-node-lease,\ kube-public,kube-system
Con el resultado:
Schedule "daily" created successfully
Veamos si la programación aparece en la lista:
velero get schedule
Con el resultado, en mi caso:
Vamos a forzar su ejecución, así:
velero backup create --from-schedule daily
Con el resultado:
Tal y como nos indica el mensaje, podemos comprobar el estado del backup con el comando y parámetro «velero backup describe«, tal que así:
Si añadimos el parámetro «–details» no aparecerá la información ampliada.
Y si queremos ver todos los backup que ya se han hecho:
velero get backup
En mi caso:
Si tenemos alguna duda, también podemos consultar el panel web de MinIO:
También podemos borrar los backup, lo haríamos así:
velero delete backup "nombre del backup"
Y es todo por hoy. Os recuerdo que podéis consultar la documentación oficial en inglés: Velero Documentation