Penyebab Utama
Saat membuat volume, Zeabur menetapkan mountPath PVC secara default ke /insforge-storage (direktori root), namun aplikasi insforge sebenarnya menulis file ke /app/backend/insforge-storage.
Ketidaksesuaian antara kedua path ini menyebabkan:
- PVC terpasang di
/insforge-storage→ Persisten, tetapi aplikasi tidak menulis di sana. - Aplikasi menulis ke
/app/backend/insforge-storage→ Tidak ada perlindungan PVC, hanya ruang sementara di dalam container.
Setiap kali pod restart, filesystem container diatur ulang, dan data di /app/backend/insforge-storage hilang.
Solusi
Pengecekan Awal
Periksa apakah ada data di /app/backend/insforge-storage di dalam pod saat ini yang perlu disimpan:
kubectl exec -n <namespace> <pod-name> -- ls -la /app/backend/insforge-storage/
Langkah 1: Jika ada data, cadangkan ke PVC
Sebelum mengubah mountPath, selagi pod masih berjalan, salin data ke PVC yang saat ini terpasang (/insforge-storage):
kubectl exec -n <namespace> <pod-name> -- cp -r /app/backend/insforge-storage/. /insforge-storage/
Dengan cara ini, data tersimpan dengan aman di PVC, dan Anda dapat mengambilnya kembali di lokasi yang benar setelah mountPath diperbarui.
Langkah 2: Ubah mountPath pada volumeMount Deployment
Temukan Deployment yang sesuai (service-698431469758a4530cd3b774), dan ubah path volumeMounts dari:
mountPath: /insforge-storage
menjadi:
mountPath: /app/backend/insforge-storage
Langkah 3: Rollout ulang
Setelah menerapkan perubahan, biarkan pod restart. Pod baru akan memasang PVC langsung ke /app/backend/insforge-storage, sehingga data yang ditulis oleh aplikasi akan benar-benar persisten.