Red Hat Training
A Red Hat training course is available for OpenShift Container Platform
4.3.5. 块卷支持
块卷支持是一个技术预览功能,它仅适用于手动置备的 PV。
技术预览功能不包括在红帽生产服务级别协议(SLA)中,且其功能可能并不完善。因此,红帽不建议在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅 https://access.redhat.com/support/offerings/techpreview/。
您可以通过在 PV 和 PVC 规格中包含 API 字段来静态置备原始块卷。
要使用块卷,您必须首先启用 BlockVolume 功能门。要为 master 启用功能门,请将 feature-gates 添加到 apiServerArguments 和 controllerArguments 中。要为节点启用功能门,在 kubeletArguments 中添加 功能门。例如:
kubeletArguments:
feature-gates:
- BlockVolume=truePV 示例
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项代表这个 PV 是原始块卷。
PVC 示例
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: block-pvc
spec:
accessModes:
- ReadWriteOnce
volumeMode: Block 1
resources:
requests:
storage: 10Gi
- 1
volumeMode项代表请求了一个原始块持久性卷。
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
表 4.5. VolumeMode 可以使用的值
| 值 | 默认 |
|---|---|
| Filesystem | 是 |
| Block | 否 |
表 4.6. 块卷的绑定方案
| PV VolumeMode | PVC VolumeMode | 绑定结果 |
|---|---|---|
| Filesystem | Filesystem | 绑定 |
| Unspecified | Unspecified | 绑定 |
| Filesystem | Unspecified | 绑定 |
| Unspecified | Filesystem | 绑定 |
| Block | Block | 绑定 |
| Unspecified | Block | 无绑定 |
| Block | Unspecified | 无绑定 |
| Filesystem | Block | 无绑定 |
| Block | Filesystem | 无绑定 |
未指定值时将使用默认值 Filesystem。