Introducción
En la actualidad, Kubernetes se ha consolidado como la plataforma estándar para la orquestación de contenedores en entornos empresariales y de desarrollo de software. Su capacidad para gestionar aplicaciones distribuidas y sus recursos asociados, como los volúmenes persistentes, lo convierten en una herramienta fundamental para la innovación en la nube. Sin embargo, con esta innovación surge la necesidad crítica de garantizar la resiliencia y disponibilidad de los datos almacenados. Aquí es donde entran en juego las soluciones de copia de seguridad especializadas, que permiten proteger tanto las aplicaciones como sus datos frente a fallos, errores humanos o desastres.
Este artículo técnico se enfoca en explicar detalladamente cómo realizar copias de seguridad de volúmenes persistentes en Kubernetes utilizando Velero, una herramienta open source líder para backup y restauración en entornos Kubernetes. Exploraremos desde los conceptos básicos hasta la puesta en marcha práctica y las mejores prácticas recomendadas, con un enfoque claro, profesional y didáctico. Al finalizar esta guía, tendrás una comprensión exhaustiva para implementar copias de seguridad robustas y confiables en tu clúster Kubernetes gestionado.
¿Por qué es crucial realizar copias de seguridad en Kubernetes?
La arquitectura de Kubernetes se basa en la ejecución de aplicaciones dentro de contenedores efímeros que pueden ser replicados, escalados o reinstalados en cualquier nodo del clúster. Debido a esta naturaleza dinámica, los volúmenes persistentes son esenciales para mantener datos duraderos fuera del ciclo de vida de los pods. No obstante, esta persistencia no asegura por sí sola protección ante pérdidas de datos o corrupción.
- Riesgos operativos: Fallos en nodos, actualizaciones fallidas y errores humanos pueden ocasionar pérdida o daño en los datos almacenados.
- Recuperación ante desastres: Incidentes graves, como caídas del sistema o ataques maliciosos, demandan poder restaurar rápidamente los datos y continuar operando.
- Migraciones y copias para pruebas: Hacer copias consistentes permite mover cargas a otros entornos o crear réplicas para entornos de desarrollo.
Por lo tanto, contar con una estrategia automatizada y confiable de copias de seguridad para los volúmenes persistentes es una práctica esencial para cualquier equipo que utilice Kubernetes en producción.
¿Qué es Velero y cómo funciona?
Velero es una herramienta de código abierto diseñada específicamente para la gestión de copias de seguridad, restauración y migración de aplicaciones en Kubernetes. Se integra estrechamente con las APIs nativas y los mecanismos de almacenamiento subyacentes para simplificar el respaldo de datos y configuraciones.
Entre sus características más destacadas se encuentran:
- Realización de snapshots (instantáneas) de volúmenes persistentes.
- Almacenamiento seguro de copias en backets compatibles con S3 u otros proveedores.
- Restauración granular de recursos y volúmenes.
- Automatización de copia de seguridad en intervalos configurables.
- Soporte para migración entre clusters o versiones.
Velero aprovecha la capacidad de Kubernetes para crear snapshots de volúmenes persistentes a través de las VolumeSnapshotClasses y la Interfaz CSI (Container Storage Interface). Posteriormente, estos snapshots son exportados y almacenados en sistemas externos (backets S3), facilitando una gestión centralizada y recuperable.
Arquitectura de Velero
Velero despliega varios componentes dentro del clúster Kubernetes:
- Servidor Velero: Se ejecuta en un espacio de nombres dedicado (namespace), gestionando las operaciones de backup y restauración.
- Plugins CSI y proveedores de almacenamiento: Permiten la interacción con diferentes tecnologías de almacenamiento, como Amazon S3, MinIO, y sistemas compatibles.
- CLI (interfaz de línea de comandos): Facilita la gestión desde la terminal para crear y administrar copias de seguridad, restauraciones y configuraciones.
Requisitos previos para usar Velero en Kubernetes
Antes de instalar y configurar Velero, es importante validar que el entorno cumpla con ciertos requisitos:
- Clúster Kubernetes: Debe estar operativo y contar con soporte para snapshots volumétricos a través de CSI.
- Acceso a un proveedor de almacenamiento compatible S3: Un backet para alojar las copias de seguridad, con permisos de lectura/escritura.
- Herramienta CLI de Velero: Descargable desde la página oficial de Velero y compatible con el sistema operativo local.
- Credenciales y configuración: Ficheros con las claves de acceso y la configuración de región para el almacenamiento S3.
En entornos gestionados como el Cloud de Arsys, se proporciona soporte preconfigurado para snapshot y almacenamiento compatible que facilita este proceso.
Descarga e instalación de la herramienta de línea de comandos Velero
El primer paso consiste en obtener el cliente Velero para nuestro sistema operativo:
- Visita la página oficial de Velero y accede a la sección de descargas.
- Selecciona la versión más reciente y descarga el paquete correspondiente a Windows, macOS o Linux.
- Descomprime y mueve el ejecutable a una ubicación en tu variable PATH para facilitar su ejecución.
- Verifica la instalación ejecutando el comando
velero version
en la terminal.
Este cliente será la interfaz principal para instalar los componentes en el clúster y gestionar las copias de seguridad.
Instalación de Velero en el clúster Kubernetes
Una vez descargado el cliente, el siguiente paso es instalar Velero directamente en el clúster mediante un comando adaptado según la configuración de tu sistema de almacenamiento.

El comando base es:
velero install \ --provider aws \ --bucket k8s-backup \ --secret-file ./credentials-velero \ --backup-location-config region=us-east-1,s3ForcePathStyle="true",s3Url=https://s3.dcd.example.com \ --plugins velero/velero-plugin-for-aws:v1.7.0,velero/velero-plugin-for-csi:v0.3.0 \ --use-restic
Descripción de los parámetros importantes:
- –provider aws: Indica que utilizaremos un sistema de almacenamiento compatible con Amazon S3.
- –bucket: Nombre del backet S3 donde se guardarán las copias.
- –secret-file: Archivo con las credenciales de acceso (clave y ID).
- –backup-location-config: Configuración donde se especifica la región, URL y opciones del backet.
- –plugins: Especifica los plugins necesarios; para AWS y la integración con CSI.
- –use-restic: Activa la opción para respaldar volúmenes mediante restic si fuera necesario.
Al ejecutar este comando se desplegarán los pods y servicios necesarios en un namespace llamado velero
, que quedará encargado de todo el proceso de backup y restauración.
Archivo de credenciales para Velero
El archivo credentials-velero
debe contener los permisos necesarios para acceder al sistema S3. Su formato estándar es:
[default] aws_access_key_id= aws_secret_access_key=
Este fichero debe ser mantenido seguro y configurado para que Velero pueda leer las variables al momento de la instalación. Las credenciales deben tener permisos para put, get y list en el backet.
Configuración de la SnapshotClass en Kubernetes
Para que Velero pueda hacer snapshots efectivos de los volúmenes persistentes, debemos tener una VolumeSnapshotClass configurada y marcada para su uso.
En algunos clústeres, como el de Arsys, esta clase viene predefinida, por ejemplo, con el nombre ionos-enterprise
. Sin embargo, es necesario editarla para agregar una etiqueta que Velero reconozca y utilice automáticamente.
Este paso se realiza con el comando:
kubectl edit volumesnapshotclass ionos-enterprise
Luego, en la sección metadata.annotations
, añadiremos:
velero.io/csi-volumesnapshot-class: "true"
La anotación indica explícitamente a Velero que esta clase debe usarse para realizar snapshots automatizados.
Creación de una copia de seguridad con Velero: paso a paso
Una vez instalado y configurado Velero, ya estamos listos para llevar a cabo una copia de seguridad de un volumen persistente.
- Identifica el volumen persistente a respaldar; por ejemplo uno usado por una base de datos MongoDB.
- Ejecuta el comando para crear el backup:
velero backup create --snapshot-volumes --snapshot-timeout 20m
Este comando iniciará la creación de la instantánea y realizará el upload al backet designado.
Conviene anticipar el tamaño y la complejidad del volumen para ajustar el timeout y garantizar que el snapshot se completa.

Para monitorear el progreso, usamos:
velero backup describe
El resultado mostrará el estado – Completed, InProgress o Failed – y detalles sobre errores o advertencias.
Verificación de datos en el almacenamiento S3
Después de la ejecución exitosa del backup, podemos verificar la existencia de los archivos en el backet S3. Esto puede hacerse desde la consola del proveedor o vía herramientas de línea de comandos para S3.
Normalmente, Velero crea una estructura de carpetas organizada con los backups dentro de un directorio principal llamado backups
. Dentro encontraremos ficheros que contienen los metadatos y los datos de los snapshots realizados.
Cómo restaurar copias de seguridad con Velero
Velero no solo permite respaldar datos, sino restaurarlos íntegramente para volver a un estado conocido tras una pérdida o problema.
- Listar backups disponibles:
velero backup get
- Ejecutar restauración usando el nombre del backup:
velero restore create --from-backup
Velero inicia la restauración de los recursos y volumen desde el snapshot almacenado. Es importante asegurar que las configuraciones de destino, permisos y espacio estén preparados para la restauración.
Buenas prácticas al realizar backups y restauraciones
- Automatiza copias periódicas: Programa backups en intervalos regulares para tener clones actualizados.
- Verifica integridad: Revisa logs y estados, y prueba restauraciones periódicas.
- Protege las credenciales: Limita acceso y rotación periódica.
- Configura alertas: Para fallos en backups o restauraciones.
- Prueba en entornos de staging: Toda nueva configuración antes de aplicarla en producción.
Comparativa de soluciones de backup en Kubernetes
Característica | Velero | Stash (AppsCode) | Kasten K10 | TrilioVault |
---|---|---|---|---|
Open Source | Sí | Sí | No (Comercial con versión comunitaria) | No (Comercial) |
Integración con CSI | Sí | Sí | Sí | Sí |
Almacenamiento S3 compatible | Sí | Sí | Sí | Sí |
Interfaz gráfica | No (solo CLI) | Con extensiones | Sí | Sí |
Automatización de backups | Sí | Sí | Sí | Sí |
Palabras clave y su importancia
Velero
Velero es la piedra angular de esta guía, un robusto software open source para backup en Kubernetes que automatiza snapshots y almacenamientos remotos de volúmenes persistentes.
Backup en Kubernetes
El acto de guardar una copia confiable de la configuración y datos de un clúster es la base de la continuidad y seguridad operativa.
Snapshot
Instantánea que captura el estado exacto de un volumen en un punto temporal determinado, esencial para backups coherentes.
VolumeSnapshotClass
Recurso de Kubernetes que define la clase y parámetros para gestionar snapshots, vital para la integración con Velero.
S3
Almacenamiento compatible con Amazon S3, ampliamente adoptado por su escalabilidad para guardar backups de forma segura y accesible.
CSI
Interfaz estándar para la gestión de almacenamiento en contenedores que facilita funciones como snapshots e integración con Velero.
Restauración
Proceso de recuperar aplicaciones y datos desde un backup, fundamental para la recuperación ante fallos o desastres.

Demostración práctica: paso a paso con Velero
Para visualizar mejor el proceso descrito, te invitamos a ver el siguiente video explicativo donde se detalla la instalación, configuración y ejecución de copias con Velero en Kubernetes:
Descubre en detalle cómo instalar Velero, configurar el almacenamiento y realizar tu primera copia de seguridad con ejemplos reales, para dominar esta herramienta esencial.
Preguntas Frecuentes (FAQ)
¿Cómo hacer una copia de seguridad de un clúster K8s?
Realizar una copia de seguridad en Kubernetes implica capturar no solo los recursos del clúster (como deployments, servicios, configmaps), sino también los datos almacenados en volúmenes persistentes. Esto se logra generalmente mediante la creación de snapshots de los volúmenes, mediante el soporte de la Interfaz CSI, siempre que el proveedor de almacenamiento lo soporte. Velero es una herramienta que facilita este proceso, automatizando snapshots y almacenando los datos en backets remotos para mayor seguridad y flexibilidad.
¿Qué es Velero en Kubernetes?
Velero es una herramienta open source para la gestión de copias de seguridad, recuperación ante desastres y migración en Kubernetes. Se integra con el sistema de snapshots nativo para volúmenes y permite almacenar respaldos en sistemas S3 o similares. Su uso asegura que las aplicaciones y datos puedan ser restaurados rápidamente en caso de incidentes, contribuyendo a la continuidad del servicio.
¿Qué tipo de backup es Velero?
Velero realiza backups basados en snapshots de volúmenes persistentes y configuraciones de recursos de Kubernetes. No solo guarda copias completas, sino que también puede automatizar backups regulares y ofrecer restauraciones puntuales. Es una solución declarativa y programable, ofreciendo flexibilidad y compatibilidad con múltiples proveedores de almacenamiento, especialmente aquellos compatibles con S3.
¿Qué es una VolumeSnapshotClass y por qué es importante?
Una VolumeSnapshotClass define la forma en que Kubernetes instancia y gestiona snapshots de volúmenes persistentes. Es crucial para que Velero identifique qué clase utilizar para crear snapshots compatibles con el proveedor CSI. Sin esta definición correctamente configurada y etiquetada, Velero no podrá ejecutar los backups basados en instantáneas.
¿Puedo utilizar Velero para restaurar sólo ciertos recursos o volúmenes?
Sí, Velero permite restauraciones granuladas aplicando filtros por etiquetas, namespaces o tipos de recursos. Esto es útil para restaurar parcialmente un clúster sin afectar otros elementos, agilizando la recuperación específica y evitando downtime global.
¿Qué limitaciones tiene Velero en cuanto al tamaño de los volúmenes?
El tamaño del volumen puede influir en el tiempo que tarda el snapshot y la transferencia al backet. Para volúmenes muy grandes, se recomienda ajustar los tiempos de espera y valorar el impacto en el rendimiento. Además, Velero no comprime ni segmenta los datos automáticamente, por lo que se debe diseñar la infraestructura adecuada para manejar grandes backups.
¿Cómo asegurar la seguridad y confidencialidad de los backups en S3?
Es fundamental gestionar de forma estricta las credenciales de acceso, emplear cifrado en tránsito y reposo, y controlar los permisos mínimos necesarios en el backet S3. Adicionalmente, implementar políticas de acceso y auditoría ayudará a mantener la integridad y confidencialidad de los datos respaldados.
¿Qué hacer si el backup falla o queda en estado pendiente?
Se recomienda revisar los logs del pod Velero en el namespace correspondiente, validar configuración de plugins, credenciales y capacidades CSI. También es útil verificar el estado del VolumeSnapshotClass y la disponibilidad del backet S3. En muchos casos, pequeños errores en permisos o incompatibilidades se detectan allí para su pronta resolución.
¿Es posible migrar un clúster entre entornos con Velero?
Sí, Velero puede exportar los backups desde un clúster y restaurarlos en otro, tanto para configuraciones como para datos, facilitando migraciones y clonaciones de ambientes entre nubes o versiones.
¿Cómo monitorear el estado de los backups de forma automática?
Existen integraciones con herramientas de monitorización que consultan los estados de los backups periódicamente. Además, Velero permite emitir eventos y logs que pueden integrarse con soluciones de alertas para informar sobre fallos o éxitos de las copias.
Conclusión
Gestionar copias de seguridad en Kubernetes es una tarea crítica para asegurar la continuidad y protección de las aplicaciones y sus datos. Velero se presenta como una herramienta poderosa, flexible y ampliamente adoptada para esta función. Su integración con la arquitectura CSI y la capacidad de emplear almacenamiento S3 simplifican la gestión de backups de volúmenes persistentes y configuraciones.

Implementar Velero siguiendo las buenas prácticas descritas garantiza una solución fácil y segura para proteger tu entorno Kubernetes. Si necesitas acompañamiento profesional para adoptar estas tecnologías en tu infraestructura, en Código6 contamos con la experiencia y el conocimiento para ayudarte a diseñar y ejecutar este tipo de soluciones.
Contactanos para comenzar tu proyecto hoy y asegura la integridad de tus datos en Kubernetes con el respaldo experto de nuestro equipo.
Leave A Comment