kubernetes-sigs / descheduler

Descheduler for Kubernetes
https://sigs.k8s.io/descheduler
Apache License 2.0
4.26k stars 650 forks source link

Doesn't seem to deschedule pods on Windows noes #1251

Closed andyr8939 closed 9 months ago

andyr8939 commented 9 months ago

What version of descheduler are you using?

descheduler version: v0.28.0

Does this issue reproduce with the latest release?

Yes

Which descheduler CLI options are you using?

Deployed with helm.

Please provide a copy of your descheduler policy config file

Using standard helm values but running as deployment and with pod topology spread as the check.

What k8s version are you using (kubectl version)?

kubectl version Output
$ kubectl version
Client Version: v1.28.0
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.25.6

What did you do?

Deployed with helm chart and descheduler deploys.

What did you expect to see?

Linux and Windows node workloads getting re-scheduled.

What did you see instead?

Only workloads on the linux nodepools are getting scanned and re-scheduled. Nothing on any windows node is being touched despite them breaking pod topology spread constraints.

JaneLiuL commented 9 months ago

hi, we have nodeSelector feature for it, please check Evictor Plugin configuration

andyr8939 commented 9 months ago

Thanks, I tried that but it still doesn't work. If I put it like this in the helm values

deschedulerPolicy: nodeSelector: "kubernetes.io/os=windows"

Then nothing happens. If however I change that to

deschedulerPolicy: nodeSelector: "kubernetes.io/os=linux"

Then it will happily process all linux workloads the same as if I didn't specify it. So it appears to not process any workloads that are running on a Windows nodepool. For reference I am using Azure Kubernetes Service on 1.25.6 with Windows 2022 as the OS SKU for the nodepool.

andyr8939 commented 9 months ago

OK I done some more digging and I backtrack, it can process them as I created a new workload and it picks it up fine, Its just something with my existing workloads that it seems to not attempting to process them. I'll close this for now.