- 컨테이너 데이터 저장
컨테이너에 저장한 데이터는 해당 컨테이너가 삭제됐을 때 모두 사라짐
컨테이너가 사라지더라도 컨테이너를 보존하도록 컨테이너 외부에 데이터를 저장하는 방법 알아보기
볼륨과 PV를 사용하는 방법을 아래에서 알아보기
- 볼륨
1) 볼륨 사용 목적
k8s 볼륨은 Pod 내에 하나 이상의 컨테이너가 사용할 수 있는 데이터 저장 공간임
볼륨은 Pod의 일부로서, 컨테이너가 종료되거나 재시작될 때 데이터를 유지할 수 있음
네트워크 디스크, 로컬 디스크 등 다양한 백엔드를 지원하며 여러 컨테이너가 데이터를 공유할 수 있음
2) 볼륨의 필요성
컨테이너는 일반적으로 임시적이며 Stateless 환경이기 때문에 영구적 데이터 저장이 필요할 때 볼륨이 사용됨
로깅, DB 관리, 설정 팡리 저장 등 다양한 용도로 사용됨
3) 볼륨의 유형
emptyDir
: 임시 데이터를 저장하기 위한 볼륨으로, Pod가 할당될 때 생성되고 Pod가 삭제될 때 사라짐
: Pod 재시작 시 데이터는 유지되지만, Pod 삭제 시 데이터는 손실됨
: 주로 메모리와 디스크를 함께 이용하는 빠른 데이터 처리가 필요할 때 사용됨 (ex) 작업 파일, 캐시)
hostPath
: 노드의 파일 시스템에 있는 파일이나 디렉토리를 Pod에 마운트함
: hostPath
는 pod를 재시작했을 때도 호스트에 데이터가 남아있음
: 로그 파일, Docker 이미지 등 노드 레벨에서 유지해야 하는 데이터에 사용됨
NFS (Network File System)
: 네트워크를 통해 접근 가능한 외부 파일 시스템에 데이터를 저장함
: 여러 Pod가 같은 NFS 볼륨에 접근하여 데이터를 공유할 수 있음
: 데이터 중심 애플리케이션에 적합하며, 영구적 데이터 저장이 가능함
4) 볼륨과 Pod의 생명주기
볼륨의 생명주기는 그것을 사용하는 Pod에 의해 관리됨
emptyDir
은 Pod의 생명주기에 종속되며, Pod 삭제 시 함께 삭제됨
hostPath
및 NFS
와 같은 외부 볼륨은 Pod의 생명주기와 독립적으로 존재할 수 있음
- PV 및 PVC
1) PV
(Persistent Volumes)
클러스터 내에서 사용자나 파드가 아닌 관리자에 의해 생성된 스토리지의 일부임
파드와 독립적으로 존재하며, 파드가 삭제되어도 데이터는 유지됨
클러스터 전체에서 사용할 수 있으며, 다양한 파드와 재사용될 수 있음
2) PVC
(Persistent Volume Claims)
사용자가 스토리지를 요청하는 방법임
PV에 대한 요청을 나타내며, 한 번 바인딩되면, 해당 PV는 다른 PVC에 의해 요청될 수 없음
3) PV
와 PVC
의 관계
PV와 PVC는 분리된 생명주기를 가지며, PVC를 통해 동적으로 또는 사전에 프로비저닝된 PV에 접근할 수 있음
PVC가 삭제되면, 반환된 PV는 다시 사용 가능하거나 정책에 따라 처리될 수 있음
4) PV
와 PVC
라이프사이클