apic clflush cmov cx16 cx8 de fpu fxsr lahf_lm lm mca mce mmx msr mtrr nx pae pat pge pni pse pse36 sep sse sse2 sse4.1 ssse3 syscall tsc
You can schedule a virtual machine (VM) on a node where the CPU model and policy attribute of the VM are compatible with the CPU models and policy attributes that the node supports. By specifying a list of obsolete CPU models in a config map, you can exclude them from the list of labels created for CPU models.
To ensure that a node supports only valid CPU models for scheduled VMs, create a config map with a list of obsolete CPU models. When the node-labeller
obtains the list of obsolete CPU models, it eliminates those CPU models and creates labels for valid CPU models.
If you do not configure a config map with a list of obsolete CPU models, all CPU models are evaluated for labels, including obsolete CPU models that are not present in your environment. |
Through the process of iteration, the list of base CPU features in the minimum CPU model are eliminated from the list of labels generated for the node. For example, an environment might have two supported CPU models: Penryn
and Haswell
.
If Penryn
is specified as the CPU model for minCPU
, the node-labeller
evaluates each base CPU feature for Penryn
and compares it with each CPU feature supported by Haswell
. If the CPU feature is supported by both Penryn
and Haswell
, the node-labeller
eliminates that feature from the list of CPU features for creating labels. If a CPU feature is supported only by Haswell
and not by Penryn
, that CPU feature is included in the list of generated labels. The node-labeller
follows this iterative process to eliminate base CPU features that are present in the minimum CPU model and create labels.
The following example shows the complete list of CPU features for Penryn
which is specified as the CPU model for minCPU
:
apic clflush cmov cx16 cx8 de fpu fxsr lahf_lm lm mca mce mmx msr mtrr nx pae pat pge pni pse pse36 sep sse sse2 sse4.1 ssse3 syscall tsc
The following example shows the complete list of CPU features for Haswell
:
aes apic avx avx2 bmi1 bmi2 clflush cmov cx16 cx8 de erms fma fpu fsgsbase fxsr hle invpcid lahf_lm lm mca mce mmx movbe msr mtrr nx pae pat pcid pclmuldq pge pni popcnt pse pse36 rdtscp rtm sep smep sse sse2 sse4.1 sse4.2 ssse3 syscall tsc tsc-deadline x2apic xsave
The following example shows the list of node labels generated by the node-labeller
after iterating and comparing the CPU features for Penryn
with the CPU features for Haswell
:
aes avx avx2 bmi1 bmi2 erms fma fsgsbase hle invpcid movbe pcid pclmuldq popcnt rdtscp rtm sse4.2 tsc-deadline x2apic xsave
Use this procedure to configure a config map for obsolete CPU models.
Create a ConfigMap
object, specifying the obsolete CPU models in the obsoleteCPUs
array. For example:
apiVersion: v1
kind: ConfigMap
metadata:
name: cpu-plugin-configmap (1)
data: (2)
cpu-plugin-configmap:
obsoleteCPUs: (3)
- "486"
- "pentium"
- "pentium2"
- "pentium3"
- "pentiumpro"
minCPU: "Penryn" (4)
1 | Name of the config map. |
2 | Configuration data. |
3 | List of obsolete CPU models. |
4 | Minimum CPU model that is used for basic CPU features. |