쿠버네티스 볼륨(Volume) - Dynamic Provisioning, StorageClass, Status, ReclaimPolicy

yunyoung·2021년 1월 20일

쿠버네티스

목록 보기
7/12


파드와 볼륨을 연결하기 위해 사용하는 방법으로 PV와 PVC를 만들어 사용하는 것이 있다. 이 방법은 볼륨이 필요할 때마다 PV를 만들어주어야 하고, 원하는 PV와 연결하기 위해 스토리지, 액세스모드를 확인해서 맞춰야 하기 때문에 복잡하다는 단점이 있다.

이 문제를 해결하기 위해 Dynamic Provisioning을 사용할 수 있다. 사용자가 PVC를 만들면 알아서 PV를 만들어주고 실제 볼륨과 연결해주는 기능이다.

1. Dynamic Provisioning

사전 작업으로, 이 기능을 지원하는 스토리지의 설치가 필요하다. 스토리지를 설치하면 생기는 많은 오브젝트 중, StorageClass라는 오브젝트가 중요하다. 이것을 사용해서 동적으로 PV를 만들 수 있다.

PVC를 만들 때 StorageClassName이라는 부분에 스토리지의 StorageClass의 이름을 넣어주면 자동으로 PV가 만들어지고, 스토리지와 연결해준다.

StorageClassName: storageclass1

2. Status & ReclaimPolicy

  • Available
    최초 PV가 만들어졌을 때 상태
  • Bound
    PV와 연결되었을 때 상태. 이 떄는 볼륨의 실제 데이터가 만들어진 상태는 아니고 파드가 PVC를 사용해서 구동될 때 실제 볼륨이 만들어진다. 이 때 파드가 삭제되더라도 데이터에는 문제가 없다.
  • Released
    PVC가 삭제되어 PV와 연결이 끊어진 상태
    만약 이 때 PV에 설정한 ReclaimPolicy가 있다면 상태와 동작 방식이 달라진다.
    • Retain
      PVC가 삭제되면 PV의 상태가 Released가 되는 옵션이다. ReclaimPolicy를 별도로 설정하지 않았을 때의 Default 값으로, 실제 볼륨의 데이터는 유지되지만, 이 PV를 다른 PVC에 연결할 수는 없다. PV를 삭제할 때도 수동으로 해주어야 한다.
    • Delete
      PVC를 지웠을 때 PV도 같이 지워진다. StorageClass를 사용해서 자동으로 만들어진 PV의 기본 정책이다. 볼륨의 종류에 따라 실제 데이터가 삭제되기도 하고 안 되기도 한다.
    • Recycle
      PV의 상태가 Available이 되면서 PVC에 다시 연결할 수 있는 상태가 된다. 실제 데이터가 삭제되면서, PV를 재사용할 수 있다. 하지만 이 Recycle 정책은 Deprecated된 정책이므로 사용을 권장하지는 않는다.
  • Failed
    PV와 실제 데이터 간에 문제가 생긴 상태
profile
🌈TIL과 개발 노트

0개의 댓글