[MSA 설계] 10주차-4일차: k8s 볼륨, PV, StatefulSets의 이해 및 실습

limlim·2025년 2월 27일
0

KDT

목록 보기
12/21
  1. 컨테이너 데이터 저장
  • 컨테이너에 저장한 데이터는 해당 컨테이너가 삭제됐을 때 모두 사라짐

  • 컨테이너가 사라지더라도 컨테이너를 보존하도록 컨테이너 외부에 데이터를 저장하는 방법 알아보기

  • 볼륨과 PV를 사용하는 방법을 아래에서 알아보기

  1. 볼륨

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 삭제 시 함께 삭제됨

  • hostPathNFS와 같은 외부 볼륨은 Pod의 생명주기와 독립적으로 존재할 수 있음

  1. PV 및 PVC

1) PV (Persistent Volumes)

  • 클러스터 내에서 사용자나 파드가 아닌 관리자에 의해 생성된 스토리지의 일부임

  • 파드와 독립적으로 존재하며, 파드가 삭제되어도 데이터는 유지됨

  • 클러스터 전체에서 사용할 수 있으며, 다양한 파드와 재사용될 수 있음

2) PVC (Persistent Volume Claims)

  • 사용자가 스토리지를 요청하는 방법임

  • PV에 대한 요청을 나타내며, 한 번 바인딩되면, 해당 PV는 다른 PVC에 의해 요청될 수 없음

3) PVPVC의 관계

  • PV와 PVC는 분리된 생명주기를 가지며, PVC를 통해 동적으로 또는 사전에 프로비저닝된 PV에 접근할 수 있음

  • PVC가 삭제되면, 반환된 PV는 다시 사용 가능하거나 정책에 따라 처리될 수 있음

4) PVPVC 라이프사이클

profile
不怕慢,只怕站 개발자

0개의 댓글