Skip to content

Commit 536068c

Browse files
Merge pull request #470 from ingvagabund/new-relieve-and-migrate-op-profile
New DevKubeVirtRelieveAndMigrate profile
2 parents 85fdad8 + 68581f4 commit 536068c

21 files changed

+640
-335
lines changed

README.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ The following profiles are currently provided:
107107
* [`LifecycleAndUtilization`](#LifecycleAndUtilization)
108108
* [`LongLifecycle`](#LongLifecycle)
109109
* [`CompactAndScale`](#compactandscale-techpreview)
110+
* [`devKubeVirtRelieveAndMigrate`](#devkubevirtrelieveandmigrate-techpreview)
110111
* [`EvictPodsWithPVC`](#EvictPodsWithPVC)
111112
* [`EvictPodsWithLocalStorage`](#EvictPodsWithLocalStorage)
112113

@@ -152,6 +153,22 @@ An under utilized node is any node consuming less than 20% of its available cpu,
152153
This profile enables the [`HighNodeUtilization`](https://github.com/kubernetes-sigs/descheduler/#highnodeutilization) strategy.
153154
In the future, more configuration may be made available through the operator based on user feedback.
154155

156+
### devKubeVirtRelieveAndMigrate
157+
158+
This profiles seeks to evict pods from high-cost nodes to relieve overall expenses while considering workload migration.
159+
Node cost can include:
160+
- Actual resource utilization: Increased resource pressure leads to higher overhead for running applications.
161+
- Node maintenance costs: A higher number of containers on a node results in greater resource counting.
162+
Migration strategies may involve VM live migration, state transitions between stateful set pods, and other methods.
163+
164+
This profile enables the [`LowNodeUtilization`](https://github.com/kubernetes-sigs/descheduler/#lownodeutilization) strategy
165+
with `EvictionsInBackground` alpha feature enabled.
166+
In the future, more configuration may be made available through the operator based on user feedback.
167+
168+
The profile exposes the following customization:
169+
- `devLowNodeUtilizationThresholds`: Sets experimental thresholds for the LowNodeUtilization strategy.
170+
- `devActualUtilizationProfile`: Enable load-aware descheduling.
171+
155172
### EvictPodsWithPVC
156173
By default, the operator prevents pods with PVCs from being evicted. Enabling this
157174
profile in combination with any of the above profiles allows pods with PVCs to be

pkg/apis/descheduler/v1/types_descheduler.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,9 @@ var (
180180

181181
// CompactAndScale seeks to evict pods to enable the same workload to run on a smaller set of nodes.
182182
CompactAndScale DeschedulerProfile = "CompactAndScale"
183+
184+
// RelieveAndMigrate seeks to evict pods from high-cost nodes to relieve overall expenses while considering workload migration.
185+
RelieveAndMigrate DeschedulerProfile = "DevKubeVirtRelieveAndMigrate"
183186
)
184187

185188
// DeschedulerProfile allows configuring the enabled strategy profiles for the descheduler

pkg/generated/applyconfiguration/descheduler/v1/kubedescheduler.go

Lines changed: 34 additions & 34 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/generated/applyconfiguration/descheduler/v1/kubedeschedulerspec.go

Lines changed: 16 additions & 16 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)