Julian Lawrence
1a98a566b3
adding cancelation from sigint sigterm
2022-01-25 00:10:09 -08:00
Jan Chaloupka
203388ff1a
Evictor: report successful eviction independently of the dry-mode
...
Dry mode currently does not report metrics when the eviction succeeds
2022-01-20 21:23:19 +01:00
Jan Chaloupka
901a16ecbc
Do not collect the metrics when the metrics server is not enabled
2022-01-20 17:04:15 +01:00
Jan Chaloupka
e0f086ff85
Use a fake client when evicting pods by individual strategies to accumulate the evictions
...
Currently, when the descheduler is running with the --dry-run on, no strategy actually
evicts a pod so every strategy always starts with a complete list of
pods. E.g. when the PodLifeTime strategy evicts few pods, the RemoveDuplicatePods
strategy still takes into account even the pods eliminated by the PodLifeTime
strategy. Which does not correspond to the real case scenarios as the
same pod can be evicted multiple times. Instead, use a fake client and
evict/delete the pods from its cache so the strategies evict each pod
at most once as it would be normally done in a real cluster.
2022-01-20 17:04:05 +01:00
Kubernetes Prow Robot
551eced42a
Merge pull request #688 from babygoat/evict-failed-without-ownerrefs
...
feat: support eviction of failed bare pods
2022-01-11 12:31:15 -08:00
Julian Lawrence
77cb406052
updated until -> sliding until
2022-01-06 12:55:10 -08:00
babygoat
1529180d70
feat: support eviction of failed bare pods
...
This patch adds the policy(evictFailedBarePods) to allow the failed
pods without ownerReferences to be evicted. For backward compatibility,
disable the policy by default. Address #644 .
2022-01-06 01:07:41 +08:00
Jan Chaloupka
8462cf56d7
run ./hack/update-* scripts
2022-01-04 09:37:01 +01:00
Erik Jankovič
2020642b6f
chore: add pod.Status.Reason to the list of reasons
...
Signed-off-by: Erik Jankovič <erik.jankovic@gmail.com >
2021-12-17 18:37:53 +01:00
Kubernetes Prow Robot
1e5165ba9f
Merge pull request #670 from autumn0207/improve_pod_eviction_metrics
...
Add node name label to the counter metric for evicted pods
2021-12-16 01:49:18 -08:00
autumn0207
8e74f8bd77
improve pod eviction metrics
2021-12-16 17:06:22 +08:00
Kubernetes Prow Robot
2424928019
Merge pull request #667 from damemi/1.23-rc.0
...
bump: k8s to 1.23
2021-12-15 06:56:20 -08:00
Garrybest
cac3b9185b
reform all test files
...
Signed-off-by: Garrybest <garrybest@foxmail.com >
2021-12-11 19:43:16 +08:00
Mike Dame
4fa7bf978c
run hack/update-generated-deep-copies.sh
2021-12-10 10:02:39 -05:00
Garrybest
0ff8ecb41e
reform all strategies by using getPodsAssignedToNode
...
Signed-off-by: Garrybest <garrybest@foxmail.com >
2021-12-10 19:28:51 +08:00
Garrybest
08ed129a07
reform ListPodsOnANode by using pod informer and indexer
...
Signed-off-by: Garrybest <garrybest@foxmail.com >
2021-12-10 19:25:20 +08:00
Kubernetes Prow Robot
82201d0e48
Add maxNoOfPodsToEvictPerNamespace policy
2021-12-03 10:58:37 +08:00
Jan Chaloupka
73a7adf572
Drop deprecated flags
2021-11-29 17:12:59 +01:00
Jan Chaloupka
4603182320
Bump go version in go.mod to go1.17
2021-11-29 16:49:35 +01:00
Jane Liu L
c7524705b3
Ignore Pods With Deletion Timestamp
2021-11-10 09:32:11 +08:00
Kubernetes Prow Robot
3be910c238
Merge pull request #621 from uthark/oatamanenko/deleted
...
Ignore pods being deleted
2021-09-30 21:21:22 -07:00
Amir Alavi
f7c26ef41f
e2e tests for RemoveFailedPods strategy
...
Fix priority class default
2021-09-26 20:39:32 -04:00
Amir Alavi
6eb37ce079
RemoveFailedPods: guard against nil descheduler strategy (e.g. in case of default that loads all strategies)
2021-09-20 11:20:54 -04:00
kaiyuechen
d1d9ea0c48
fix duplicate code in node_affinity_test.go
2021-09-16 10:39:52 +08:00
Oleg Atamanenko
4448d9c670
Ignore pods being deleted
2021-09-15 00:05:51 -07:00
Amir Alavi
0e0e688fe8
Introduce RemoveFailedPods strategy
2021-08-30 14:17:52 -04:00
Daniel Klockenkämper
a6b34c1130
nodeutilization strategy: "numberOfNodes" should work as documented
2021-08-17 13:29:07 +00:00
Amir Alavi
b0e5d64bd7
TopologySpreadConstraint: advance above avg index when at ideal average when balancing domains
2021-07-13 22:55:10 -04:00
Jan Chaloupka
d998d82357
HighNodeUtilization: add NodeFit feature
2021-06-08 16:59:43 +02:00
Kubernetes Prow Robot
3843a2d5d1
Merge pull request #550 from hanumanthan/highnodeutilisation
...
Highnodeutilization strategy
2021-06-08 01:59:12 -07:00
Hanu
4cd1e66ef3
Adding highnodeutilization strategy
2021-06-06 18:01:42 +08:00
Hanu
2f18864fa5
Refractor - Modify the common functions to be used by high utilisation
2021-06-06 18:00:43 +08:00
Hanu
6e71068f4f
Refractoring lownodeutilization - extracting common functions
2021-06-06 18:00:29 +08:00
Amir Alavi
012ca2398f
Filter pods by labelSelector during eviction for TopologySpreadConstraint strategy
2021-06-01 15:42:23 -04:00
RyanDevlin
41d46d0d3b
Working nodeFit feature
2021-05-24 09:03:38 -04:00
Kubernetes Prow Robot
3b9d3d9719
Merge pull request #563 from ingvagabund/removeduplicates-take-taints-into-account-for-node-count
...
RemoveDuplicates: take node taints, node affinity and node selector into account when computing a number of feasible nodes for the average occurence of pods per node
2021-05-21 05:38:46 -07:00
Jan Chaloupka
5396282e3d
RemoveDuplicates: take node taints, node affinity and node selector into account when computing a number of feasible nodes for the average occurence of pods per node
...
Nodes with taints which are not tolerated by evicted pods will never run the
pods. The same holds for node affinity and node selector.
So increase the number of pods per feasible nodes to decrease the
number of evicted pods.
2021-05-18 16:13:24 +02:00
BinacsLee
fe8e17f72c
fix staticcheck failure for pkg/descheduler/descheduler_test.go
2021-05-17 23:07:12 +08:00
Amir Alavi
24c0ca2ef9
Take node's taints into consideration when balancing domains
2021-05-14 15:23:58 -04:00
Mike Dame
fc83c13166
Add test cases for soft constraints/multi constraints
2021-05-12 08:36:07 -04:00
Jan Chaloupka
4edbecc85d
Define NodeSelectorsEqual predicate
2021-05-09 18:08:32 +02:00
Jan Chaloupka
54f67266bb
Define TolerationsEqual
2021-05-09 18:08:27 +02:00
Sean Malloy
6bde95c9a1
Use Structured Logging For Unknown Strategy Log Message
...
Always use structured logging. Therefore update klog.Errorf() to instead
use klog.ErrorS().
Here is an example of the new log message.
E0428 23:58:57.048912 586 descheduler.go:145] "skipping strategy" err="unknown strategy name" strategy=ASDFPodLifeTime
2021-04-29 00:00:07 -05:00
Mike Dame
feae158a50
Invert main strategy loop for performance and customizability
2021-04-28 10:36:02 -04:00
BinacsLee
c4afb6bb30
code cleanup: remove check on length
2021-04-25 21:44:20 +08:00
Xiang Liu
a848dac3cf
Updating policy api version used in pod evictor
2021-04-13 11:02:01 +08:00
Jan Chaloupka
c239e1199f
LNU: improve nodeUsage logging
...
To avoid:
```
I0210 11:56:04.137956 3309277 lownodeutilization.go:389] "Updated node usage" updatedUsage={node:0xc000460000 usage:map[cpu:0xc00042b480 memory:0xc00042b4c0 pods:0xc00042b500] allPods:[0xc0004a0000 0xc0004a03e8 0xc0004a07d0 0xc0004a0bb8 0xc0004a0fa0 0xc0004a1388 0xc0004a1770 0xc0004a1b58] lowResourceThreshold:map[cpu:0xc00042b540 memory:0xc00042b580 pods:0xc00042b5c0] highResourceThreshold:map[cpu:0xc00042b600 memory:0xc00042b640 pods:0xc00042b680]}
I0210 11:56:04.138829 3309277 lownodeutilization.go:389] "Updated node usage" updatedUsage={node:0xc000460000 usage:map[cpu:0xc00042b480 memory:0xc00042b4c0 pods:0xc00042b500] allPods:[0xc0004a0000 0xc0004a03e8 0xc0004a07d0 0xc0004a0bb8 0xc0004a0fa0 0xc0004a1388 0xc0004a1770 0xc0004a1b58] lowResourceThreshold:map[cpu:0xc00042b540 memory:0xc00042b580 pods:0xc00042b5c0] highResourceThreshold:map[cpu:0xc00042b600 memory:0xc00042b640 pods:0xc00042b680]}
I0210 11:56:04.139044 3309277 lownodeutilization.go:389] "Updated node usage" updatedUsage={node:0xc000460000 usage:map[cpu:0xc00042b480 memory:0xc00042b4c0 pods:0xc00042b500] allPods:[0xc0004a0000 0xc0004a03e8 0xc0004a07d0 0xc0004a0bb8 0xc0004a0fa0 0xc0004a1388 0xc0004a1770 0xc0004a1b58] lowResourceThreshold:map[cpu:0xc00042b540 memory:0xc00042b580 pods:0xc00042b5c0] highResourceThreshold:map[cpu:0xc00042b600 memory:0xc00042b640 pods:0xc00042b680]}
```
2021-04-06 09:43:23 +02:00
ZongqiangZhang
81b816d4a4
support extended resources in lownodeutilization
2021-04-02 21:37:51 +08:00
Sean Malloy
af01b675b0
Update Generated Code
...
Ran "make gen" using Go 1.16.1. Some changes were merged, but "make gen"
was not run. This fixes the problem.
See below PR for reference:
https://github.com/kubernetes-sigs/descheduler/pull/523
2021-04-01 00:28:20 -05:00
RyanDevlin
b5d7219391
Completed evictSystemCriticalPods feature
2021-03-29 23:13:05 -04:00