mirror of
https://github.com/openshift/openshift-docs.git
synced 2026-02-05 21:46:22 +01:00
48 lines
1.9 KiB
Plaintext
48 lines
1.9 KiB
Plaintext
// Module included in the following assemblies:
|
|
//
|
|
// * virt/virtual_machines/advanced_vm_management/virt-specifying-nodes-for-vms.adoc
|
|
|
|
:_mod-docs-content-type: REFERENCE
|
|
[id="virt-example-vm-node-placement-pod-affinity_{context}"]
|
|
= Example: VM node placement with pod affinity and pod anti-affinity
|
|
|
|
In this example, the VM must be scheduled on a node that has a running pod with the label `example-key-1 = example-value-1`. If there is no such pod running on any node, the VM is not scheduled.
|
|
|
|
If possible, the VM is not scheduled on a node that has any pod with the label `example-key-2 = example-value-2`. However, if all candidate nodes have a pod with this label, the scheduler ignores this constraint.
|
|
|
|
.Example VM manifest
|
|
[source,yaml]
|
|
----
|
|
metadata:
|
|
name: example-vm-pod-affinity
|
|
apiVersion: kubevirt.io/v1
|
|
kind: VirtualMachine
|
|
spec:
|
|
template:
|
|
spec:
|
|
affinity:
|
|
podAffinity:
|
|
requiredDuringSchedulingIgnoredDuringExecution: <1>
|
|
- labelSelector:
|
|
matchExpressions:
|
|
- key: example-key-1
|
|
operator: In
|
|
values:
|
|
- example-value-1
|
|
topologyKey: kubernetes.io/hostname
|
|
podAntiAffinity:
|
|
preferredDuringSchedulingIgnoredDuringExecution: <2>
|
|
- weight: 100
|
|
podAffinityTerm:
|
|
labelSelector:
|
|
matchExpressions:
|
|
- key: example-key-2
|
|
operator: In
|
|
values:
|
|
- example-value-2
|
|
topologyKey: kubernetes.io/hostname
|
|
# ...
|
|
----
|
|
<1> If you use the `requiredDuringSchedulingIgnoredDuringExecution` rule type, the VM is not scheduled if the constraint is not met.
|
|
<2> If you use the `preferredDuringSchedulingIgnoredDuringExecution` rule type, the VM is still scheduled if the constraint is not met, as long as all required constraints are met.
|