Volume

OneDayDev·2023년 2월 2일
0

K8s

목록 보기
10/12

Volume

  • 컨테이너 내의 디스크에 있는 파일은 임시적이기 때문에 볼륨을 이용해 이런 문제를 해결한다.
  • 많은 볼륨 플러그인이 존재하며 여기를 참고하자
  • 로컬 서버에서 사용할 수 있는 볼륨 중에서 내부 호스트의 디스크를 사용하는 emptyDir, hostPath가 있다.
  • nfs 볼륨을 이용해서 볼륨 하나를 여러 컨테이너에서 공유해서 사용 가능

emptyDir

  • 파드가 실행되는 호스트의 디스크를 임시로 컨테이너에 볼륨으로 할당해서 사용하는 방법
  • 파드가 사라지면 같이 사라진다.
  • 주로 메모리와 디스크를 함께 이용하는 대용량 데이터 계산에 사용
  • 컨테이너에 문제가 발생해도 파드는 살아 있기에 emptyDir에 저장해둔 데이터도 살아있다.

hostPath

  • emptyDir은 임시 디렉터리를 마운트하는 것이라면 hostPath는 호스트에 있는 실제 파일이나 디렉터리를 마운트한다.
  • emptyDir은 컨테이너를 재시작했을 때 데이터를 보존하는 역할이라면 hostPath는 파드를 재시작했을 때도 호스트에 데이터가 남는다.

Persistent Volume

PV, PVC

  • 쿠버네티스에서는 PersistentVolume과 PersistentVolumeClaim 2개로 분리해 볼륨을 사용한다.
  • PV는 볼륨이고 사용자가 PV에 PVC를 통해 사용량 설정해 요청한다.
  • 프로비저닝 > 바인딩 > 사용 > 반환 과정의 생명 주기가 있다.

Provisioning

  • PV를 만드는 단계
  • 정적인 방법과 동적인 방법으로 나뉨
  • 동적 프로비저닝할 때 스토리지를 정의하는 스토리지 클래스로 PV를 생성한다.

Binding

  • PV와 PVC의 연결 단계
  • PVC에서 원하는 조건을 만족하는 PV가 없다면 요청은 실패하지만 요청은 끝나지 않음
  • PV와 PVC는 1대1 관계이다.

Using

  • PVC는 파드에 설정되고 볼륨으로 인식
  • 파드를 유지하는 동안 계속 사용하며 시스템에서 임의로 삭제 불가

Reclaiming

  • PVC는 삭제되고 PVC를 사용하던 PV를 초기화한다.
  • 초기화 정책은 Retain, Delete가 있다
  • Retain: PV를 그대로 보존한다. 단순 해제 상태로 데이터는 그대로 남아있어 사용하려면 직접 초기화해줘야한다.
  • Delete: PV를 삭제하고 연결된 스토리지 쪽의 볼륨도 삭제

참고: Storage

profile
안녕하세요.

0개의 댓글