Causa raíz
Al crear un volumen, Zeabur establece por defecto el mountPath del PVC en /insforge-storage (directorio raíz), pero la aplicación insforge escribe los archivos en /app/backend/insforge-storage.
La discrepancia entre estas dos rutas provoca:
- El PVC está montado en
/insforge-storage→ Es persistente, pero la aplicación no escribe ahí. - La aplicación escribe en
/app/backend/insforge-storage→ No tiene protección de PVC, es solo espacio temporal dentro del contenedor.
Cada vez que el pod se reinicia, el sistema de archivos del contenedor se restablece y los datos en /app/backend/insforge-storage desaparecen.
Solución
Verificación previa
Compruebe si hay datos en /app/backend/insforge-storage dentro del pod actual que necesiten ser preservados:
kubectl exec -n <namespace> <pod-name> -- ls -la /app/backend/insforge-storage/
Paso 1: Si hay datos, haga una copia de seguridad en el PVC
Antes de cambiar el mountPath, mientras el pod aún está activo, copie los datos en el PVC montado actualmente (/insforge-storage):
kubectl exec -n <namespace> <pod-name> -- cp -r /app/backend/insforge-storage/. /insforge-storage/
De esta forma, los datos estarán seguros en el PVC y podrá recuperarlos en la ubicación correcta después de actualizar el mountPath.
Paso 2: Modificar el mountPath del volumeMount en el Deployment
Localice el Deployment correspondiente (service-698431469758a4530cd3b774) y cambie la ruta de volumeMounts de:
mountPath: /insforge-storage
a:
mountPath: /app/backend/insforge-storage
Paso 3: Reimplementar (rollout)
Después de aplicar los cambios, permita que el pod se reinicie. El nuevo pod montará el PVC directamente en /app/backend/insforge-storage, asegurando que los datos escritos por la aplicación sean persistentes.