Commit Graph

1473 Commits

Author SHA1 Message Date
Aleksandra Malinowska
dd1e617ba0
Scheduler first fit (#123384)
* Don't evaluate extra nodes if there's no score plugin defined

* Fix existing unit test (add no op scoring plugin)

* Add unit tests for no score plugin scenario

* address review comments

* add a test with non-filter, non-scoring extender
2024-02-26 11:07:19 -08:00
kerthcet
b3ba6bda2b Add missed clusterEvents to UnrollWildCardResource
Signed-off-by: kerthcet <kerthcet@gmail.com>
2024-02-19 11:55:50 +08:00
AxeZhan
630ff96f9d Revert "Scheduler first fit" 2024-02-14 20:43:59 +08:00
Kubernetes Prow Robot
ad19beaa83
Merge pull request #123117 from kerthcet/fix/wild-resource
Fix registered wildcard clusterEvents doesn't work in scheduler requeueing
2024-02-09 10:34:15 -08:00
Kubernetes Prow Robot
e566bd7769
Merge pull request #121952 from sanposhiho/optimize-csi
add(nodevolumelimits): return UnschedulableAndUnresolvable when PVC is not found
2024-02-06 07:16:28 -08:00
kerthcet
f97dec2840 Add comments about wildcard clusterEvent
Signed-off-by: kerthcet <kerthcet@gmail.com>
2024-02-05 11:46:59 +08:00
kerthcet
d81023db30 When matching clusterEvent, we should consider the "*" additionally
Signed-off-by: kerthcet <kerthcet@gmail.com>
2024-02-04 14:59:26 +08:00
Toru Komatsu
3a4c35cc89
Comment on QHint for CSILimit when CSINodes are added (#122758)
Signed-off-by: utam0k <k0ma@utam0k.jp>
2024-02-02 22:16:20 -08:00
Kubernetes Prow Robot
278ea691e0
Merge pull request #122946 from NoicFank/enhance-sheduler-waiting-pods
enhancement(scheduler): share waitingPods among profiles
2024-02-02 02:11:32 -08:00
NoicFank
227c1915db enhancement(scheduler): share waitingPods among profiles 2024-02-01 10:06:23 +08:00
Kubernetes Prow Robot
c606448922
Merge pull request #122996 from Huang-Wei/cleanup-dra-postfilter
DRA: always returns Unschedulable in PostFilter
2024-01-27 08:19:44 -08:00
Kubernetes Prow Robot
02aaad0de9
Merge pull request #121876 from pohly/dra-reserve-during-pod-binding
dra: reserve + publish during pod binding
2024-01-26 19:58:01 +01:00
Wei Huang
ceabc4aba8
DRA: always returns Unschedulable in PostFilter 2024-01-26 09:44:00 -08:00
Patrick Ohly
6cf4203751 dra scheduler: reformat code
By continuing with the next item in the if clause, the else is no longer needed
and indention can be reduced.
2024-01-26 10:58:03 +01:00
Patrick Ohly
a809a6353b scheduler: publish PodSchedulingContext during PreBind
Blocking API calls during a scheduling cycle like the DRA plugin is doing slow
down overall scheduling, i.e. also affecting pods which don't use DRA.

It is easy to move the blocking calls into a goroutine while the scheduling
cycle ends with "pod unschedulable". The hard part is handling an error when
those API calls then fail in the background. There is a solution for that
(see https://github.com/kubernetes/kubernetes/pull/120963), but it's complex.

Instead, publishing the modified PodSchedulingContext can also be done
later. In the more common case of a pod which is ready for binding except for
its claims, that'll be in PreBind, which runs in a separate goroutine already.

In the less common case that a pod cannot be scheduled, that'll be in
Unreserve which is still blocking.
2024-01-26 10:58:03 +01:00
Patrick Ohly
5d1509126f dra: patch ReservedFor during PreBind
This moves adding a pod to ReservedFor out of the main scheduling cycle into
PreBind. There it is done concurrently in different goroutines. For claims
which were specifically allocated for a pod (the most common case), that
usually makes no difference because the claim is already reserved.

It starts to matter when that pod then cannot be scheduled for other reasons,
because then the claim gets unreserved to allow deallocating it. It also
matters for claims that are created separately and then get used multiple times
by different pods.

Because multiple pods might get added to the same claim rapidly independently
from each other, it makes sense to do all claim status updates via patching:
then it is no longer necessary to have an up-to-date copy of the claim because
the patch operation will succeed if (and only if) the patched claim is valid.

Server-side-apply cannot be used for this because a client always has to send
the full list of all entries that it wants to be set, i.e. it cannot add one
entry unless it knows the full list.
2024-01-26 10:58:03 +01:00
Kubernetes Prow Robot
6c493a1ef9
Merge pull request #122969 from kerthcet/fix/claim
[DRA] Fix indexing the error value in unavailableClaim
2024-01-25 17:34:11 +01:00
kerthcet
7801173f6e get the error claim in dra
Signed-off-by: kerthcet <kerthcet@gmail.com>
2024-01-25 23:22:50 +08:00
kerthcet
8371e4cf93 quick break when met
Signed-off-by: kerthcet <kerthcet@gmail.com>
2024-01-23 19:40:15 +08:00
Kubernetes Prow Robot
c6887b1c00
Merge pull request #117803 from sourcelliu/preFilterState
Optimize the performance of the Clone method of preFilterState
2024-01-19 10:57:20 +01:00
amewayne
71c3593f85 support nodeAnnotationsChanged event to trigger rescheduling 2024-01-10 22:38:54 +08:00
Kubernetes Prow Robot
919d4624a0
Merge pull request #122503 from sunbinnnnn/scheduler-extender-support-ignore-bind
Support ignore scheduler extender error when binding
2024-01-08 17:30:44 +01:00
Kubernetes Prow Robot
5b979a3a53
Merge pull request #122498 from Gekko0114/close
Allow framework plugins to be closed
2024-01-08 17:30:36 +01:00
Neil Sun
87816ffb2c Support ignore scheduler extender error when binding
Signed-off-by: sunbinnnnn <sunbinnnnn@hotmail.com>
2024-01-08 21:06:25 +08:00
Kubernetes Prow Robot
b529e6ff1c
Merge pull request #122622 from nayihz/cleanup_comment
swap originalPod and modifiedPod to match the comments
2024-01-06 14:20:50 +01:00
nayihz
edff1c3b2f swap originalPod and modifiedPod to match the comments. 2024-01-06 19:07:18 +08:00
moriya
288c00c0c7 Allow framework plugins to be closed 2024-01-06 10:11:19 +09:00
Kensei Nakada
09abd6be5a address reviews 2024-01-02 02:10:41 +00:00
Kensei Nakada
5ab2317947 run all PreFilter when the preemption will happen later in the same scheduling cycle 2024-01-01 09:44:06 +00:00
Kubernetes Prow Robot
3be9a8cc73
Merge pull request #122351 from sanposhiho/doc-update-for-add
doc: make it clear that how newly scheduled Pods are interpreted in cluster events
2023-12-31 08:04:43 +01:00
Kensei Nakada
e1e035e3a8 doc: make it clear that newly scheduled Pods are Pod/Add events 2023-12-31 05:58:12 +00:00
Kensei Nakada
bf1b3a161b add(nodevolumelimits): return UnschedulableAndUnresolvable when PVC is not found 2023-12-30 23:00:56 +00:00
Kubernetes Prow Robot
afa3f114d6
Merge pull request #117024 from sanposhiho/nodeaffinity-pre-score-skip
feature(NodeAffinity): return Skip in PreScore when nothing to do in Score
2023-12-27 16:53:51 +01:00
Kubernetes Prow Robot
e2a6ce713c
Merge pull request #122415 from pohly/dra-scheduler-deallocation-fix
dra scheduler: fix incorrect tracking of claim candidates for reallocation
2023-12-25 10:45:00 +01:00
Aleksandra Malinowska
e19be41f58 Don't evaluate extra nodes if there's no score plugin defined 2023-12-21 13:29:46 +01:00
Patrick Ohly
b0d4a8cd6d dra scheduler: fix incorrect tracking of claim candidates for reallocation
When dealing with unschedulable pods, the intent was to deallocate only claims
which are allocated and use delayed allocation. That if check wasn't handled
correctly, causing also claims with immediate allocation to be considered as
candidates.

Found during code reading, probably has never occurred in practice yet.
2023-12-20 09:04:01 +01:00
Kubernetes Prow Robot
2b5c0c281d
Merge pull request #122310 from weilaaa/use_buildin_max_min_instead
use build-in max and min func to instead of k8s.io/utils/integer funcs
2023-12-18 19:25:34 +01:00
Kubernetes Prow Robot
d74705119d
Merge pull request #122334 from carlory/fix-118893-4
NodeUnschedulable: scheduler queueing hints
2023-12-18 18:13:52 +01:00
Kubernetes Prow Robot
9dc0dbe878
Merge pull request #122195 from nayihz/feat_queuinghints
podtopologyspread: scheduler queueing hints
2023-12-18 16:58:12 +01:00
Kubernetes Prow Robot
56d0da546a
Merge pull request #121950 from sanposhiho/doc-postfilter
fix(framework): elaborate the document on PostFilter
2023-12-18 16:57:49 +01:00
Kensei Nakada
1d0453127d feature(NodeAffinity): return Skip in PreScore when nothing to do in Score 2023-12-18 12:00:10 +00:00
nayihz
09a80df1d1 podtopologyspread: scheduler queueing hints 2023-12-17 14:30:53 +08:00
carlory
d36a7089cd scheduler/NodeUnschedulable: reduce pod scheduling latency
Co-authored-by: wackxu <xushiwei5@huawei.com>
Co-authored-by: Kensei Nakada <handbomusic@gmail.com>
2023-12-16 20:50:11 +08:00
Kubernetes Prow Robot
e04316a68a
Merge pull request #121954 from AxeZhan/nodeInfo
Sched framework: expose NodeInfo in all functions of PluginsRunner interface
2023-12-15 18:33:00 +01:00
Kubernetes Prow Robot
b1cf91b300
Merge pull request #122309 from carlory/fix-118893-1
nodeaffinity: scheduler queueing hints
2023-12-15 17:17:33 +01:00
Kubernetes Prow Robot
195bb67d36
Merge pull request #119177 from carlory/fix-118893-3
noderesourcefit: scheduler queueing hints
2023-12-15 17:17:19 +01:00
weilaaa
eb8f3f194f use build-in max and min func to instead of k8s.io/utils/integer funcs 2023-12-15 15:09:11 +08:00
carlory
4d7c5d9257 nodeaffinity: scheduler queueing hints 2023-12-15 13:43:22 +08:00
AxeZhan
be48c93689 Sched framework: expose NodeInfo in all functions of PluginsRunner interface 2023-12-15 11:30:06 +08:00
Kubernetes Prow Robot
33beb81d8f
Merge pull request #122285 from sanposhiho/remove-qhint
Revert "scheduler/nodeaffinity: reduce pod scheduling latency"
2023-12-14 14:12:39 +01:00