본문 바로가기
CICD

[Kubernetes] Dynamic Provioning, RelcaimPoicy(Volume)

by 장중앙 2022. 1. 22.

PV 동적할당을 위한 Dynamic Provioning

Volume은 데이터를 안정적으로 사용하기 위해 필요한 Object이므로 Kubernetes와 분리되어 관리

이러한 Volume을 사용하기 위해서는 내부/외부망에 존재하는 Volume을 사용하기 위해서는 관리자가 PV를 만들고

사용자가 원하는 용량과 AccessMode로 PVC를 만들면 쿠버네티스 측에서 적절한 PV와 연결 

이러한 Volume 사용방법에는 필요할 때마다 PVC, PV를 만들어줘야함

    -> 사용방법이 복잡

    -> 동적 PV생성(Dynamic Provisioning)을 이용한 간단한 Volume 사용이 필요

 

Dynamic Provisioning

  • 사용자가 PVC를 만들면 알아서 PV를 만들고 Volume과의 연결을 진행
  • 모든 PV에는 상태가 존재, PVC와의 연결 상태 또는 에러 유무를 확인 가능

* 이러한 동적 PV 생성을 위해서는 StorageClass가 필요

  • 사용자가 직접 PV를 생성하는 경우에는 PVC의 StorageClassName항목에 ""을 기입하면 적절한 PV에 연결됨
  • 하지만 StorageClassName 항목에 사전 생성된 StorageClass Object를 기입하는 것으로 동적 PV가 생성가능하다
  • 이러한 StorageClass는 추가적으로 생성이 가능하며 Default를 설정할 수 있다

 

 

PV의 LifeCycle

먼저, PV는 상황에 따라 여러 상태로 나뉨

PV Status

이러한 PV의 상태 중 Released일 때, ReclaimPolicy에 따라 PV에 대한 상태가 달라짐

 

ReclaimPolicy

  • 연결된 PVC가 삭제되었을 때, PV 상태 변화를 위한 정책
  • 이러한 ReclaimPolicy에는 3가지 옵션이 있음
    1. Retain
      • PVC가 삭제되면, PV의 상태가 Released가 되는 옵션(default 값)
      • 실제 볼륨 데이터는 유지
      • 해당 PV를 다른 PVC에 연결은 불가능 -> 재사용 불가
      • 수동으로 PV를 삭제해줘야함
    2. Delete
      • PVC가 삭제되면, PV도 같이 지워지는 옵션
      • StorageClass로 생성된 PV의 기본 정책
      • 볼륨의 종류에 따라, 실제 데이터가 삭제되기도 유지되기도 함, 재사용 불가
    3. Recycle
      • PVC가 삭제되어도 PV의 상태가 Available이 되면서 다시 PVC에 연결 할 수 있는 상태로 변경
      • 실제 데이터가 삭제
      • 재사용이 가능
      • 사용 권장 X(Deprecated)

 

 

 

 

댓글