1. Volume 이란?
- 컨테이너가 종료되어도 데이터를 보존하기 위한 공간
- Pod는 일시적인 존재 -> 삭제되면 그 안의 Container의 데이터도 사라짐
- 데이터를 영속적으로 보관하려면 -> Volumne이 필요
2. Volume의 종류 (기본형)
1) emptyDir
- Pod가 노드에 스케쥴링될 때 생성되고, Pod 삭제 시 함께 삭제됨
- 사용예시) 캐시, 임시 데이터 저장용
2) hostPath
- 노드의 로컬 디렉토리를 마운트
- 사용 예시) 로그 수집, 노드 리소스 접근용
3) configMap / secret
- 설정파일, 인증정보 주입
- 사용예시) 환경 변수나 설정 파일 전달
4) PersistentVolumneClaim(PVC)
- 외부 스토리지와 연결된 영속적 볼륨
- 사용 예시) DB, 파일 저장 등 영속 데이터 보관
3. Persistent Volume (PV) & Persistent Volume Claim (PVC)
- 시험에 자주 나오는 핵심 파트
- PV (PersistentVolume)
: 클러스터 관리자가 미리 만들어둔 스토리지 리소스 (공용 창고)
- PVC (PersistentVolumeClaim)
: 사용자가 "이만큼 스토리지 주세요"라고 요청하는 것(창고 공간 요청)
- Binding
: PVC가 PV와 조건(size, access mode 등)이 맞으면 자동 연결됨
4. Access Modes (접근 모드)
1) ReadWriteOnce (RWO)
: 하나의 노드에서 읽기/쓰기 가능
2) ReadOnlyMany (ROX)
: 여러 노드에서 읽기 전용으로 접근 가능
3) ReadWriteMany (RWX)
: 여러 노드에서 읽기/쓰기 가능
- 시험 문제 예시? 어떤 모드가 여러 노드에서 쓰기 가능한가? -> RWX
5. StorageClass
- 스토리지 포로비저닝(생성)을 자동화하기 위한 리소스
- 동적 프로비저닝(Dynamic Provisioning)을 가능하게 함
즉, PVC 생성시 storageClassName을 지정하면 -> PV가 자동으로 생성되고 바인딩됨
예시
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: standard
provisioner: kubernetes.io/aws-ebs
parameters:
type: gp2
PVC 예시
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mypvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: standard
6. 실무 예시 (Pod에서 PVC 사용)
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
volumes:
- name: data-volume
persistentVolumeClaim:
claimName: mypvc
containers:
- name: app
image: nginx
volumeMounts:
- mountPath: /usr/share/nginx/html
name: data-volume
-> 위의 pod는 /usr/share/nginx/html 경로에 영구 불륨을 마운트할려함
7. CKA 에서 자주 나오는 포인트 정리
1) PV/PVC 연결
: kubectl get pv, kubectl get pvc 로 바인딩상태 확인
2) Access Mode
: RWO ROX, RWX 구분
3) StorageClass
: 자동 프로비저닝 동작 이해
4) emptyDir / hostPath
: 일시적(ephemeral) vs 영속적(persistent) 구분
5) yaml 파일 생성
: kubectl create -f
8. volume 관련 용어 정리
1) Volume: Pod가 사용하는 디스크 공간
2) emptyDir: Pod 내 임시 데이터용
3) hostPath: 노드의 디스트 사용
4) PV: 클러스터 수준의 실제 스토리지
5) PVC: 사용자의 스토리지 요청
6) StorageClass: 자동 스토리지 생성 규칙
7) Access Mode: RWO, ROX, RWX
'Infra > Kubernetes' 카테고리의 다른 글
| PV/ PVC/ StorageClass 정리표 (0) | 2025.10.08 |
|---|---|
| [cka] Kubernetes - Imperative (0) | 2025.10.07 |
| [cka] Kubernetes - Imperative vs Declarative (0) | 2025.10.07 |
| [cka] Kubernetes - Namespace (0) | 2025.10.07 |
| [cka] Kubernetes - Service 명령어 모음 (0) | 2025.10.07 |