3.5. ブロックボリュームのサポート
Red Hat OpenShift Service on AWS は raw ブロックボリュームを静的にプロビジョニングできます。これらのボリュームにはファイルシステムがなく、ディスクに直接書き込むアプリケーションや、独自のストレージサービスを実装するアプリケーションにはパフォーマンス上の利点があります。
raw ブロックボリュームは、PV および PVC 仕様で volumeMode: Block を指定してプロビジョニングされます。
raw ブロックボリュームを使用する Pod は、特権付きコンテナーを許可するように設定する必要があります。
以下の表は、ブロックボリュームをサポートするボリュームプラグインを表示しています。
表3.4 ブロックボリュームのサポート
| ボリュームプラグイン | 手動のプロビジョニング | 動的なプロビジョニング | フルサポート |
|---|---|---|---|
| AliCloud Disk | ✅ | ✅ | ✅ |
| Amazon Elastic Block Store (Amazon EBS) | ✅ | ✅ | ✅ |
| Amazon Elastic File Storage (Amazon EFS) |
3.5.1. ブロックボリュームの例
PV の例
apiVersion: v1
kind: PersistentVolume
metadata:
name: block-pv
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
volumeMode: Block 1
persistentVolumeReclaimPolicy: Retain
fc:
targetWWNs: ["50060e801049cfd1"]
lun: 0
readOnly: false
- 1
volumeModeをBlockに設定して、この PV が raw ブロックボリュームであることを示します。
PVC の例
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: block-pvc
spec:
accessModes:
- ReadWriteOnce
volumeMode: Block 1
resources:
requests:
storage: 10Gi
- 1
volumeModeをBlockに設定して、raw ブロック PVC が要求されていることを示します。
Pod 仕様の例
apiVersion: v1
kind: Pod
metadata:
name: pod-with-block-volume
spec:
containers:
- name: fc-container
image: fedora:26
command: ["/bin/sh", "-c"]
args: [ "tail -f /dev/null" ]
volumeDevices: 1
- name: data
devicePath: /dev/xvda 2
volumes:
- name: data
persistentVolumeClaim:
claimName: block-pvc 3
表3.5 volumeMode の許容値
| 値 | デフォルト |
|---|---|
| Filesystem | はい |
| Block | いいえ |
表3.6 ブロックボリュームのバインディングシナリオ
PV volumeMode | PVC volumeMode | バインディングの結果 |
|---|---|---|
| Filesystem | Filesystem | バインド |
| Unspecified | Unspecified | バインド |
| Filesystem | Unspecified | バインド |
| Unspecified | Filesystem | バインド |
| Block | Block | バインド |
| Unspecified | Block | バインドなし |
| Block | Unspecified | バインドなし |
| Filesystem | Block | バインドなし |
| Block | Filesystem | バインドなし |
値を指定しないと、Filesystem のデフォルト値が指定されます。