Comments (2)
Hi @sarg3nt ,
could you check if the descheduler works for you when you use the new configuration format v1alpha2? I also had problems getting it to work and it turns out the v0.29.0 already ignores any v1alpha1 config like the one you have in your helm values. See the readme for references: https://github.com/kubernetes-sigs/descheduler?tab=readme-ov-file#policy-default-evictor-and-strategy-plugins
An example that is running fine for me looks like this:
# Recommended to use the latest Policy API version supported by the Descheduler app version
deschedulerPolicyAPIVersion: "descheduler/v1alpha2"
deschedulerPolicy:
profiles:
- name: default
pluginConfig:
- name: DefaultEvictor
args:
ignorePvcPods: true
evictLocalStoragePods: true
- name: RemoveDuplicates
- name: RemovePodsHavingTooManyRestarts
args:
podRestartThreshold: 5
includingInitContainers: true
- name: LowNodeUtilization
args:
thresholds:
cpu: 30
memory: 30
pods: 30
targetThresholds:
cpu: 70
memory: 70
pods: 70
plugins:
balance:
enabled:
- RemoveDuplicates
- LowNodeUtilization
deschedule:
enabled:
- RemovePodsHavingTooManyRestarts
You can also increase the verbosity of the logging output like this (see e.g. https://github.com/kubernetes-sigs/descheduler?tab=readme-ov-file#pod-evictions):
cmdOptions:
v: 5
However, in case no balancer or evcition is configured this will not change much.
Once your config is correct it should output something along these lines:
descheduler-55b8cb6f58-kpfn4 descheduler I0521 15:33:32.238954 1 defaultevictor.go:202] "Pod fails the following checks" pod="kube-monitoring/prometheus-operator-kube-monitoring-prometheus-node-exportslk6q" checks="pod is a DaemonSet pod"
descheduler-55b8cb6f58-kpfn4 descheduler I0521 15:33:32.239001 1 defaultevictor.go:202] "Pod fails the following checks" pod="kube-system/descheduler-55b8cb6f58-kpfn4" checks="[pod has system critical priority, pod has higher priority than specified priority class threshold]"
descheduler-55b8cb6f58-kpfn4 descheduler I0521 15:33:32.239138 1 profile.go:356] "Total number of pods evicted" extension point="Balance" evictedPods=0
Best regards,
Florian.
from descheduler.
Hi @fbuchmeier-abi thanks for pointing that out. I think the "bug" then is that the default values in the 0.29.0
chart are wrong, as that was what I was using.
I saw that 0.30.0
was out so I upgraded to that and used your values and it worked.
I then took a look at the values.yaml for 0.30.0
which is release-1.30
(why???) and tried those and got more errors. Eventually I figured out that two values in the default deschedulerPolicy
are not supported.
The commented out lines below are the culprits. nodeAffinityType
and includeSoftConstraints
deschedulerPolicy:
profiles:
- name: default
pluginConfig:
- name: DefaultEvictor
args:
ignorePvcPods: true
evictLocalStoragePods: true
- name: RemoveDuplicates
- name: RemovePodsHavingTooManyRestarts
args:
podRestartThreshold: 100
includingInitContainers: true
- name: RemovePodsViolatingNodeTaints
# args:
# nodeAffinityType:
# - requiredDuringSchedulingIgnoredDuringExecution
- name: RemovePodsViolatingInterPodAntiAffinity
- name: RemovePodsViolatingTopologySpreadConstraint
#args:
# includeSoftConstraints: false
- name: LowNodeUtilization
args:
thresholds:
cpu: 20
memory: 20
pods: 20
targetThresholds:
cpu: 50
memory: 50
pods: 50
plugins:
balance:
enabled:
- RemoveDuplicates
- RemovePodsViolatingNodeAffinity
- RemovePodsViolatingTopologySpreadConstraint
- LowNodeUtilization
deschedule:
enabled:
- RemovePodsHavingTooManyRestarts
- RemovePodsViolatingNodeTaints
- RemovePodsViolatingNodeAffinity
- RemovePodsViolatingInterPodAntiAffinity
So maybe someone should update the vaules.yaml
for 1.30
Thank you again. All is working now and I'll close with this comment.
from descheduler.
Related Issues (20)
- 1.30: Update version references in docs and readme
- Chart not available anymore HOT 2
- CrashLoopBackOff 0.29.0 HOT 5
- 1.30: Update CI in test-infra HOT 1
- Create v0.30.0 tag on master HOT 1
- Promote v0.30.0 docker image
- Helm chart version update to v0.30.0 HOT 1
- Endless descheduling of pods with node affinity preferredDuringSchedulingIgnoredDuringExecution and enough resources available on not tainted node but not on a tainted node
- Default deschedulerPolicy in helm chart causes crashloop HOT 3
- Add a new extension point EvictPlugin to descheduling framework HOT 1
- unknown phase feature HOT 3
- Latest version does not work with helm chart anymore HOT 1
- `failed to convert Descheduler minor version to float` on start HOT 5
- `unknown field nodeAffinityType` error with v0.30.0 HOT 8
- KEP-1421: Make individual NodeFit predicates configurable
- Unable to create a profile err="profile \"test\" configures deschedule extension point of non-existing plugins: map[RemovePodsViolatingTopologySpreadConstraint:{}]" HOT 4
- otel: conflicting Schema URL HOT 4
- Enable Service in Descheduler without ClusterIP as None - Helm Chart HOT 3
- Unable to create a profile" err="unable to build DefaultEvictor plugin HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from descheduler.