반응형
Amazon EKS(AWS Kubernetes Service)를 운영하다 보면, 워크 노드 그룹(Managed Node Group)을 0으로 설정해 모든 노드를 삭제해야 할 일이 생깁니다. 이때 가장 많이 받는 질문 중 하나는 다음과 같습니다:
❓ EKS에서 노드를 삭제하면 Persistent Volume(PV)도 함께 삭제되나요?
이 질문에 대한 답변은 스토리지 유형과 Reclaim Policy 설정값에 따라 다릅니다. 아래에서 상황별로 명확하게 정리해드릴게요.
✅ 결론 요약
스토리지 타입ReclaimPolicyPVC 삭제PV 삭제EBS 삭제
EBS (AWS 블록 스토리지) | Retain (보존) | O | ❌ 아니오 | ❌ 아니오 |
EBS (AWS 블록 스토리지) | Delete (삭제) | O | ✅ 예 | ✅ 예 |
EBS | Delete | ❌ PVC 살아있음 | ❌ 아니오 | ❌ 아니오 |
hostPath (노드 로컬 디스크) | - | 노드 삭제 시 | ✅ 예 | ✅ 예 (실제 데이터 손실) |
📌 핵심 용어 정리
- PV (Persistent Volume): 실제 스토리지를 나타내는 쿠버네티스 객체. AWS에서는 주로 EBS 볼륨을 의미합니다.
- PVC (Persistent Volume Claim): 파드에서 요청하는 저장소 요구 사항
- ReclaimPolicy: PVC가 삭제되었을 때 PV가 어떤 행동을 할지 결정하는 정책
- Retain: PV는 삭제되지 않음 (EBS도 유지됨)
- Delete: PV와 백엔드 스토리지(EBS 등)도 함께 삭제됨
💡 워커 노드 삭제와 PV 삭제의 관계
- 노드 삭제만 한 경우
→ PVC/PV는 삭제되지 않음. 단지 파드가 스케줄되지 못할 뿐입니다. - PVC도 삭제한 경우
→ ReclaimPolicy가 Delete라면 PV와 실제 EBS도 함께 삭제됩니다. - hostPath 같은 로컬 스토리지를 사용 중이라면?
→ 노드 삭제 시 스토리지도 사라지고, 데이터도 영구 삭제됩니다.
🔎 실시간 확인 방법
# 현재 사용 중인 PV들의 상태 확인
kubectl get pv
# StorageClass의 ReclaimPolicy 확인
kubectl get storageclass -o yaml
# 연결된 PVC 상태 확인
kubectl get pvc -A
🛡️ 권장 사항
- 중요 데이터를 사용하는 PVC는 반드시 ReclaimPolicy를 Retain으로 설정하세요.
- EC2 기반의 노드 삭제 전, EBS 볼륨 상태를 AWS 콘솔이나 CLI로 이중 확인하세요.
- 백업이 중요한 경우, Velero 같은 백업 도구 사용을 고려하세요.
🔗 참고 자료
결론:
워크 노드 그룹이 0으로 줄어들어 노드가 삭제되어도, PV는 자동 삭제되지 않습니다.
PVC 삭제 + ReclaimPolicy가 Delete일 때만 PV와 실제 EBS 볼륨이 삭제됩니다.
반응형