apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: hostpath-csi
provisioner: kubevirt.io.hostpath-provisioner
reclaimPolicy: Delete (1)
volumeBindingMode: WaitForFirstConsumer (2)
parameters:
storagePool: my-storage-pool (3)
安装 OpenShift 虚拟化操作符时,会自动安装主机路径供应程序 (HPP) 操作符。HPP 操作符创建 HPP 供应程序。
HPP 是专为 OpenShift 虚拟化设计的本地存储供应程序。要使用 HPP,您必须创建一个 HPP 自定义资源 (CR)。
HPP 存储池不得与操作系统位于同一分区中。否则,存储池可能会填满操作系统分区。如果操作系统分区已满,则可能会影响性能,或者节点可能会变得不稳定或不可用。 |
要使用主机路径供应程序 (HPP),您必须为容器存储接口 (CSI) 驱动程序创建一个关联的存储类。
创建存储类时,您设置影响属于该存储类的持久卷 (PV) 动态供应的参数。创建后,您无法更新StorageClass
对象的参数。
虚拟机使用基于本地PV的数据卷。本地PV绑定到特定节点。在为虚拟机准备磁盘映像时,虚拟机可能无法调度到之前已绑定本地存储PV的节点。 为了解决这个问题,请使用Kubernetes Pod调度器将持久卷声明 (PVC) 绑定到正确节点上的PV。通过使用将 |
创建一个storageclass_csi.yaml
文件来定义存储类。
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: hostpath-csi
provisioner: kubevirt.io.hostpath-provisioner
reclaimPolicy: Delete (1)
volumeBindingMode: WaitForFirstConsumer (2)
parameters:
storagePool: my-storage-pool (3)
1 | 两个可能的reclaimPolicy 值是Delete 和Retain 。如果不指定值,则默认值为Delete 。 |
2 | volumeBindingMode 参数决定动态预配和卷绑定何时发生。指定WaitForFirstConsumer 以延迟持久卷 (PV) 的绑定和预配,直到创建使用持久卷声明 (PVC) 的Pod之后。这确保PV满足Pod的调度要求。 |
3 | 指定在HPP CR中定义的存储池的名称。 |
保存文件并退出。
运行以下命令创建StorageClass
对象:
$ oc create -f storageclass_csi.yaml