All Articles

k8s - [Volume] Dynamic Provisioning, 그리고 PV의 Status와 ReclaimPolicy

k8s에는 동적 프로비저닝(Dynamic Provisioning)이란 게 있어서 사용자가 PVC를 만들면 그에 따라 동적으로 PV를 만들어주고 volume과 연결까지 해주는 기능이 있다.

[참고] StorageClass

StorageClass라는 오브젝트를 만들어두면 동적으로 PV를 만들 때 사용된다. PVC 만들 때 StorageClassName 부분에 StorageClass 이름을 적으면 그에 맞는 PV가 만들어지고 볼륨과 연결된다.

PV의 Status

PVC에 연결된 상태인지 등을 상태로 나타낸다.

  • Available: PVC에 연결되기 전
  • Bound: PVC와 연결된 상태

    • 단, Pod가 PVC를 사용해 구동 될 때까지(연결되지 않은 상태라면) 볼륨에 실제 데이터가 만들어지진 않는다.
  • Released: PVC와 연결이 끊어진 경우(PVC를 삭제한 경우)

    • ReclaimPolicy에 따라 달라진다.(뒤에서 다룬다.)
  • Failed: PV와 데이터 간의 연결에 문제가 생겼을 때

PV의 ReclaimPolicy

  • Retain(Default): 데이터가 보존되지만 그 PV의 재사용은 불가함
  • Delete: StorageClass 사용 시엔 Default. 경우에 따라 데이터가 삭제되기도 하고 아니기도 함. 그 PV는 재사용은 불가함
  • Recycle(Deprecated): 데이터가 삭제되지만 재사용이 가능하다.(곧 PV의 status가 Available로 돌아간다.)

[참고자료]
https://www.inflearn.com/course/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-%EA%B8%B0%EC%B4%88
https://kubernetes.io/ko/docs/tasks/administer-cluster/change-pv-reclaim-policy/