PVC(PersistentVolumeClaim)의 accessModes는 볼륨의 접근 방식을 정의합니다. Kubernetes에서는 3가지 접근 모드를 제공합니다:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-pvc
spec:
accessModes:
- ReadWriteOnce # 단일 노드에서 읽기/쓰기
# 또는
- ReadOnlyMany # 다중 노드에서 읽기 전용
# 또는
- ReadWriteMany # 다중 노드에서 읽기/쓰기
ReadWriteOnce
(RWO)
- 단일 노드에서만 읽기/쓰기가 가능
- 하나의 노드에서만 마운트 가능
- 해당 노드의 여러 파드에서는 동시에 사용 가능
- 적합한 사용 사례:
- 데이터베이스 볼륨
- 단일 인스턴스 애플리케이션의 로컬 스토리지
ReadOnlyMany
(ROX)
- 여러 노드에서 읽기 전용으로 마운트 가능
- 모든 노드가 동시에 볼륨을 읽을 수 있음
- 적합한 사용 사례:
- 설정 파일
- 정적 컨텐츠
- 공유 라이브러리
ReadWriteMany
(RWX)
- 여러 노드에서 동시에 읽기/쓰기가 가능
- 클러스터의 모든 노드가 동시에 접근 가능
- 적합한 사용 사례:
- 공유 파일 시스템
- CI/CD 빌드 디렉토리
- 여러 파드가 공유하는 데이터
- NFS와 같은 네트워크 스토리지
스토리지 유형별 지원하는 접근 모드:
- NFS
- RWO, ROX, RWX 모두 지원
- 가장 유연한 접근 모드 지원
- Local 볼륨
- RWO만 지원
- 노드에 물리적으로 연결된 스토리지
- AWS EBS, Azure Disk
- 기본적으로 RWO만 지원
- 클라우드 블록 스토리지의 특성상 단일 노드 접근만 가능
예시 - NFS PVC:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-pvc
spec:
accessModes:
- ReadWriteMany # NFS는 RWX 지원
storageClassName: nfs-storage
resources:
requests:
storage: 10Gi
주의사항:
- 스토리지 솔루션이 지원하지 않는 접근 모드를 요청하면 PVC 생성이 실패할 수 있음
- 일부 스토리지는 특정 접근 모드에서 성능 저하가 있을 수 있음
- 보안 요구사항에 따라 적절한 접근 모드 선택 필요
댓글 없음:
댓글 쓰기