apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
name: myvm
spec:
template:
spec:
domain:
cpu:
features:
- name: apic (1)
policy: require (2)
您可以通过确保虚拟机 (VM) 的CPU型号和策略属性与节点支持的CPU型号和策略属性匹配来在节点上调度虚拟机。
您可以通过指定策略属性和CPU特性来调度虚拟机 (VM),在虚拟机在节点上调度时,这些属性和特性将匹配以确保兼容性。为虚拟机指定的策略属性决定该虚拟机如何在节点上调度。
策略属性 | 描述 |
---|---|
force |
强制虚拟机在节点上调度。即使主机CPU不支持虚拟机的CPU,也适用。 |
require |
如果未为虚拟机配置特定的CPU型号和特性规范,则应用于虚拟机的默认策略。如果未将节点配置为支持此默认策略属性或任何其他策略属性的CPU节点发现,则不会在该节点上调度虚拟机。主机CPU必须支持虚拟机的CPU,或者虚拟机管理程序必须能够模拟支持的CPU型号。 |
optional |
如果主机的物理机CPU支持该虚拟机,则将虚拟机添加到节点。 |
disable |
无法使用CPU节点发现调度虚拟机。 |
forbid |
即使主机CPU支持该特性并且启用了CPU节点发现,也不会调度虚拟机。 |
您可以为每个虚拟机 (VM) 设置策略属性和CPU特性,以确保根据策略和特性在节点上调度它。您设置的CPU特性将经过验证,以确保它受主机CPU支持或由虚拟机管理程序模拟。
编辑虚拟机配置文件的domain
规范。以下示例为虚拟机 (VM) 设置CPU特性和require
策略
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
name: myvm
spec:
template:
spec:
domain:
cpu:
features:
- name: apic (1)
policy: require (2)
1 | 虚拟机的CPU特性名称。 |
2 | 虚拟机的策略属性。 |
您可以为虚拟机 (VM) 配置CPU型号,以便在支持其CPU型号的节点上对其进行调度。
编辑虚拟机配置文件的domain
规范。以下示例显示为虚拟机定义的特定CPU型号
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
name: myvm
spec:
template:
spec:
domain:
cpu:
model: Conroe (1)
1 | 虚拟机的CPU型号。 |
当虚拟机 (VM) 的CPU型号设置为host-model
时,虚拟机将继承其所在节点的CPU型号。
编辑虚拟机配置文件的domain
规范。以下示例显示为虚拟机指定了host-model
apiVersion: kubevirt/v1alpha3
kind: VirtualMachine
metadata:
name: myvm
spec:
template:
spec:
domain:
cpu:
model: host-model (1)
1 | 继承其所在节点CPU型号的虚拟机。 |
您可以使用自定义调度器在节点上调度虚拟机 (VM)。
为您的集群配置了辅助调度器。
通过编辑VirtualMachine
清单将自定义调度器添加到虚拟机配置。例如
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
name: vm-fedora
spec:
running: true
template:
spec:
schedulerName: my-scheduler (1)
domain:
devices:
disks:
- name: containerdisk
disk:
bus: virtio
# ...
1 | 自定义调度器的名称。如果schedulerName 值与现有调度器不匹配,则virt-launcher Pod将保持Pending 状态,直到找到指定的调度器。 |
通过检查virt-launcher
Pod事件,验证虚拟机是否正在使用VirtualMachine
清单中指定的自定义调度器
输入以下命令查看集群中的Pod列表
$ oc get pods
NAME READY STATUS RESTARTS AGE
virt-launcher-vm-fedora-dpc87 2/2 Running 0 24m
运行以下命令以显示Pod事件
$ oc describe pod virt-launcher-vm-fedora-dpc87
输出中From
字段的值验证调度器名称是否与VirtualMachine
清单中指定的自定义调度器匹配
[...]
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 21m my-scheduler Successfully assigned default/virt-launcher-vm-fedora-dpc87 to node01
[...]