반응형

pod/container가 생성된 후, 그 안에 있는 data는 pod/container가 삭제되면 함께 삭제된다.

그래서, 이런 데이터들을 영구적으로 보관하기 위해 Volume이라는 개념이 나온다.

 

single node라면 위와 같이 pod-definition에 'volumemount', 'volumes'로

node 내에 있는 /data directory에 저장한다고 정의할 수 있다.

 

그런데, multi-Node가 된다면 이 방법은 점점 더 복잡해질 것이다.

그래서 AWS, cephFS와 같은 Storage를 사용한다.

 

PV, PVC를 알아보자.

위와같이 POD별로 각 Storage를 설정하면 복잡해지고, 하나가 수정될 때마다 전체를 수정시켜야하는 귀찮음이 있다.

그래서 이를 중앙에서 관리하기 위한 solution으로 PV라는 Volume이 나온다.

PV: storage volumes의 wide pool

A persistent volume is a cluster wide pool of storage volumes configured by an administrator to be used

by users deploying applications on the Cluster.

PVC: User가 pv를 할당받기 위해 생성하는 instance

The users can now select storage from this pool using persistent volume claims.

 

administrator는 PV를 생성하고, user는 PV를 사용하기 위해 PVC를 생성한다.

 

PV를 생성해보자. 

간단하다, 위와 같이 Yaml 파일을 작성한다.

 

그러면 PV와 PVC간 Binding 작업이 이루어지는데, 보통 capa, access mode등이 거의 유사한 것끼리 1:1 binding이 된다.

혹시 특정한 PV, PVC를 쓰고 싶다면 labels/selector를 통해 설정할 수 있다.

만약 pvc에 맞는 pv가 없으면, pvc는 pending 상태가 된다.

 

pvc를 생성해보자.

pv와 거의 동일하며 storage size를 맞춰주자.

 

 

그리고 pvc를 삭제할 수도 있는데, pvc가 삭제되었을 때 PV가 어떻게 될지 설정할 수도 있다.

- Retain (admin이 수동으로 삭제할 때까지 갖고있기), Delete(삭제됨과 동시에 삭제), Recycle(다른데서 사용)

 

출처: Udemy 사이트의 Certified Kubernetes Administrator (CKA) with Practice Tests 강의

반응형

+ Recent posts