You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: modules/virt-about-node-placement-virtualization-components.adoc
+36-7Lines changed: 36 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,18 +11,27 @@ You might want to customize where {VirtProductName} deploys its components to en
11
11
* Operators only deploy on infrastructure nodes.
12
12
* Certain nodes are unaffected by {VirtProductName}. For example, you have workloads unrelated to virtualization running on your cluster, and you want those workloads to be isolated from {VirtProductName}.
13
13
14
-
You can specify node placement rules for the {VirtProductName} Operators that Operator Lifecycle Manager (OLM) deploys by editing the OLM `Subscription` object.
== How to apply node placement rules to virtualization components
15
16
16
-
To specify node placement rules for components that the {VirtProductName} Operators deploy, edit the HyperConverged Cluster custom resource (CR).
17
+
You can specify node placement rules for a component by editing the corresponding object directly or by using the web console.
17
18
18
-
[id="about-node-placement-rules_{context}"]
19
-
== About node placement rules
19
+
* For the {VirtProductName} Operators that Operator Lifecycle Manager (OLM) deploys, edit the OLM `Subscription` object directly. Currently, you cannot configure node placement rules for the `Subscription` object by using the web console.
20
+
* For components that the {VirtProductName} Operators deploy, edit the `HyperConverged` object directly or configure it by using the web console during {VirtProductName} installation.
21
+
* For the hostpath provisioner, edit the `HostPathProvisioner` object directly or configure it by using the web console.
22
+
+
23
+
[WARNING]
24
+
====
25
+
You must schedule the hostpath provisioner and the virtualization components on the same nodes. Otherwise, virtualization pods that use the hostpath provisioner cannot run.
26
+
====
27
+
28
+
Depending on the object, you can use one or more of the following rule types:
20
29
21
30
`nodeSelector`:: Allows pods to be scheduled on nodes that are labeled with the key-value pair or pairs that you specify in this field. The node must have labels that exactly match all listed pairs.
22
31
`affinity`:: Enables you to use more expressive syntax to set rules that match nodes with pods. Affinity also allows for more nuance in how the rules are applied. For example, you can specify that a rule is a preference, rather than a hard requirement, so that pods are still scheduled if the rule is not satisfied.
23
32
`tolerations`:: Allows pods to be scheduled on nodes that have matching taints. If a taint is applied to a node, that node only accepts pods that tolerate the taint.
To specify the nodes where OLM deploys the {VirtProductName} Operators, edit the `Subscription` object during {VirtProductName} installation. You can include node placement rules in the `spec.config` field, as shown in the following example:
@@ -44,8 +53,8 @@ spec:
44
53
----
45
54
<1> The `config` field supports `nodeSelector` and `tolerations`, but it does not support `affinity`.
46
55
47
-
[id="node-placement-hco-cluster-cr_{context}"]
48
-
== Node placement in the HyperConverged Cluster CR
56
+
[id="node-placement-hco_{context}"]
57
+
== Node placement in the HyperConverged object
49
58
50
59
To specify the nodes where {VirtProductName} deploys its components, you can include the `nodePlacement` object in the HyperConverged Cluster custom resource (CR) file that you create during {VirtProductName} installation. You can include `nodePlacement` under the `spec.infra` and `spec.workloads` fields, as shown in the following example:
51
60
@@ -64,3 +73,23 @@ spec:
64
73
nodePlacement:
65
74
----
66
75
<1> The `nodePlacement` field supports `nodeSelector`, `affinity`, and `tolerations` fields.
76
+
77
+
[id="node-placement-hpp_{context}"]
78
+
== Node placement in the HostPathProvisioner object
79
+
80
+
You can configure node placement rules in the `spec.workload` field of the `HostPathProvisioner` object that you create when you install the hostpath provisioner.
= Example: Node placement with nodeSelector in the HostPathProvisioner object
7
+
8
+
In this example, `nodeSelector` is configured so that workloads are placed on nodes labeled with `example.io/example-workloads-key = example-workloads-value`.
to subscribe to and deploy the {VirtProductName} Operators.
13
13
14
-
[NOTE]
15
-
====
16
-
To specify the nodes where you want {VirtProductName} to install its components, xref:../../virt/install/virt-specifying-nodes-for-virtualization-components.adoc#virt-specifying-nodes-for-virtualization-components[configure node placement rules].
17
-
====
18
-
19
14
[id="prerequisites_{context}"]
20
15
== Prerequisites
21
16
* Install {product-title} {product-version} on your cluster.
Specify the nodes where you want to deploy {VirtProductName} Operators, workloads, and controllers by configuring node placement rules during xref:../../virt/install/installing-virt-cli.adoc#installing-virt-cli[installation].
8
+
Specify the nodes where you want to deploy {VirtProductName} Operators, workloads, and controllers by configuring node placement rules.
* xref:../../nodes/scheduling/nodes-scheduler-node-selectors.html#nodes-scheduler-node-selectors[Placing pods on specific nodes using node selectors]
21
23
* xref:../../nodes/scheduling/nodes-scheduler-node-affinity.adoc#nodes-scheduler-node-affinity[Controlling pod placement on nodes using node affinity rules]
22
24
* xref:../../nodes/scheduling/nodes-scheduler-taints-tolerations.adoc#nodes-scheduler-taints-tolerations[Controlling pod placement using node taints]
23
25
26
+
[id="installation-resources_{context}"]
27
+
==== Installing {VirtProductName}
28
+
* xref:../../virt/install/installing-virt-cli.adoc#installing-virt-cli[Installing {VirtProductName} using the CLI]
29
+
* xref:../../virt/install/installing-virt-web.adoc#installing-virt-web[Installing {VirtProductName} using the web console]
30
+
31
+
[id="hostpath-provisioner-resources_{context}"]
32
+
==== Configuring the hostpath provisioner
33
+
* xref:../../virt/virtual_machines/virtual_disks/virt-configuring-local-storage-for-vms.adoc#virt-configuring-local-storage-for-vms[Configuring local storage for virtual machines]
34
+
24
35
[id="example-manifests_{context}"]
25
36
== Example manifests
26
37
27
-
The following example YAML snippets use `nodePlacement`, `affinity`, and `tolerations` objects to customize node placement for {VirtProductName} components.
38
+
The following example YAML files use `nodePlacement`, `affinity`, and `tolerations` objects to customize node placement for {VirtProductName} components.
0 commit comments