3.5. 块卷支持
OpenShift Container Platform 可以静态置备原始块卷。这些卷没有文件系统。对于可以直接写入磁盘或者实现其自己的存储服务的应用程序来说,使用它可以获得性能优势。
原始块卷可以通过在 PV 和 PVC 规格中指定 volumeMode: Block
来置备。
使用原始块卷的 pod 需要配置为允许特权容器。
下表显示了哪些卷插件支持块卷。
卷插件 | 手动置备 | 动态置备 | 完全支持 |
---|---|---|---|
AWS EBS | ✅ | ✅ | ✅ |
Azure Disk | ✅ | ✅ | ✅ |
Azure File | |||
Cinder | ✅ | ✅ | ✅ |
Fibre Channel | ✅ | ✅ | |
GCP | ✅ | ✅ | ✅ |
HostPath | |||
iSCSI | ✅ | ✅ | |
本地卷 | ✅ | ✅ | |
NFS | |||
OpenShift Container Storage | ✅ | ✅ | ✅ |
VMware vSphere | ✅ | ✅ | ✅ |
可手动置备但未提供完全支持的块卷作为技术预览功能提供。技术预览功能不被红帽产品服务等级协议 (SLA) 支持,且可能在功能方面有缺陷。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。有关红帽技术预览功能支持范围的详情,请参阅 https://access.redhat.com/support/offerings/techpreview/。
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 是一个原始块卷。
PVC 示例
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: block-pvc
spec:
accessModes:
- ReadWriteOnce
volumeMode: Block 1
resources:
requests:
storage: 10Gi
- 1
- 需要把
volumeMode
设置为Block
来代表请求一个原始块 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
值 | 默认 |
---|---|
Filesystem | 是 |
Block | 否 |
PV volumeMode | PVC volumeMode | 绑定结果 |
---|---|---|
Filesystem | Filesystem | 绑定 |
Unspecified | Unspecified | 绑定 |
Filesystem | Unspecified | 绑定 |
Unspecified | Filesystem | 绑定 |
Block | Block | 绑定 |
Unspecified | Block | 无绑定 |
Block | Unspecified | 无绑定 |
Filesystem | Block | 无绑定 |
Block | Filesystem | 无绑定 |
未指定值时将使用默认值 Filesystem
。