Commit Graph

57 Commits

Author SHA1 Message Date
Kubernetes Prow Robot
86096addb1
Merge pull request #92689 from chendave/fix_testcase
Fix the nits found in the testcases of `PodTopologySpread`
2020-07-03 20:31:26 -07:00
Dave Chen
3e65fe4378 Change the exception to avoid the cost of preemption
node's labels doesn't contain the required topologyKeys in `Constraints`
cannot be resolved by preempting the pods on that pods.

One use case that could easily reproduce the issue is,
- set `alwaysCheckAllPredicates` to true.
- one node contains all the required topologyKeys but is failed in predicates
  such as 'taint'.
- another node doesn't hold all the required topologyKeys, and thus return `Unschedulable`
  status code.
- scheduler will try to preempt the pods on the above node with lower priorities.

Signed-off-by: Dave Chen <dave.chen@arm.com>
2020-07-03 10:17:31 +08:00
Dave Chen
41fd19760e Fix the nits found in the testcases of PodTopologySpread
Signed-off-by: Dave Chen <dave.chen@arm.com>
2020-07-02 12:37:46 +08:00
RAKESH REDDY BANDI
d44a20f9ca Rename DefaultPodTopologySpread plugin #91994 2020-06-27 13:46:31 -04:00
Kubernetes Prow Robot
418c2cbb45
Merge pull request #91918 from alculquicondor/new_max_skew
Use maxSkew in PodTopologySpread scoring as tolerance to skew
2020-06-10 04:40:21 -07:00
Kubernetes Prow Robot
de1a277185
Merge pull request #91735 from gpldirk/tps-comment
fix minor comment in podtopologyspread scoring test
2020-06-08 21:43:48 -07:00
Aldo Culquicondor
d353cc1532 Use maxSkew in PodTopologySpread scoring as tolerance to skew
This new approach results in better spreading for small number of pods, while still giving meaning to the maxSkew parameter.

Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-06-08 16:25:59 -04:00
gpldirk
6a26f76add fix minor comment in podtopologyspread scoring test 2020-06-03 16:03:10 +00:00
Wei Huang
133dde6358
Remove EvenPodsSpread featuregate and related logic 2020-06-02 11:24:12 -07:00
Rafal Wicha
85be9c1673 Move Scheduler plugin args validation to apis/config/validation 2020-05-25 16:27:21 +01:00
Davanum Srinivas
07d88617e5
Run hack/update-vendor.sh
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2020-05-16 07:54:33 -04:00
Davanum Srinivas
442a69c3bd
switch over k/k to use klog v2
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2020-05-16 07:54:27 -04:00
Kubernetes Prow Robot
e6e29fbbc3
Merge pull request #90820 from alculquicondor/score-max-skew
Use maxSkew in score calculation
2020-05-08 18:28:19 -07:00
Aldo Culquicondor
516c8fbfad Use maxSkew in score calculation
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-05-08 09:34:45 -04:00
Aldo Culquicondor
2935480cc8 Move Plugin Args defaults to versioned packages
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-05-06 18:00:23 -04:00
Kubernetes Prow Robot
ba43630708
Merge pull request #90475 from alculquicondor/topology-scoring
Topology spreading scoring with automatically weighted topologies
2020-05-01 00:40:04 -07:00
Aldo Culquicondor
98d1e241f1 Use internal config types in scheduling plugin args
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-04-29 17:07:10 -04:00
Aldo Culquicondor
1aaa5fcc80 Topology scoring with dynamically weighted topologies
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-04-29 09:55:52 -04:00
Aldo Culquicondor
a9461fe6f5 spreading: Store ignored instead of qualifying nodes
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-04-27 13:18:34 -04:00
Rafal Wicha
b511fa8627 Add PodTopologySpread plugin arg types to kube-scheduler.config.k8s.io 2020-04-16 16:26:27 +01:00
Kubernetes Prow Robot
b35fdbc037
Merge pull request #89904 from alculquicondor/raw-extension-plugin-args
Use RawExtension and Object for external and internal, respectively, scheduling plugin args
2020-04-15 15:22:59 -07:00
Aldo Culquicondor
ce05382b58 Use RawExtension and Object for external and internal scheduling plugin args, respectively
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-04-14 13:44:42 -04:00
Abdullah Gharaibeh
2c51c13620 Scheduler NodeInfo cleanup 2020-04-09 19:03:51 -04:00
Abdullah Gharaibeh
b8ddd00312 scheduler's NodeInfo tracks PodInfos instead of Pods 2020-04-08 17:53:20 -04:00
Abdullah Gharaibeh
a5d8172715 move nodeinfo type to framework pkg 2020-04-07 10:25:24 -04:00
Abdullah Gharaibeh
ed3fe054df move scheduler nodeinfo to pkg/scheduler/types 2020-03-31 21:02:09 -04:00
Aldo Culquicondor
93fc02cf54 Set initial map size
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-03-31 15:48:34 -04:00
Aldo Culquicondor
65d9f81758 Replace lock with atomic updates in spreading filter
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-03-31 15:48:32 -04:00
Aldo Culquicondor
275da7afc0 Benchmark for topology spreading filter
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-03-31 15:12:22 -04:00
Kubernetes Prow Robot
59c66dab8c
Merge pull request #89487 from alculquicondor/per_node_spreading
Optimize preferred spreading for hostname topology
2020-03-30 08:21:54 -07:00
Aldo Culquicondor
d2b1903149 Calculate scores in parallel on spreading benchmarks
This is closer to what happens in the core scheduler

Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-03-26 15:33:50 -04:00
Wei Huang
06f48a988f
Print detailed score results on verbose level 10 2020-03-25 10:46:28 -07:00
Aldo Culquicondor
4b31b55499 Count spreading node matches for hostname topology in Score 2020-03-25 13:29:27 -04:00
Aldo Culquicondor
e902e70d0d Use sqrt(n) chunk size in pod affinity and core scheduler 2020-03-24 10:29:59 -04:00
Aldo Culquicondor
73ad38593a Add default constraints to PodTopologySpread
And update benchmark for even pod spreading to use default constraints

Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-03-02 13:50:21 -05:00
Aldo Culquicondor
fd5b298c50 Test PodTopologySpread.PreScore instead of internal pre-processing.
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-02-26 16:25:01 -05:00
Aldo Culquicondor
0e46803e77 Test PodTopologySpread.PreFilter instead of internal pre-processing.
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-02-26 16:17:17 -05:00
skilxn-go
8fd0d8028f Remove FilteredNodesStatuses argument from PreScore interface 2020-02-15 13:53:04 +08:00
skilxn-go
f5b7e3cca3 Rename PostFilter plugin to PreScore 2020-02-12 23:25:08 +08:00
notpad
fb895056c6 Add test 2020-02-11 16:51:21 +08:00
notpad
a7057f8df0 Cleanup "slow-path" logic in scheduler Filters 2020-02-10 22:48:49 +08:00
Wei Huang
815206685c
PodTopologySpread excludes terminatingPods when making scheduling decision 2020-02-06 07:38:50 -08:00
Aldo Culquicondor
f53d7e55df Move Snapshot from nodeinfo/snapshot to internal/cache
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-01-17 13:29:41 -05:00
draveness
0278d793c8 fix: remove ErrTopologySpreadConstraintsNotMatch 2020-01-09 16:01:13 +08:00
Abdullah Gharaibeh
4e67476867 move nodeaffinity predicate to its filter plugin 2020-01-06 13:22:51 -05:00
Wei Huang
78352240f6
Move podtopologyspread priority logic to its Score plugin 2019-12-28 19:29:37 -08:00
Wei Huang
8a4dce5431
Move pod topology spread predicate logic to its filter plugin 2019-12-26 23:56:03 -08:00
Jacek Kaniuk
8fae8e54af Disable excessive logging in scheduler plugins 2019-12-16 15:14:39 +01:00
Wei Huang
3d353f5122
Update semantics of EvenPodsSpread metadata object
- Now `nil` represents the meta is not set at all (in PreFilter phase)
- An empty `PodTopologySpreadMetadata` object denotes it's a legit meta and is set in PreFilter phase.
2019-12-13 16:33:22 -08:00
Wei Huang
468aebc17f
Move EvenPodsSpread metadata computation logic as a PreFilter Plugin 2019-12-13 16:33:21 -08:00