9.3.2. 管理自定义引导源更新
不是由 OpenShift Virtualization 提供的自定义引导源不受功能门控制。您必须通过编辑 HyperConverged 自定义资源 (CR) 来单独管理它们。
重要
您必须配置存储类。否则,集群无法接收自定义引导源的自动更新。详情请参阅定义一个存储类。
9.3.2.1. 为自定义引导源更新配置存储类 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
您可以通过编辑 HyperConverged 自定义资源 (CR) 来覆盖默认存储类。
重要
引导源使用默认存储类从存储创建。如果您的集群没有默认存储类,则必须在为自定义引导源配置自动更新前定义一个。
流程
运行以下命令,在默认编辑器中打开
HyperConvergedCR:$ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv通过在
storageClassName字段中输入值来定义新的存储类:apiVersion: hco.kubevirt.io/v1beta1 kind: HyperConverged metadata: name: kubevirt-hyperconverged spec: dataImportCronTemplates: - metadata: name: rhel8-image-cron spec: template: spec: storageClassName: <new_storage_class>1 schedule: "0 */12 * * *"2 managedDataSource: <data_source>3 # ...For the custom image to be detected as an available boot source, the value of the `spec.dataVolumeTemplates.spec.sourceRef.name` parameter in the VM template must match this value.从当前的默认存储类中删除
storageclass.kubernetes.io/is-default-class注解。运行以下命令,检索当前默认存储类的名称:
$ oc get storageclass输出示例
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE csi-manila-ceph manila.csi.openstack.org Delete Immediate false 11d hostpath-csi-basic (default) kubevirt.io.hostpath-provisioner Delete WaitForFirstConsumer false 11d1 - 1
- 在本例中,当前的默认存储类名为
hostpath-csi-basic。
运行以下命令,从当前默认存储类中删除注解:
$ oc patch storageclass <current_default_storage_class> -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'1 - 1
- 将
<current_default_storage_class>替换为默认存储类的storageClassName值。
运行以下命令,将新存储类设置为默认值:
$ oc patch storageclass <new_storage_class> -p '{"metadata":{"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'1 - 1
- 将
<new_storage_class>替换为添加到HyperConvergedCR 中的storageClassName值。