Configure CPU models
You can configure CPU models for your virtual machines at both the cluster level and individual VM level. Set a cluster-wide default CPU model to automatically apply to all new VMs, or configure a specific CPU model for individual VMs to override the cluster default.
Configure the default CPU model
Use the defaultCPUModel setting in the HyperConverged custom resource (CR) to define a cluster-wide default CPU model.
When you set a cluster-wide default CPU model:
- Every new virtual machine (VM) that does not have an explicit CPU model defined receives a node selector for the chosen CPU model.
- Only nodes labeled with
cpu-model.node.kubevirt.io/<cpuModel>are eligible to run VMs using the default model. - Nodes that do not support the selected CPU model are not considered during VM scheduling.
The defaultCPUModel is case sensitive and must match a CPU model supported by nodes in your cluster.
A CPU model configured at the VM level always takes precedence over the cluster-wide default CPU model.
Prerequisites
- Install the OpenShift CLI (
oc).
Procedure
- Open the
HyperConvergedCR by running the following command:terminal$ oc edit hyperconvergeds.v1beta1.hco.kubevirt.io kubevirt-hyperconverged -n openshift-cnv - Add the
defaultCPUModelfield to the CR and set the value to the name of a CPU model that exists in the cluster:yamlapiVersion: hco.kubevirt.io/v1beta1 kind: HyperConverged metadata: name: kubevirt-hyperconverged namespace: openshift-cnv spec: defaultCPUModel: "EPYC-IBPB"where:
EPYC-IBPBSpecifies a CPU model that is supported by nodes in your cluster.
- Apply the YAML file to your cluster.
Configure a CPU model per-VM
You can specify a named CPU model in the virtual machine (VM) specification. This per-VM configuration takes precedence over any cluster-wide default CPU model.
The VM CPU model depends on the availability of CPU models within the VM and the cluster.
- If the VM does not have a defined CPU model, the
defaultCPUModelis automatically set using the CPU model defined at the cluster-wide level. - If both the VM and the cluster have a defined CPU model, the VM’s CPU model takes precedence.
- If neither the VM nor the cluster have a defined CPU model, the host-model is automatically set using the CPU model defined at the host level.
Prerequisites
- Install the OpenShift CLI (
oc).
Procedure
- To configure a named CPU model for a specific VM, edit the
VirtualMachinecustom resource (CR):yamlapiVersion: kubevirt.io/v1 kind: VirtualMachine metadata: name: myvm spec: template: spec: domain: cpu: model: Conroespec.template.spec.domain.cpu.modeldefines the named CPU model for the VM.
- Apply the CR to your cluster.