근본 원인
Zeabur는 볼륨 생성 시 PVC의 mountPath를 기본적으로 /insforge-storage(루트 디렉토리)로 설정하지만, insforge 애플리케이션은 실제로 /app/backend/insforge-storage에 파일을 기록합니다.
두 경로가 일치하지 않아 다음과 같은 문제가 발생합니다:
- PVC가
/insforge-storage에 마운트됨 → 지속성은 유지되지만, 앱이 여기에 기록하지 않음 - 앱이
/app/backend/insforge-storage에 기록함 → PVC 보호를 받지 못하며, 컨테이너 내부의 임시 공간일 뿐임
pod가 재시작될 때마다 컨테이너 파일 시스템이 초기화되어 /app/backend/insforge-storage의 데이터가 사라집니다.
해결 방법
사전 확인
현재 pod 내의 /app/backend/insforge-storage에 보존해야 할 데이터가 있는지 확인하십시오:
kubectl exec -n <namespace> <pod-name> -- ls -la /app/backend/insforge-storage/
Step 1: 데이터가 있는 경우 PVC로 백업
mountPath를 변경하기 전에 pod가 실행 중일 때 데이터를 현재 마운트된 PVC(/insforge-storage)로 복사하십시오:
kubectl exec -n <namespace> <pod-name> -- cp -r /app/backend/insforge-storage/. /insforge-storage/
이렇게 하면 데이터가 PVC에 안전하게 저장되며, mountPath 변경 후 올바른 위치에서 데이터를 복구할 수 있습니다.
Step 2: Deployment의 volumeMount mountPath 수정
해당 Deployment(service-698431469758a4530cd3b774)를 찾아 volumeMounts 경로를 다음과 같이 변경하십시오:
mountPath: /insforge-storage
변경 후:
mountPath: /app/backend/insforge-storage
Step 3: 롤아웃(Rollout)
변경 사항을 적용한 후 pod를 재시작하십시오. 새 pod는 PVC를 /app/backend/insforge-storage에 직접 마운트하므로 앱이 기록하는 데이터가 정상적으로 지속됩니다.