28.11.2. シナリオ 1: 2 種類の StorageClass を持つ基本的な動的プロビジョニング
StorageClass を使用すると、ストレージのレベルや使用状況を区別し、記述することができます。この例では、cluster-admin
または storage-admin
が GCE で 2 つの異なるストレージのクラスを設定します。
-
slow
: 低コストで効率的なシーケンシャルデータの操作に最適化されている (低速読み取り/書き込み) -
fast
: 高速なランダム IOPS と持続的スループットに最適化されている (高速読み取り/書き込み)
これらの StorageClass を作成することで、cluster-admin
または storage-admin
はユーザーに対して、StorageClass の特定のレベルまたはサービスについての要求の作成を許可することができます。
例28.16 StorageClass 低速オブジェクトの定義
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 StorageClass 高速オブジェクトの定義
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
。次に StorageClass を作成します。
# 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 で Persistent Volume Claim (永続ボリューム要求) を参照し、ボリュームの使用を開始することができます。