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 Virtualization Operator 时,会自动安装主机路径供应程序 (HPP) Operator。HPP Operator 会创建 HPP 供应程序。
HPP 是专为 OpenShift Virtualization 设计的本地存储供应程序。要使用 HPP,必须创建一个 HPP 自定义资源 (CR)。
HPP 存储池不得与操作系统位于同一分区中。否则,存储池可能会填满操作系统分区。如果操作系统分区已满,则可能会影响性能,或者节点可能会变得不稳定或不可用。 |
要使用主机路径供应程序 (HPP),必须为容器存储接口 (CSI) 驱动程序创建关联的存储类。
创建存储类时,您将设置影响属于该存储类的持久卷 (PV) 动态供应的参数。创建后,无法更新StorageClass
对象的参数。
虚拟机使用基于本地 PV 的数据卷。本地 PV 绑定到特定节点。在为虚拟机准备磁盘映像以供使用时,虚拟机可能无法调度到之前已将本地存储 PV 固定到的节点。 要解决此问题,请使用 Kubernetes Pod 调度程序将持久卷声明 (PVC) 绑定到正确节点上的 PV。通过使用将 |
以具有cluster-admin
权限的用户身份登录。
创建一个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