Copiar archivos de un pod a tu pc local y desde tu pc a un pod

Published:

En el mundo de Kubernetes, manejar bases de datos dentro de contenedores puede ser un desafío, especialmente cuando se trata de realizar backups y restauraciones. En este artículo, te mostraremos cómo conectarte a un pod que ejecuta PostgreSQL, realizar un dump de la base de datos, transferir el archivo a tu PC, y luego restaurarlo en otro pod. Vamos a desglosar el proceso paso a paso.

1. Conectarse al Pod de PostgreSQL

Para realizar una copia de seguridad, primero necesitas acceder al pod que está ejecutando PostgreSQL. Utiliza el comando kubectl exec para obtener acceso al contenedor del pod:

kubectl exec -it <nombre-del-pod> -n <namespace> -- bash

Aquí, <nombre-del-pod> es el nombre del pod donde está ejecutándose PostgreSQL. Puedes encontrar el nombre del pod usando:

kubectl get pods

2. Realizar un Dump de la Base de Datos

Una vez dentro del contenedor, utiliza el comando pg_dump para generar un dump de la base de datos. Asegúrate de tener los detalles de conexión correctos (usuario, base de datos y host). Aquí hay un ejemplo:

pg_dump -U <usuario> -h localhost <nombre-base-de-datos> > /tmp/backup.dump

Este comando creará un archivo backup.dump en el directorio /tmp del contenedor.

3. Copiar el Archivo Backup a Tu PC

Para transferir el archivo dump desde el pod a tu máquina local, usa el comando kubectl cp:

kubectl cp <namespace>/<nombre-del-pod>:/tmp/backup.dump /ruta/local/backup.dump

Reemplaza /ruta/local/backup.dump con la ruta en tu máquina local donde quieres guardar el archivo.

3.1- Otra forma de usarlo

kubectl cp -n <namespace> <pod-name>:<path> <destination-on-local-system>

4. Copiar el Archivo Backup a Otro Pod

Para restaurar la base de datos en otro pod, primero necesitas copiar el archivo dump al nuevo pod. Usa el siguiente comando:

kubectl cp /ruta/local/backup.dump <namespace>/<nombre-del-nuevo-pod>:/tmp/backup.dump

5. Restaurar la Base de Datos en el Nuevo Pod

Accede al nuevo pod con kubectl exec:

kubectl exec -it <nombre-del-nuevo-pod> -n <namespace> -- bash

Luego, usa el comando pg_restore para restaurar el dump en la base de datos deseada. Aquí está el comando para restaurar el dump:

pg_restore -U <usuario> -d <nombre-base-de-datos> /tmp/backup.dump

Consideraciones Adicionales

  • Seguridad: Asegúrate de que el archivo de backup sea transferido de manera segura y que los permisos de acceso sean manejados adecuadamente.
  • Espacio en Disco: Verifica que haya suficiente espacio en disco tanto en el pod de origen como en el de destino para el archivo de backup.
  • Consistencia de Datos: Es una buena práctica realizar los backups durante periodos de baja actividad para evitar inconsistencias en los datos.

Conclusión

Gestionar backups y restauraciones de bases de datos en un entorno de Kubernetes puede parecer complicado al principio, pero con los comandos adecuados y una buena planificación, es un proceso manejable. Siguiendo estos pasos, puedes asegurar la integridad de tus datos y realizar transferencias entre pods sin problemas.

- Advertisement -
Jorge
Jorgehttps://nksistemas.com
Soy Jorge, Sr Sysadmin Linux/DevOps/SRE y creador de NKSistemas.com Trabajo con plataformas: Linux, Windows, AWS, GCP, VMware, Helm, kubernetes, Docker, etc.

Related articles