9.3.2. 管理自定义引导源更新
不是由 OpenShift Virtualization 提供的自定义引导源不受功能门控制。您必须通过编辑 HyperConverged 自定义资源 (CR) 来单独管理它们。
您必须配置存储类。否则,集群无法接收自定义引导源的自动更新。详情请参阅定义一个存储类。
9.3.2.1. 配置默认和 virt-default 存储类 复制链接链接已复制到粘贴板!
存储类决定了如何为工作负载置备持久性存储。在 OpenShift Virtualization 中,virt-default 存储类优先于集群默认存储类,用于虚拟化工作负载。在一个时间点上,仅一个存储类应被设置为 virt-default 或 cluster default。如果多个存储类被标记为默认,virt-default 存储类会覆盖集群默认。为确保一致的行为,请仅配置一个存储类作为虚拟化工作负载的默认值。
引导源使用默认存储类创建。如果您的集群没有默认存储类,则必须定义一个。
流程
将当前的 virt-default 或集群默认存储类进行补丁为 false:
运行以下命令,识别当前标记为 virt-default 的所有存储类:
$ oc get sc -o json| jq '.items[].metadata|select(.annotations."storageclass.kubevirt.io/is-default-virt-class"=="true")|.name'对于返回的每个存储类,运行以下命令来删除 virt-default 注解:
$ oc patch storageclass <storage_class_name> -p '{"metadata": {"annotations": {"storageclass.kubevirt.io/is-default-virt-class": "false"}}}'运行以下命令,识别当前标记为集群默认的所有存储类:
$ oc get sc -o json| jq '.items[].metadata|select(.annotations."storageclass.kubernetes.io/is-default-class"=="true")|.name'对于返回的每个存储类,运行以下命令来删除集群默认注解:
$ oc patch storageclass <storage_class_name> -p '{"metadata": {"annotations": {"storageclass.kubernetes.io/is-default-class": "false"}}}'
设置新的默认存储类:
运行以下命令,将 virt-default 角色分配给存储类:
$ oc patch storageclass <storage_class_name> -p '{"metadata": {"annotations": {"storageclass.kubevirt.io/is-default-virt-class": "true"}}}'或者,运行以下命令将集群默认角色分配给存储类:
$ oc patch storageclass <storage_class_name> -p '{"metadata": {"annotations": {"storageclass.kubernetes.io/is-default-class": "true"}}}'
运行以下命令,从
openshift-virtualization-os-images命名空间中删除所有过时的DataVolume和VolumeSnapshot对象。$ oc delete DataVolume,VolumeSnapshot -n openshift-virtualization-os-images --selector=cdi.kubevirt.io/dataImportCron等待所有
DataSource对象都变为 "Ready - True" 状态。数据源可以引用 PersistentVolumeClaim (PVC) 或 VolumeSnapshot。要检查预期的源格式,请运行以下命令:$ oc get storageprofile <storage_class_name> -o json | jq .status.dataImportCronSourceFormat