..
Storage Class: 쿠버네티스 스토리지 동적 프로비저닝
Storage Class란?
Storage Class는 관리자가 사용자(개발자)에게 제공하는 스토리지의 “종류”나 “정책”을 정의하는 객체입니다. 이를 통해 개발자는 물리적인 스토리지의 세부 사양을 몰라도 원하는 특성의 볼륨을 동적으로 생성(Provisioning)할 수 있습니다.
주요 역할과 용도
1. 스토리지 프로비저너(Provisioner) 지정
어떤 백엔드 스토리지(AWS EBS, Azure Disk, NFS 등)를 사용하여 실제 볼륨을 생성할지 결정합니다. 프로비저너는 클라우드 공급자나 스토리지 시스템과 통신하여 실제 디스크를 할당하는 역할을 합니다.
2. 세부 파라미터 구성
스토리의 성능이나 특성을 정의할 수 있습니다.
- 용량 및 성능: 고속 SSD를 쓸 것인지, 일반 HDD를 쓸 것인지 지정
- 액세스 모드: 읽기 전용인지, 여러 노드에서 동시 쓰기가 가능한지 등
3. 정책 강제화
볼륨이 생성될 때 반드시 지켜야 할 정책을 설정할 수 있습니다. 예를 들어, 볼륨 삭제 시 실제 물리 데이터도 지울 것인지(Recycle/Delete), 아니면 보존할 것인지(Retain) 등을 관리자가 미리 정해둘 수 있습니다.
책임과 흐름
- 관리자: 클러스터 전역에 비즈니스 요구사항에 맞는
StorageClass를 미리 정의해둡니다. - 사용자:
PersistentVolumeClaim(PVC)을 작성할 때 원하는StorageClassName을 참조합니다. - 결과: 쿠버네티스는 해당 클래스에 정의된 설정에 맞춰 자동으로 물리 볼륨(PV)을 생성하고 연결해 줍니다.
Storage Class는 클러스터 운영자가 정의한 “스토리지 메뉴판”입니다. 개발자는 이 메뉴판을 보고 자신에게 필요한 스토리지 유형을 주문만 하면 됩니다.