Commit Graph

915 Commits

Author SHA1 Message Date
vinay kulkarni
231849a908 In-place Pod Vertical Scaling - Scheduler changes 2023-02-24 18:14:21 +00:00
TommyStarK
5531295bf9 scheduler/framework/plugins/volumebinding: fix inaccurate log for when a volume is bound to a claim
Signed-off-by: TommyStarK <thomasmilox@gmail.com>
2023-02-24 16:43:38 +01:00
Kubernetes Prow Robot
4dfd2fe74d Merge pull request #115922 from sourcelliu/impovevolume
Improve performance of method haveOverlap
2023-02-21 11:34:08 -08:00
mantuliu
edc0455c5c Improve performance of method haveOverlap
Signed-off-by: mantuliu <240951888@qq.com>
2023-02-22 00:51:55 +08:00
mantuliu
af85f410a2 Improve the performance of slice usage
Signed-off-by: mantuliu <240951888@qq.com>
2023-02-21 19:30:27 +08:00
mantuliu
e1e07e34e3 Improve performance of method haveOverlap
Signed-off-by: mantuliu <240951888@qq.com>
2023-02-21 16:50:10 +08:00
Yoon Park
c6276cc2ab Fix typo at most_allocated_test.go 2023-02-21 10:32:40 +09:00
Kubernetes Prow Robot
a0878eb715 Merge pull request #115709 from yoongon/feature/default-binder-testnode
Use predefined variable instead of duplicated string
2023-02-13 14:53:49 -08:00
Yoon
a3405f35b4 Use predefined variable instead of duplicated string 2023-02-12 20:50:39 +09:00
Chris Henzie
dbc7d8ded0 feat: support preemption for pods using ReadWriteOncePod PVCs
PVCs using the ReadWriteOncePod access mode can only be referenced by a
single pod. When a pod is scheduled that uses a ReadWriteOncePod PVC,
return "Unschedulable" if the PVC is already in-use in the cluster.

To support preemption, the "VolumeRestrictions" scheduler plugin
computes cycle state during the PreFilter phase. This cycle state
contains the number of references to the ReadWriteOncePod PVCs used by
the pod-to-be-scheduled.

During scheduler simulation (AddPod and RemovePod), we add and remove
reference counts from the cycle state if they use any of these
ReadWriteOncePod PVCs.

In the Filter phase, the scheduler checks if there are any PVC reference
conflicts, and returns "Unschedulable" if there is a conflict.

This is a required feature for the ReadWriteOncePod beta. See for more context:
https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/2485-read-write-once-pod-pv-access-mode#beta
2023-01-30 10:59:22 -08:00
Sunny Song
5e2f12e943 Fix nil pointer error in nodevolumelimits csi logging 2023-01-25 09:37:46 -08:00
Patrick Ohly
bc6c7fa912 logging: fix names of keys
The stricter checking with the upcoming logcheck v0.4.1 pointed out these names
which don't comply with our recommendations in
https://github.com/kubernetes/community/blob/master/contributors/devel/sig-instrumentation/migration-to-structured-logging.md#name-arguments.
2023-01-23 14:24:29 +01:00
Kubernetes Prow Robot
7b1b8d5734 Merge pull request #114889 from sanposhiho/skip/inter-pod-affinity
feature(InterPodAffinity): return Skip in PreFilter
2023-01-18 20:36:35 -08:00
Kensei Nakada
3b20a007ed feature(InterPodAffinity): return Skip in PreFilter 2023-01-19 01:24:18 +00:00
Kubernetes Prow Robot
98da10e4f2 Merge pull request #115052 from kidddddddddddddddddddddd/fix/volume_zone
fix volume_zone, iterate all topologyLabels when check node
2023-01-18 10:54:46 -08:00
Kubernetes Prow Robot
f16e62ae0c Merge pull request #114897 from kidddddddddddddddddddddd/volumebinding
feature(volumebinding): return Skip in PreFilter
2023-01-16 23:38:32 -08:00
kidddddddddddddddddddddd
2ba4c00b3c hasAnyNodeConstraint 2023-01-14 15:29:54 +08:00
Kubernetes Prow Robot
eabb70833a Merge pull request #114896 from kidddddddddddddddddddddd/volume_zone
feature(volume_zone): return Skip in PreFilter
2023-01-13 23:14:13 -08:00
Kubernetes Prow Robot
3a8e2e399b Merge pull request #114393 from danielvegamyhre/myfeature
Option to ignore existing pods' preferred inter-pod affinities if the incoming pod has no preferred inter-pod affinities
2023-01-13 17:28:15 -08:00
Daniel Vega-Myhre
41817b1888 optionally ignore preferred terms of existing pods unless incoming pod
has inter-pod affinities
2023-01-13 23:15:53 +00:00
kidddddddddddddddddddddd
733d5695f2 always run filter in test 2023-01-08 11:13:16 +08:00
kidddddddddddddddddddddd
5411c05460 save state data for reserve 2023-01-08 10:49:35 +08:00
kidddddddddddddddddddddd
0abdf6abc2 revert check in filter 2023-01-07 22:30:16 +08:00
kidddddddddddddddddddddd
059d520537 return skip 2023-01-07 21:58:54 +08:00
kidddddddddddddddddddddd
de7c8db7cb return skip 2023-01-07 21:48:30 +08:00
Kensei Nakada
570c2d7036 cleanup(nodeaffinity): remove impossible scenario from test cases 2023-01-07 08:46:35 +00:00
Kubernetes Prow Robot
c549b59983 Merge pull request #114125 from sanposhiho/skip-reimplementation
feature(scheduler): won't run Filter if PreFilter returned a Skip status
2023-01-06 02:25:59 -08:00
Kensei Nakada
e5b536755f feature(scheduler): won't run Filter if PreFilter returned a Skip status 2023-01-06 07:38:15 +00:00
Wei Huang
9b64025f36 rename 'PreemptionByKubeScheduler' to 'PreemptionByScheduler' 2023-01-05 10:31:57 -08:00
Wei Huang
91742e2393 Enhanced logic to identify eligible preemption node 2023-01-05 10:31:57 -08:00
Kubernetes Prow Robot
3a5829044c Merge pull request #114098 from kidddddddddddddddddddddd/feat/pv_list
Optimize volumebinding by moving PV list calls to PreFilter
2022-12-22 10:11:37 -08:00
Kubernetes Prow Robot
419e0ec3d2 Merge pull request #114390 from tangwz/improve_NodeResourcesFit_replace_small_maps_with_slices
Improve performance of NodeResourcesFit scoring
2022-12-22 06:57:26 -08:00
kidddddddddddddddddddddd
27c5c0a16d pv_list to prefilter 2022-12-22 14:59:41 +08:00
Kubernetes Prow Robot
70c28f3e12 Merge pull request #114486 from kerthcet/cleanup/make-preemption-more-readable
Make handling scheduleResult more readable
2022-12-21 15:01:25 -08:00
Kante Yin
c8908716ee Make handling scheduleResult more readable
Signed-off-by: Kante Yin <kerthcet@gmail.com>
2022-12-22 01:22:34 +08:00
tangwz
a4ab559ba4 Improve performance of NodeResourcesFit scoring
Signed-off-by: tangwz <tangwz.com@gmail.com>
2022-12-21 23:23:47 +08:00
Kubernetes Prow Robot
a3ca5fd2c8 Merge pull request #114456 from kidddddddddddddddddddddd/status_with_error
return error message when calling status.Message()
2022-12-19 11:09:43 -08:00
kidddddddddddddddddddddd
e789beb213 errMsg 2022-12-19 23:52:06 +08:00
Jordan Liggitt
78cb3862f1 Fix indentation/spacing in comments to render correctly in godoc 2022-12-17 23:27:38 -05:00
Kubernetes Prow Robot
c2b5457dfa Merge pull request #109877 from yibozhuang/local-pv-prefilter-result
scheduler volumebinding: leverage PreFilterResult for bound local PVs
2022-12-13 14:53:34 -08:00
Kubernetes Prow Robot
c80b03fee8 Merge pull request #113499 from kerthcet/cleanup/map-empty-judgement
Fix: resourceToWeightMap will never be nil here
2022-12-12 00:15:33 -08:00
Kubernetes Prow Robot
a800f1e0c0 Merge pull request #114216 from alculquicondor/avoid-serialization
Avoid serialization of maps when log level < 10
2022-12-10 07:54:24 -08:00
kidddddddddddddddddddddd
9e0a7c7ee7 add pre_filter for volume_zone 2022-12-03 02:11:04 +08:00
Aldo Culquicondor
b62541fe84 Avoid serialization of maps when log level < 10
Change-Id: If264c26ae599602d5b4919301f011c2095d706ee
2022-11-30 12:53:52 -05:00
Yibo Zhuang
380c7f248e scheduler volumebinding: leverage PreFilterResult
This change will leverage the new PreFilterResult
to reduce down the list of eligible nodes for pod
using Bound Local PVs during PreFilter stage so
that only the node(s) which local PV node affinity
matches will be cosnidered in subsequent scheduling
stages.

Today, the NodeAffinity check is done during Filter
which means all nodes will be considered even though
there may be a large number of nodes that are not
eligible due to not matching the pod's bound local
PV(s)' node affinity requirement. Here we can
reduce down the node list in PreFilter to ensure that
during Filter we are only considering the reduced
list and thus can provide a more clear message to
users when node(s) are not available for scheduling
since the list only contains relevant nodes.

If error is encountered (e.g. PV cache read error) or
if node list reduction cannot be done (e.g. pod uses
no local PVs), then we will still proceed to consider
all nodes for the rest of scheduling stages.

Signed-off-by: Yibo Zhuang <yibzhuang@gmail.com>
2022-11-17 21:37:24 -08:00
Kubernetes Prow Robot
d1c0171aed Merge pull request #111023 from pohly/dynamic-resource-allocation
dynamic resource allocation
2022-11-11 16:21:56 -08:00
Patrick Ohly
d2ff210c20 scheduler: add dynamic resource allocation plugin
The plugin handles the interaction with ResourceClaims that are referenced by a
Pod.
2022-11-11 21:58:03 +01:00
Jan Safranek
5b284a50b7 Revert "Remove references to openstack and cinder"
This reverts commit 9bbf01bae9.
2022-11-10 18:25:30 +01:00
kerthcet
7b7da83a8a Fix: resourceToWeightMap will never be nil
Use len() instead of telling whether it's nil
Add tests to guarantee that when resourceToWeightMap is nil, scheduler will not crash

Signed-off-by: kerthcet <kerthcet@gmail.com>
2022-11-10 14:07:02 +08:00
Michal Wozniak
b3e9d8ef4c Cleanup the default_preemption_test by indexing the potential victim pods 2022-11-09 10:26:08 +01:00