28.11.2. 시나리오 1: 두 가지 유형의 스토리지 클래스를 사용하는 기본 동적 프로비저닝
스토리지 클래스를 사용하여 스토리지 수준 및 사용량을 구분하고 설명할 수 있습니다. 이 경우 cluster-admin 또는 storage
-admin
은 GCE에서 두 개의 개별 스토리지 클래스를 설정합니다.
-
slow
: 순차적 데이터 운영에 적합하며 저렴하고 효율적이며 최적화되었습니다(읽기 및 쓰기가 더 낮음) -
fast
: 임의 IOPS 및 지속 처리량을 높도록 최적화 (빠른 읽기 및 쓰기)
이러한 StorageClass를 생성하면 cluster -admin 또는
을 사용하여 사용자가 StorageClass 의 특정 수준 또는 서비스를 요청하는 클레임을 생성할 수 있습니다.
storage-admin
예 28.16. StorageClass Slow 오브젝트 정의
kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: slow 1 provisioner: kubernetes.io/gce-pd 2 parameters: type: pd-standard 3 zone: us-east1-d 4
예 28.17. 스토리지 클래스 빠른 오브젝트 정의
kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: fast provisioner: kubernetes.io/gce-pd parameters: type: pd-ssd zone: us-east1-d
cluster-admin
또는 storage-admin
으로 두 정의를 모두 YAML 파일로 저장합니다. 예를 들어 slow-gce.yaml
및 fast-gce.yaml
입니다. 그런 다음 StorageClasses를 만듭니다.
# oc create -f slow-gce.yaml storageclass "slow" created # oc create -f fast-gce.yaml storageclass "fast" created # oc get storageclass NAME TYPE fast kubernetes.io/gce-pd slow kubernetes.io/gce-pd
cluster-admin
또는 storage-admin
사용자는 올바른 StorageClass 이름을 올바른 사용자, 그룹 및 프로젝트로 중계합니다.
일반 사용자로 새 프로젝트를 생성합니다.
# oc new-project rh-eng
클레임 YAML 정의를 생성하여 파일에 저장합니다(pvc-fast.yaml
).
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-engineering spec: accessModes: - ReadWriteMany resources: requests: storage: 10Gi storageClassName: fast
oc create
명령으로 클레임을 추가합니다.
# oc create -f pvc-fast.yaml persistentvolumeclaim "pvc-engineering" created
클레임이 바인딩되었는지 확인합니다.
# oc get pvc NAME STATUS VOLUME CAPACITY ACCESSMODES AGE pvc-engineering Bound pvc-e9b4fef7-8bf7-11e6-9962-42010af00004 10Gi RWX 2m
이 클레임은 rh-eng 프로젝트에 생성 및 바인딩되었으므로 동일한 프로젝트의 모든 사용자가 공유할 수 있습니다.
cluster-admin 또는 storage
-admin
사용자로 최근 동적으로 프로비저닝된 PV(영구 볼륨)를 확인합니다.
# oc get pv NAME CAPACITY ACCESSMODES RECLAIMPOLICY STATUS CLAIM REASON AGE pvc-e9b4fef7-8bf7-11e6-9962-42010af00004 10Gi RWX Delete Bound rh-eng/pvc-engineering 5m
동적으로 프로비저닝된 모든 볼륨에서 RECLAIMPOLICY 는 기본적으로 Delete 입니다. 즉, 볼륨은 클레임이 시스템에 남아 있는 경우에만 유지됩니다. 클레임을 삭제하면 볼륨도 삭제되고 볼륨의 모든 데이터가 손실됩니다.
마지막으로 GCE 콘솔을 확인합니다. 새 디스크가 생성되었으며 사용할 준비가 되었습니다.
kubernetes-dynamic-pvc-e9b4fef7-8bf7-11e6-9962-42010af00004 SSD persistent disk 10 GB us-east1-d
이제 Pod에서 영구 볼륨 클레임을 참조하고 볼륨 사용을 시작할 수 있습니다.