Cloud Native: Cómo proteger tus datos y recursos de Kubernetes con Velero
Velero fue creado en 2017 por el equipo de Heptio, una empresa de software que se centraba en la creación de herramientas para Kubernetes.
Velero fue creado en 2017 por el equipo de Heptio, una empresa de software que se centraba en la creación de herramientas para Kubernetes. En ese momento, el equipo de Heptio se dio cuenta de que no había una solución de backup y restauración para Kubernetes que fuera fácil de usar y escalable. Así que decidieron crear su propia solución, que más tarde se convertiría en Velero.
Después de su lanzamiento, Velero ganó rápidamente popularidad entre los desarrolladores y empresas que utilizaban Kubernetes. En 2019, Heptio fue adquirida por VMware, lo que permitió a Velero expandirse y mejorar su tecnología. Hoy en día, Velero es una de las soluciones de backup y restauración más populares para Kubernetes, utilizada por cientos de empresas y organizaciones alrededor del mundo.
ISV que han integrado o utilizado la tecnología de Velero:
- VMware: VMware es el propietario de Heptio y Velero, y utiliza la tecnología de Velero en sus propias soluciones de cloud native.
- Pivotal: Pivotal es una empresa de software que se centra en la creación de aplicaciones en la nube, y utiliza la tecnología de Velero para proteger sus propias aplicaciones.
- Hewlett Packard Enterprise (HPE): HPE es una empresa de tecnología que ofrece soluciones de cloud native, y ha integrado la tecnología de Velero en sus propias soluciones.
- Dell EMC: Dell EMC es una empresa de tecnología que ofrece soluciones de storage y backup, y ha integrado la tecnología de Velero en sus propias soluciones.
Componentes de Velero
Velero consta de varios componentes que trabajan juntos para proporcionar una solución de backup y restauración completa:
- Velero Server: Es el componente principal de Velero que se encarga de gestionar los backups y restauraciones. Se ejecuta en el clúster de Kubernetes y se comunica con los demás componentes de Velero.
- Velero Agent: Es un agente que se ejecuta en cada nodo del clúster de Kubernetes y se encarga de recopilar información sobre los recursos del clúster y enviarla al Velero Server.
- Velero Plugin: Es un plugin que se encarga de interactuar con los diferentes proveedores de almacenamiento y de backup.
Velero ofrece varias ventajas, incluyendo:
- Backup y restauración de recursos: Velero puede backup y restaurar recursos de Kubernetes, incluyendo pods, deployments, servicios, Persistent Volumes (PV) y más.
- Compatibilidad con diferentes proveedores de almacenamiento: Velero admite diferentes proveedores de almacenamiento, como AWS S3, GCS, Azure Blob Storage y más.
- Flexibilidad y escalabilidad: Velero se puede configurar para trabajar con clústeres de Kubernetes de cualquier tamaño y puede escalarse según sea necesario.
Ejemplos
Ejemplo básico (sin PersistentVolumes)
Ejemplo de snapshot (con PersistentVolumes)
Después de configurar el servidor de Velero, puedes clonar los ejemplos utilizados en las secciones siguientes ejecutando el siguiente comando:
git clone https://github.com/vmware-tanzu/velero.git
cd velero
Ejemplo básico (sin PersistentVolumes)
Inicia la aplicación de nginx de ejemplo:
kubectl apply -f examples/nginx-app/base.yaml
Crea un backup:
velero backup create nginx-backup --include-namespaces nginx-example
Simula un desastre:
kubectl delete namespaces nginx-example
Espera a que el namespace sea eliminado.
Restaura tus recursos perdidos:
velero restore create --from-backup nginx-backup
Ejemplo de snapshot (con PersistentVolumes)
Nota: Para Azure, debes ejecutar una versión de Kubernetes 1.7.2 o posterior para admitir el snapshot de discos administrados.
Inicia la aplicación de nginx de ejemplo:
kubectl apply -f examples/nginx-app/with-pv.yaml
Crea un backup con snapshot de PV:
velero backup create nginx-backup --include-namespaces nginx-example
Simula un desastre:
kubectl delete namespaces nginx-example
Porque la política de reclamación predeterminada para PVs dinámicamente provisionados es “Delete”, estos comandos deberían desencadenar la eliminación del disco que respalda el PV en tu proveedor de nube. La eliminación es asincrónica, por lo que esto puede tomar algún tiempo. Antes de continuar con el siguiente paso, verifica tu proveedor de nube para confirmar que el disco ya no existe.
Restaura tus recursos perdidos:
velero restore create --from-backup nginx-backup