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/nodes-descheduler-profiles.adoc
+65-3Lines changed: 65 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -90,9 +90,73 @@ Do not enable `CompactAndScale` with any of the following profiles: `LifecycleAn
90
90
91
91
endif::nodes[]
92
92
ifdef::virt[]
93
-
Use the `LongLifecycle` profile to enable the descheduler on a virtual machine. This is the only descheduler profile currently available for {VirtProductName}. To ensure proper scheduling, create VMs with CPU and memory requests for the expected load.
93
+
Use the `DevKubeVirtRelieveAndMigrate` or `LongLifecycle` profile to enable the descheduler on a virtual machine.
94
+
95
+
[IMPORTANT]
96
+
====
97
+
You can not have both `DevKubeVirtRelieveAndMigrate` and `LongLifeCycle` enabled at the same time.
98
+
====
94
99
endif::virt[]
95
100
101
+
`DevKubeVirtRelieveAndMigrate`:: This profile is an enhanced version of the `LongLifeCycle` profile.
102
+
+
103
+
--
104
+
:FeatureName: The `DevKubeVirtRelieveAndMigrate` profile
105
+
include::snippets/technology-preview.adoc[]
106
+
:!FeatureName:
107
+
--
108
+
109
+
The `DevKubeVirtRelieveAndMigrate` profile evicts pods from high-cost nodes to reduce overall resource expenses and enable workload migration. It also periodically rebalances workloads to help maintain similar spare capacity across nodes, which supports better handling of sudden workload spikes. Nodes can experience the following costs:
110
+
111
+
--
112
+
* **Resource utilization**: Increased resource pressure raises the overhead for running applications.
113
+
* **Node maintenance**: A higher number of containers on a node increases resource consumption and maintenance costs.
114
+
115
+
The profile enables the `LowNodeUtilization` strategy with the `EvictionsInBackground` alpha feature. The profile also exposes the following customization fields:
* `devLowNodeUtilizationThresholds`: Sets experimental thresholds for the `LowNodeUtilization` strategy. Do not use this field with `devDeviationThresholds`.
119
+
* `devDeviationThresholds`: Treats nodes with below-average resource usage as underutilized to help redistribute workloads from overutilized nodes. Do not use this field with `devLowNodeUtilizationThresholds`. Supported values are: `Low` (10%:10%), `Medium` (20%:20%), `High` (30%:30%), `AsymmetricLow` (0%:10%), `AsymmetricMedium` (0%:20%), `AsymmetricHigh` (0%:30%).
120
+
* `devEnableSoftTainter`: Enables the soft-tainting component to dynamically apply or remove soft taints as scheduling hints.
The `DevKubeVirtRelieveAndMigrate` profile requires PSI metrics to be enabled on all worker nodes. You can enable this by applying the following `MachineConfig` custom resource (CR):
143
+
144
+
.Example `MachineConfig` CR
145
+
[source,yaml]
146
+
----
147
+
apiVersion: machineconfiguration.openshift.io/v1
148
+
kind: MachineConfig
149
+
metadata:
150
+
labels:
151
+
machineconfiguration.openshift.io/role: worker
152
+
name: 99-openshift-machineconfig-worker-psi-karg
153
+
spec:
154
+
kernelArguments:
155
+
- psi=1
156
+
----
157
+
158
+
You can use this profile with the `SoftTopologyAndDuplicates` profile to also rebalance pods based on soft topology constraints, which can be useful in hosted control plane environments.
159
+
96
160
// Show LongLifecycle profile both for virt and nodes
97
161
`LongLifecycle`:: This profile balances resource usage between nodes and enables the following strategies:
98
162
+
@@ -102,15 +166,13 @@ endif::virt[]
102
166
** A node is considered underutilized if its usage is below 20% for all thresholds (CPU, memory, and number of pods).
103
167
** A node is considered overutilized if its usage is above 50% for any of the thresholds (CPU, memory, and number of pods).
104
168
--
105
-
+
106
169
--
107
170
ifdef::nodes[]
108
171
[WARNING]
109
172
====
110
173
Do not enable `LongLifecycle` with any of the following profiles: `LifecycleAndUtilization` or `CompactAndScale`. Enabling these profiles together results in a conflict.
0 commit comments