7.18.2.3. 使用 hostpath 置备程序启用本地存储
要部署 hostpath 置备程序并使虚拟机能够使用本地存储,请首先创建一个 HostPathProvisioner
自定义资源。
先决条件
在每个节点上为 hostpath 置备程序创建的持久性卷(PV)创建后端目录。
重要后备目录不得位于文件系统的根目录中,因为
/
分区在 Red Hat Enterprise Linux CoreOS(RHCOS)中是只读的。例如,您可以使用/var/<directory_name>
而不是/<directory_name>
。将 SELinux 上下文
container_file_t
应用到每个节点上的 PV 后备目录。例如:$ sudo chcon -t container_file_t -R <backing_directory_path>
注意如果使用 Red Hat Enterprise Linux CoreOS(RHCOS)8 worker,则必须使用
MachineConfig
清单配置 SELinux。
流程
创建
HostPathProvisioner
自定义资源文件。例如:$ touch hostpathprovisioner_cr.yaml
编辑该文件,确保
spec.pathConfig.path
值是您希望 hostpath 置备程序在其中创建 PV 的目录。例如:apiVersion: hostpathprovisioner.kubevirt.io/v1beta1 kind: HostPathProvisioner metadata: name: hostpath-provisioner spec: imagePullPolicy: IfNotPresent pathConfig: path: "<backing_directory_path>" 1 useNamingPrefix: false 2
注意如果您没有创建后备目录,则置备程序会尝试为您创建该目录。如果您没有应用
container_file_t
SELinux 上下文,这会导致Permission denied
。在
openshift-cnv
命名空间中创建自定义资源:$ oc create -f hostpathprovisioner_cr.yaml -n openshift-cnv