Commit Graph

2012 Commits

Author SHA1 Message Date
Adhityaa Chandrasekar
ec83143342 scheduler: merge Reserve and Unreserve plugins
Previously, separate interfaces were defined for Reserve and Unreserve
plugins. However, in nearly all cases, a plugin that allocates a
resource using Reserve will likely want to register itself for Unreserve
as well in order to free the allocated resource at the end of a failed
scheduling/binding cycle. Having separate plugins for Reserve and
Unreserve also adds unnecessary config toil. To that end, this patch
aims to merge the two plugins into a single interface called a
ReservePlugin that requires implementing both the Reserve and Unreserve
methods.
2020-06-24 21:10:35 +00:00
Kubernetes Prow Robot
8adcd7978e
Merge pull request #92268 from alculquicondor/ext-point-profile
Add profile label to framework_extension_point_duration_seconds
2020-06-24 13:31:37 -07:00
Kubernetes Prow Robot
c6d2b223fb
Merge pull request #92222 from cofyc/fix92186
Share pod volume binding cache via framework.CycleState
2020-06-24 13:31:21 -07:00
Wei Huang
82ab6db94b
Pods in pdb.Status.DisruptedPods are treated as 'nonViolating' in any case 2020-06-24 11:22:31 -07:00
Wei Huang
488621815f
Fix a preemption bug when pods are matched by pdb.Status.DisruptedPods 2020-06-24 11:22:31 -07:00
Kubernetes Prow Robot
67afc8ea3c
Merge pull request #91625 from pancernik/v1beta1-extender-encoding
Fix API encoding inconsistencies in KubeSchedulerConfig
2020-06-24 10:31:58 -07:00
Rafal Wicha
d7c84e11f5 Fix API encoding inconsistencies in KubeSchedulerConfig 2020-06-24 09:03:35 +01:00
Yecheng Fu
f899976b41 fixup 2020-06-24 14:14:03 +08:00
Aldo Culquicondor
698eda3079 Add profile label to scheduler extension point metrics
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-06-23 15:30:22 -04:00
Yecheng Fu
22d874993c build files 2020-06-23 22:18:33 +08:00
Yecheng Fu
4627b419b4 tests only 2020-06-23 22:18:33 +08:00
Yecheng Fu
ee4d7410be Share pod volume binding cache via framework.CycleState 2020-06-23 22:18:33 +08:00
Dave Chen
e1d61b621a Scheduler: remove the misleading comments in NodeResourcesBalancedAllocation
Signed-off-by: Dave Chen dave.chen@arm.com
2020-06-23 17:33:02 +08:00
Kubernetes Prow Robot
83a15867b1
Merge pull request #92049 from Huang-Wei/postfilter-impl-3
[postfilter-impl-3] Register and enable the defaultpreemption plugin
2020-06-22 23:53:54 -07:00
Kubernetes Prow Robot
79a7088340
Merge pull request #92202 from alculquicondor/profile-metrics
Add profile label to schedule_attempts_total metric and e2e_scheduling_duration_seconds
2020-06-22 22:00:10 -07:00
Kubernetes Prow Robot
819ad44c90
Merge pull request #91603 from pancernik/v1beta1-requested-to-cap-ratio-encoding
Configure strict encoding for RequestedToCapacityRatioArgs
2020-06-22 21:59:41 -07:00
Wei Huang
d99cc01646
Register and enable defaultpreemption plugin
- Enable defaultpreemption as a PostFilter plugin
- Remote legacy hard-coded preemption logic
2020-06-22 17:22:27 -07:00
Aldo Culquicondor
eb9711dc1f Add profile label to schedule_attempts_total metric
and e2e_scheduling_duration_seconds

Also adding result label to e2e_scheduling_duration_seconds. Previously, the metric was only updated for successful attempts

Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-06-22 15:19:57 -04:00
Ali Farah
a22e115a0e Split scheduler framework implementation into new runtime package 2020-06-22 00:23:43 +10:00
Kubernetes Prow Robot
5ed7b1afb8
Merge pull request #92012 from Huang-Wei/postfilter-impl-2
[postfilter-impl-2] Introduce a defaultpreemption PostFilter plugin
2020-06-19 21:51:42 -07:00
Kubernetes Prow Robot
9c3f648300
Merge pull request #91705 from mrkm4ntr/revert-assumed-in-unreserve
Revert assumed PVs and PVCs in unreserve extension point
2020-06-19 21:50:54 -07:00
Kubernetes Prow Robot
5968bc4653
Merge pull request #92247 from chendave/skiptopology
Skip `PreScore` when the `TopologySpreadConstraints` is specified
2020-06-19 11:37:44 -07:00
Wei Huang
196056d7fe
Introduce a defaultpreemption PostFilter plugin
- Add a defaultpreemption PostFilter plugin
- Make g.Preempt() stateless
    - make g.Preempt() stateless
    - make g.getLowerPriorityNominatedPods() stateless
    - make g.processPreemptionWithExtenders() stateless
2020-06-19 09:13:55 -07:00
Shintaro Murakami
79ab958996 Revert assumed PVs and PVCs in unreserve extension point 2020-06-19 17:39:42 +09:00
Dave Chen
068c69d743 Skip PreScore when the TopologySpreadConstraints is specified
`DefaultPodTopologySpread` need't score when the `TopologySpreadConstraints`
is specified.

`PreScore` needn't do this as well, this cut off the cost of `PreScore` if
possible.

Signed-off-by: Dave Chen <dave.chen@arm.com>
2020-06-18 18:01:56 +08:00
Dave Chen
9ebd872e71 Explicitly declare the interfaces for extension points
This make it easier to catch the issue during the compilation, also,
this also align with other plugins, i.e. plugin of "InterPodAffinity".

Signed-off-by: Dave Chen <dave.chen@arm.com>
2020-06-17 15:11:44 +08:00
Kubernetes Prow Robot
42cb4d5510
Merge pull request #92130 from chendave/InterPodAffinity_cleanup
cleanup: remove invalid comments in plugin of InterPodAffinity
2020-06-16 19:24:02 -07:00
Kubernetes Prow Robot
7e073db5e0
Merge pull request #91986 from denkensk/fix-pdb-preempt
Computing DisruptedPods of PDB in scheduling preemption
2020-06-16 19:23:03 -07:00
Dave Chen
8f0c329758 cleanup: update invalid comments in plugin of InterPodAffinity
Signed-off-by: Dave Chen <dave.chen@arm.com>
2020-06-16 14:11:59 +08:00
Alex Wang
02e4060b1b Computing DisruptedPods of PDB in scheduling preemption 2020-06-16 10:24:55 +08:00
Kubernetes Prow Robot
1c11ff7a26
Merge pull request #92107 from Huang-Wei/fake-artifacts-refactor
Move scheduler fake artifacts to pkg/scheduler/testing
2020-06-15 18:14:34 -07:00
Wei Huang
dd5db75840
Move scheduler fake artifacts to pkg/scheduler/testing
- move some fake artifacts from pkg/scheduler/core to pkg/scheduler/testing so it can be consumed
by core as well as plugin testings
2020-06-15 10:56:06 -07:00
Wei Huang
36c8ecc98c
Refactor scheduler preempt interface
- replace error with NodeToStatusMap in Preempt() signature
- eliminate podPreemptor interface and expose its functions statelessly
- move logic in scheduler.go#preempt to generic_scheduler.go#Preempt()
2020-06-15 08:42:00 -07:00
Kubernetes Prow Robot
1385280afc
Merge pull request #91775 from cofyc/fix91755
VolumeBinding: Skip/fail fast in PreFilter phase and improve error reporting
2020-06-12 10:47:56 -07:00
Rafal Wicha
707e1eb512 Configure strict encoding for RequestedToCapacityRatioArgs 2020-06-12 14:55:32 +01:00
Kubernetes Prow Robot
b8f24173da
Merge pull request #91874 from gaurav1086/TestSchedulingQueue_Close_fix_race_condition
TestSchedulingQueue: Remove the unnecessary slice and for loop
2020-06-11 23:45:55 -07:00
Yecheng Fu
814a6f2acd remove FakeVolumeBinderConfig and test new statues and states 2020-06-12 10:00:19 +08:00
Yecheng Fu
c4138361e4 Fail fast in PreFilter phase and return UnschedulableAndUnresolvable if immediate PVCs are not bound 2020-06-12 10:00:19 +08:00
Gaurav Singh
00f28747b3 TestSchedulingQueue_Close: Remove struct tests and the corresponding for loop
Signed-off-by: Gaurav Singh <gaurav1086@gmail.com>

TestSchedulingQueue_Close: Remove for loop

Signed-off-by: Gaurav Singh <gaurav1086@gmail.com>

remove the tests slice

Signed-off-by: Gaurav Singh <gaurav1086@gmail.com>

Remove struct

Signed-off-by: Gaurav Singh <gaurav1086@gmail.com>

Remove t.Run()

Signed-off-by: Gaurav Singh <gaurav1086@gmail.com>

Add function name

Signed-off-by: Gaurav Singh <gaurav1086@gmail.com>

Remove nested function

Signed-off-by: Gaurav Singh <gaurav1086@gmail.com>

Replace expectedErr with wantErr

Signed-off-by: Gaurav Singh <gaurav1086@gmail.com>
2020-06-11 11:19:14 -04:00
Kubernetes Prow Robot
6bb7e8ab83
Merge pull request #92010 from Huang-Wei/sched-fwk-expose-EventRecorder
Expose EventRecorder to scheduler FrameworkHandle
2020-06-10 22:44:12 -07:00
Kubernetes Prow Robot
5372e017b6
Merge pull request #92003 from mattcary/format-plugins
Remove warning about misuse of %w
2020-06-10 22:44:02 -07:00
Kubernetes Prow Robot
34e19b0623
Merge pull request #91679 from tanjunchen/update-logging-20200602
Migrate to log calls to  klog.ErroS for pkg/scheduler
2020-06-10 22:43:10 -07:00
Wei Huang
7dfabd7af6
Expose EventRecorder to scheduler FrameworkHandle 2020-06-10 18:27:21 -07:00
Kubernetes Prow Robot
17630c34cf
Merge pull request #91793 from alculquicondor/new-default-spread
Use PodTopologySpread for default spreading
2020-06-10 17:13:38 -07:00
Matthew Cary
ee9e6a3bcc Remove warning about misuse of %w 2020-06-10 14:58:55 -07: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
Wen Gao
b21b298074 add arg for noderesourcesfit plugin to support ignore a group of extended resources 2020-06-10 10:52:54 +08:00
tanjunchen
7fe9f3451f Migrate to log calls to klog.ErroS for pkg/scheduler 2020-06-09 18:39:58 -07:00
Wei Huang
51a9dcce22
Revert "Fix an issue that a Pod's nominatedNodeName cannot be cleared when the nominated node is deleted"
This reverts commit 369a9001c6.
2020-06-09 16:47:37 -07:00
Kubernetes Prow Robot
94833ccdf2
Merge pull request #91673 from skilxn-go/PickNodeFix
Fix pick-node strategy when there is no filter plugin
2020-06-09 14:49:11 -07:00
Aldo Culquicondor
170f81cff3 Use PodTopologySpread for default spreading
Under the feature gate DefaultPodTopologySpread, which will disable the legacy DefaultPodTopologySpread plugin from the default algorithm providers.

Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-06-09 14:59:42 -04:00
Kubernetes Prow Robot
1cbb5d1e51
Merge pull request #91894 from chendave/podaffinity_comments
Fix the incorrect error message of `InterPodAffinity` plugin
2020-06-08 21:44:45 -07:00
Kubernetes Prow Robot
5248bef370
Merge pull request #91750 from Huang-Wei/clear-nnn
Fix an issue that a Pod's nominatedNodeName cannot be cleared upon node deletion
2020-06-08 21:43:58 -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
SataQiu
932e61aefa deprecate ResourceLimitsPriorityFunction feature gate in the scheduler
Signed-off-by: SataQiu <1527062125@qq.com>
2020-06-08 22:20:14 +08:00
Dave Chen
02fb3387a0 Fix the incorrect error message of InterPodAffinity plugin
A line of copy/paste code firstly from the method named `buildTopologyPairToScore`.

Signed-off-by: Dave Chen <dave.chen@arm.com>
2020-06-08 16:39:19 +08:00
Kubernetes Prow Robot
82d27aa030
Merge pull request #91832 from ahg-g/ahg-over
Remove log message causing significant overhead on Preemption evaluation
2020-06-06 07:13:45 -07:00
Abdullah Gharaibeh
8bf30530e8 Remove unnecessary log message causing significant overhead on preemption evaluation 2020-06-05 16:50:25 -04:00
Wei Huang
69b9ba6012
Introduce PostFilter extension point 2020-06-05 13:23:45 -07:00
Kubernetes Prow Robot
4e3dea81c1
Merge pull request #91580 from cofyc/fix90958
Remove KubeSchedulerConfiguration.BindTimeoutSeconds
2020-06-05 08:45:45 -07:00
Wei Huang
7f178b2831
Adjust weight of PodTopologySpread to 2 in legacy Policy API 2020-06-04 07:35:25 -07:00
Wei Huang
369a9001c6
Fix an issue that a Pod's nominatedNodeName cannot be cleared when the nominated node is deleted 2020-06-03 17:45:06 -07:00
gpldirk
6a26f76add fix minor comment in podtopologyspread scoring test 2020-06-03 16:03:10 +00:00
Yecheng Fu
1ff09c0934 Remove BindTimeoutSeconds from KubeSchedulerConfiguration 2020-06-03 09:54:06 +08:00
skilxn-go
fe9d9ebce1 Fix pick-node strategy when there is no filter plugin 2020-06-03 09:12:44 +08:00
Wei Huang
133dde6358
Remove EvenPodsSpread featuregate and related logic 2020-06-02 11:24:12 -07:00
Yecheng Fu
367f75e203 auto-generated files 2020-06-01 09:42:38 +08:00
Kubernetes Prow Robot
413bc1a1d2
Merge pull request #91138 from chendave/imagelocality
Define the thresholds per the size of container images
2020-05-31 16:17:53 -07:00
Dave Chen
42fbb1d72f Define the thresholds per the size of container images
Given the assumption that 90% of images on dockerhub drops into this range (23~1000)MB,
this assumption is based on the container images instead of the pod.

pod might hold multiple container images, it's better to multiply the assumption by the size
of container images.

Signed-off-by: Dave Chen <dave.chen@arm.com>
2020-05-30 20:57:50 +08:00
Wei Huang
8478c19a7f
autogen: PostFilter 2020-05-29 18:18:00 -07:00
Wei Huang
1837b49554
Scheduler PostFilter API 2020-05-29 18:18:00 -07:00
Kubernetes Prow Robot
081f97aa2b
Merge pull request #91535 from ahg-g/ahg-merge-updates
Merge pod condition update with setting nominated node name
2020-05-29 08:05:16 -07:00
Dave Chen
649523ce91 cleanup: remove useless methods
`BuildArgs` is not used anywhere and the `args` can be directly got from
the instance instead of defining a method to do that.

Signed-off-by: Dave Chen <dave.chen@arm.com>
2020-05-29 10:41:54 +08:00
Abdullah Gharaibeh
27caa6e727 merge pod condition update with setting nominated node name in the scheduler 2020-05-28 20:11:16 -04:00
Kubernetes Prow Robot
472a4e9ce2
Merge pull request #91448 from RainbowMango/pr_fix_metric_naming
update metrics to conform promlint
2020-05-28 16:38:02 -07:00
Kubernetes Prow Robot
c682b313d9
Merge pull request #91420 from pancernik/scheduler-config-v1beta1
Promote kubescheduler.config.k8s.io to v1betav1
2020-05-28 12:24:39 -07:00
Kubernetes Prow Robot
73641d35c7
Merge pull request #91451 from gaurav1086/scheduler_test_fix_goroutine_leak
scheduler_test: fix goroutine leak
2020-05-26 21:09:03 -07:00
Kubernetes Prow Robot
b0e0692490
Merge pull request #91446 from pancernik/scheduler-plugin-args-validation-nr
Move Node Resources scheduler plugin args validation to apis/config/validation
2020-05-26 19:13:18 -07:00
Kubernetes Prow Robot
5217fa2299
Merge pull request #91462 from lo24/fwk-typo
fix typo in scheduler framework
2020-05-26 16:49:05 -07:00
Rafal Wicha
3ffd71c4a2 Move Node Resources scheduler plugin args validation to apis/config/validation 2020-05-26 22:37:16 +01:00
Gaurav Singh
a4e5629320 scheduler_test: fix goroutine leak
Signed-off-by: Gaurav Singh <gaurav1086@gmail.com>

Re-use errchan from setupTestSchedulerWithOnePodOnNode

Signed-off-by: Gaurav Singh <gaurav1086@gmail.com>
2020-05-26 17:33:10 -04:00
Wei Huang
59eff29d22
- Add Extenders() and PluginsRunner interface to PreemptHandle
- Make some private functions stateless
  - make addNominatedPods() not dependent on genericScheduler
  - make addNominatedPods() not dependent on genericScheduler
  - make selectVictimsOnNode() not dependent on genericScheduler
  - make selectNodesForPreemption() not dependent on genericScheduler
2020-05-26 10:00:45 -07:00
lo24
4caae61f03 fix typo in scheduler framework 2020-05-26 16:00:22 +00:00
RainbowMango
4d8280acca rename metric scheduler_total_preemption_attempts to scheduler_preemption_attempts_total as counter metrics should have _total suffix. 2020-05-26 20:11:42 +08:00
Rafal Wicha
852442c0ff Promote kubescheduler.config.k8s.io to v1betav1 2020-05-25 22:25:57 +01:00
Kubernetes Prow Robot
7a30cf8046
Merge pull request #91241 from pancernik/scheduler-plugin-args-validation
Move Scheduler plugin args validation to apis/config/validation
2020-05-25 13:43:11 -07:00
Kubernetes Prow Robot
c5aa1eddcc
Merge pull request #91406 from zhouya0/fix_scheduler_prefilter_doc
Fix scheduler prefilter comment
2020-05-25 11:43:11 -07:00
Rafal Wicha
85be9c1673 Move Scheduler plugin args validation to apis/config/validation 2020-05-25 16:27:21 +01:00
zhouya0
dabd00ca4c Fix scheduler prefilter comment 2020-05-25 17:45:44 +08:00
Dave Chen
84915d1623 Expose the issue that max threshold haven't considered container size
Signed-off-by: Dave Chen <dave.chen@arm.com>
2020-05-25 17:31:47 +08:00
Yecheng Fu
8bbbe62fbd Add versioned counterparts for VolumeBindingArgs: auto-generted files 2020-05-22 09:30:53 +08:00
Yecheng Fu
0a3d55f2e0 Add versioned counterparts for VolumeBindingArgs 2020-05-22 09:30:52 +08:00
Kubernetes Prow Robot
d871ab9690
Merge pull request #91278 from chendave/testcase
scheduler: Expand testcases to cover more plugin defaults
2020-05-20 19:41:39 -07:00
Kubernetes Prow Robot
f7a6e9e2f1
Merge pull request #91175 from Huang-Wei/volume-binding-leftover
Cleanup volume binding leftover
2020-05-20 19:41:10 -07:00
Wei Huang
f4b726237a
Add function NominatedPodsForNode to PodNominator interface.
- replace SchedulingQueue with PodNominator in genericScheduler.
2020-05-20 14:05:18 -07:00
Wei Huang
b6d5a3328a
cleanup volume binding leftover 2020-05-20 10:30:22 -07:00
Kubernetes Prow Robot
7ba332a839
Merge pull request #91258 from alculquicondor/double_spread_weight
Set weight of PodTopologySpread Score to 2
2020-05-19 23:40:42 -07:00
Dave Chen
c74a5d4fe2 scheduler: Expand testcases to cover more plugin defaults
Signed-off-by: Dave Chen <dave.chen@arm.com>
2020-05-20 12:37:06 +08:00
Kubernetes Prow Robot
4310732c55
Merge pull request #91102 from chendave/capacity_ratio
Move `RequestedToCapacityRatio` Args defaults to versioned packages
2020-05-19 20:35:20 -07:00
Kubernetes Prow Robot
a3feccc965
Merge pull request #90201 from KobayashiD27/addTestCaseInSchedulerProfile
Add test case in scheduler/profile/profile_test.go
2020-05-19 20:34:18 -07:00
Kubernetes Prow Robot
4b9b9ab753
Merge pull request #91252 from alculquicondor/fix-reschedule
Skip Pod Conditions from scheduling queue updates
2020-05-19 16:32:51 -07:00
Kubernetes Prow Robot
0746f165bd
Merge pull request #91229 from ahg-g/ahg-affinity3
Eliminate locking in (anti)affinity calculations
2020-05-19 16:32:42 -07:00
Aldo Culquicondor
9819b25a44 Set weight of PodTopologySpread Score to 2
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-05-19 12:08:38 -04:00
Aldo Culquicondor
da6fcfaf74 Skip Pod Conditions from scheduling queue updates
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-05-19 10:59:10 -04:00
Kubernetes Prow Robot
2185064307
Merge pull request #90356 from Huang-Wei/prefactor-preemption-nompods-interface
Extract logic related with scheduler nominatedPods to an interface
2020-05-18 20:03:36 -07:00
Abdullah Gharaibeh
4ff554ba83 Eliminate locking in (anti)affinity calculations 2020-05-18 22:37:37 -04:00
Kobayashi Daisuke
673a22eae8 Add test case in scheduler/profile/profile_test.go
to improve the test coverage: check invalid configs
2020-05-19 10:27:37 +09:00
Kubernetes Prow Robot
9eb097c4b0
Merge pull request #91168 from ahg-g/ahg-affinity5
First pod with affinity can schedule only on nodes with matching topology keys
2020-05-18 16:29:51 -07:00
Abdullah Gharaibeh
5d2c05408d First pod with affinity can schedule only on nodes with matching topology keys 2020-05-18 15:15:09 -04:00
Wei Huang
bd184035c4
Extract logic related with scheduler nominatedPods to an interface
- rename `UpdateNominatedPodForNode` to `AddNominatedPod`
- promote `update` to `UpdateNominatedPod`
- anonymous lock in nominatedMap
- pass PodNominator as an option to NewFramework
2020-05-18 10:29:08 -07:00
Dave Chen
838a0a8c03 Move RequestedToCapacityRatio Args defaults to versioned packages
Signed-off-by: Dave Chen <dave.chen@arm.com>
2020-05-18 14:19:39 +08:00
Kubernetes Prow Robot
d4ce66fe0b
Merge pull request #90660 from Huang-Wei/synced-sched-err-call
Move unschedulable Pod to internal schedulingQ synchronously
2020-05-16 19:00:06 -07:00
Kubernetes Prow Robot
b170451caa
Merge pull request #90183 from dims/update-kubernetes-to-klog-v2
Update kubernetes to klog v2
2020-05-16 18:59:51 -07:00
Kubernetes Prow Robot
7f0c05b909
Merge pull request #90544 from chendave/weight
configurable weight on the CPU and memory
2020-05-16 07:36:30 -07:00
Kubernetes Prow Robot
9769e0f5da
Merge pull request #90008 from gavinfish/scheduler-utilparsers
Scheduler: remove direct import to /pkg/util/parsers
2020-05-16 07:35:49 -07: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
52ae8b1ebb
Merge pull request #91099 from snowplayfire/skip_unnecessary_scheduling
skip unnecessary scheduling attempt when pod has its Finalizers updated
2020-05-15 23:02:22 -07:00
Kubernetes Prow Robot
65f2803c68
Merge pull request #91084 from ahg-g/ahg-affinity2
Added pre-processed preferred affinity terms to scheduler's PodInfo type
2020-05-15 23:02:03 -07:00
Kubernetes Prow Robot
738e557f2c
Merge pull request #91083 from KobayashiD27/Add-test-to-scheduler-apis-config-types-test
Add test case in scheduler/apis/config/types_test.go to improve the t…
2020-05-15 23:01:49 -07:00
Wei Huang
133a02540f
Move unschedulable Pod to internal schedulingQ synchronously
- use in-cache Pod instead of real-time Pod (by calling API server) to mark it as unschedulable
  in internal schedulingQ
- remove the backoff logic as now we don't call API server
- the whole logic is changed to a synchronous call
2020-05-15 19:27:28 -07:00
Wei Huang
1b30105dac
Fix scheduler cache inconsistency upon Pods with same name but different UIDs
Co-authored-by: Wei Huang <wei.huang1@ibm.com>
Co-authored-by: tianxia52 <871883758@qq.com>
2020-05-15 11:41:54 -07:00
Dave Chen
621c73b984 Configurable weight on the CPU and memory
This change also make it possible to score the resources beyond the "cpu"
and "memory" which is currently listed in "defaultRequestedRatioResources".

Signed-off-by: Dave Chen <dave.chen@arm.com>
2020-05-15 22:26:30 +08:00
Abdullah Gharaibeh
087839daf7 Added pre-processed preferred affinity terms to scheduler's PodInfo type. 2020-05-15 09:00:56 -04:00
jingxueli
b95191fe10 add test for finalizers 2020-05-15 18:57:09 +08:00
Kubernetes Prow Robot
71277de4d6
Merge pull request #91069 from alculquicondor/bind_ctx
Use passed context in default binder
2020-05-15 02:49:28 -07:00
Kubernetes Prow Robot
c453be845a
Merge pull request #91062 from ahg-g/ahg-affinity1
Added pre-processed required affinity terms to scheduler's PodInfo type.
2020-05-15 02:49:07 -07:00
Kubernetes Prow Robot
57b79e3fb4
Merge pull request #91037 from Huang-Wei/prefactor-PreemptExtender
Refactor preemption extender logic and move SchedulerExtender interface to framework pkg
2020-05-15 02:48:30 -07:00
Kubernetes Prow Robot
95e598586e
Merge pull request #91016 from chendave/nits
Fix nits in comments for NodeResources plugins
2020-05-15 02:48:02 -07:00
Brian Pursley
9eb8e7a6d6 Changed scheduler to use patch when updating pod status to avoid potential conflicts 2020-05-14 15:17:53 -04:00
Kubernetes Prow Robot
5bda0c1b3b
Merge pull request #83726 from cofyc/fix56180
scheduler: Move all volume binding code into VolumeBinding plugin
2020-05-14 10:08:23 -07:00
Abdullah Gharaibeh
5e0211c72d Added pre-processed required affinity terms to scheduler's PodInfo type. 2020-05-14 10:30:42 -04:00
Dave Chen
6b9fb2c591 Fix nits in comments for NodeResources plugins 2020-05-14 18:45:59 +08:00
jingxueli
b1143da370 skip unnecessary scheduling attempt when pod's finalizers change 2020-05-14 15:43:54 +08:00
Kobayashi Daisuke
96690673c4 Add test case in scheduler/apis/config/types_test.go to improve the test coverage. 2020-05-14 11:24:27 +09:00
Kubernetes Prow Robot
40b0f4f6cb
Merge pull request #90565 from alculquicondor/cleanup-sched-config
Remove wrapper around base LeaderElectionConfiguration
2020-05-13 15:59:05 -07:00
Wei Huang
eb17b7559c
move SchedulerExtender interface to pkg/scheduler/framework/v1alpha1 2020-05-13 13:09:13 -07:00
Wei Huang
e4f878ea3a
cleanup: use string instead of v1.Node as key of nodeToVictims 2020-05-13 13:08:20 -07:00
Aldo Culquicondor
78fca663ce Use passed context in default binder
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-05-13 11:36:14 -04:00
Yecheng Fu
85a8740d9b scheduler/volumebinding: auto-generated files only 2020-05-12 10:13:06 +08:00
Yecheng Fu
c14b749521 scheduler/volumebinding: move all volume binding logic into VolumeBinding plugin 2020-05-12 10:13:05 +08:00
Abdullah Gharaibeh
c3be8feee6 count no nodes scheduling failure as unschedulable instead of error 2020-05-11 14:07:52 -04:00
Kubernetes Prow Robot
a3cf6fc0aa
Merge pull request #90915 from Huang-Wei/remove-enableNonPreempting
Remove `enableNonPreempting` field from scheduler codebase
2020-05-08 20:45:51 -07:00
Wei Huang
e283e73994
Remove enableNonPreempting field from scheduler codebase 2020-05-08 19:02:51 -07: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
Kubernetes Prow Robot
90f7ae54ac
Merge pull request #90657 from alculquicondor/default-plugin-args
Move Plugin Args defaults to versioned packages
2020-05-08 02:03:42 -07: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
Wei Huang
8c2a540cdc
Refine schedulerQueue test to avoid unneeded locks
- revert PR 88331
- remove createAndRunPriorityQueue()
- PriorityQueue is created and not run by default
- flushXYZ() is called on demand by manipulating FakeClock and Step()
2020-05-05 00:11:04 -07:00
Kubernetes Prow Robot
594cbdfd19
Merge pull request #89508 from KobayashiD27/test-coverage-up
Add test case to improve the test coverage.
2020-05-01 13:00:31 -07:00
Kubernetes Prow Robot
26ad2c2a47
Merge pull request #90613 from Huang-Wei/cleanup-comments
cleanup: remove stale comments
2020-05-01 00:42:03 -07: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
Kubernetes Prow Robot
8dd93ca94c
Merge pull request #90309 from alculquicondor/plugin-args-decoding
Use internal config types in scheduling plugin args
2020-04-30 05:32:18 -07:00
Kubernetes Prow Robot
863ce9726e
Merge pull request #90295 from tanjunchen/pkg/scheduler/framework/plugins/-20200420
pkg/scheduler/framework/plugins/:fix unconsistent comments and make log more clear
2020-04-29 18:30:18 -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
6b153dc920 Add decoding of nested scheduling plugin configs
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-04-29 17:06:58 -04:00
Wei Huang
79963ac8fb
cleanup: remove stale comments 2020-04-29 13:51:25 -07: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
Kubernetes Prow Robot
4099ad6e0d
Merge pull request #90542 from lixiang233/master
There's no need to set moveRequestCycle and do broadcast twice.
2020-04-28 12:58:25 -07:00
Aldo Culquicondor
29f5adee7f Remove wrapper around base LeaderElectionConfiguration
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-04-28 15:44:35 -04:00
Kubernetes Prow Robot
fabe9cddf1
Merge pull request #90467 from Huang-Wei/honor-runAllFilters
Simplify status handling of scheduler RunFilterPlugins
2020-04-27 22:26:43 -07: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
lixiang
5844bc3b9f There's no need to set moveRequestCycle and do broadcast twice. 2020-04-28 00:43:58 +08:00
drfish
0b715ea690 Scheduler: remove direct import to /pkg/util/parsers 2020-04-26 23:41:52 +08:00
Wei Huang
92ba2a4e09
Simplify status handling of scheduler RunFilterPlugins 2020-04-24 12:16:42 -07:00
Kubernetes Prow Robot
277f7614ea
Merge pull request #90203 from tanjunchen/remove-repeat-test-sche
/pkg/scheduler/framework/plugins/ : remove the repeat test example and add an test example
2020-04-24 12:15:20 -07:00
tanjunchen
0e38ba0ef6 pkg/scheduler/framework/:fix unconsistent comments and make log more clear 2020-04-24 11:17:11 +08:00
Kubernetes Prow Robot
b850b5ce2e
Merge pull request #89222 from fengzixu/master
bugfix: initcontainer is also taken into account when calculating resource requests
2020-04-23 00:45:44 -07:00
Kubernetes Prow Robot
29e4e66b59
Merge pull request #90371 from ahg-g/ahg-pinfo
Deprecate scheduler's PodLister interface
2020-04-22 23:09:58 -07:00
Kubernetes Prow Robot
6107b140ae
Merge pull request #90373 from fabiokung/updated-annotations-during-bind
kube-scheduler: compatibility with ServerSideApply
2020-04-22 17:03:09 -07:00
Abdullah Gharaibeh
57585640e8 change scheduler's framework PodLister to PodInfoLister 2020-04-22 19:25:27 -04:00
Kubernetes Prow Robot
9066ee9906
Merge pull request #90330 from cwdsuzhou/April/log_level
Increase log level to avoid print binding messages in framework too frequently
2020-04-22 14:03:46 -07:00
Fabio Kung
d341a5b9d3 kube-scheduler: compatibility with ServerSideApply
avoid moving Pods that have been assumed back to the scheduling queue in
case they have annotations modified with ServerSideApply, which causes
Pod.ObjectMeta.ManagedFields to be modified automatically
2020-04-22 12:02:40 -07:00
fengzixu
d54822d193 bugfix: initcontainer wasn't considered when calculate resource request 2020-04-23 02:08:33 +09:00
caiweidong
171a242e1e Increase log level to avoid print binding messages in framework too frequently 2020-04-22 11:37:35 +08:00
Abdullah Gharaibeh
a151682887 Split scheduler's PodInfo into two types, PodInfo and PodQueueInfo 2020-04-21 21:45:20 -04:00
Gaurav Singh
31afb24244 [Scheduler] Map deletion complexity: log(n) => O(1) 2020-04-19 11:31:55 -04:00
tanjunchen
6180d701cc /pkg/scheduler/framework/plugins/ : remove the repeat test example and add an test example 2020-04-17 09:24:45 +08: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
Kubernetes Prow Robot
d0183703cb
Merge pull request #90059 from ahg-g/ahg-nodeinfo2
Cleanup obsolete NodeInfo methods
2020-04-14 17:32:04 -07:00
Kubernetes Prow Robot
303a6c7e34
Merge pull request #89996 from KobayashiD27/addTestCaseInSchedulerUtil
Add test case in scheduler/util/non_zero_test.go
2020-04-14 12:34:17 -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
Kubernetes Prow Robot
fca197c748
Merge pull request #90041 from tanjunchen/sche-remove-dependency-001
Scheduler:remove direct dependency for pkg/api/testing
2020-04-13 20:01:11 -07:00
Abdullah Gharaibeh
bed9b2f23b Cleanup obsolete NodeInfo methods 2020-04-12 18:13:46 -04:00
Kubernetes Prow Robot
ee6b88ddf9
Merge pull request #90000 from SataQiu/staging-scheduler-20200409
scheduler: remove direct import to pkg/master/ports
2020-04-11 10:46:01 -07:00
Kubernetes Prow Robot
de5508839d
Merge pull request #90037 from angao/redundant
remove redundant code
2020-04-11 03:29:47 -07:00
SataQiu
41d3e44a2f scheduler: remove direct import to pkg/master/ports
Signed-off-by: SataQiu <1527062125@qq.com>
2020-04-11 13:56:53 +08:00
tanjunchen
5ab543500b Scheduler:remove direct dependency for pkg/api/testing 2020-04-11 13:16:06 +08:00
Wen Gao
65b43e5d10 remove redundant code 2020-04-10 10:59:30 +08:00
Abdullah Gharaibeh
2c51c13620 Scheduler NodeInfo cleanup 2020-04-09 19:03:51 -04:00
Kubernetes Prow Robot
0c9245a29f
Merge pull request #89974 from ahg-g/ahg-info
scheduler's NodeInfo tracks PodInfos instead of Pods
2020-04-09 09:19:58 -07:00
Kobayashi Daisuke
e16c4f22dd Add test case in scheduler/util/non_zero_test.go to improve the test coverage. 2020-04-09 17:42:43 +09:00
Abdullah Gharaibeh
b8ddd00312 scheduler's NodeInfo tracks PodInfos instead of Pods 2020-04-08 17:53:20 -04:00
Rafał Wicha
c4d20ca8a8 Add types for Scheduler plugin args to kube-scheduler.config.k8s.io 2020-04-08 20:23:56 +01:00
Kubernetes Prow Robot
0926c9c476
Merge pull request #89131 from cwdsuzhou/March/expose_scheduler_metric
Expose scheduler metric to make it possible for plugins to use it
2020-04-08 04:25:43 -07:00
Kubernetes Prow Robot
1edbfe1745
Merge pull request #89908 from alculquicondor/fix_cache
Skip updating scheduler cache on pod update if the node was deleted
2020-04-07 16:46:06 -07:00
Aldo Culquicondor
e75b5dcfe4 Skip updating cache on pod update if the node was deleted
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-04-07 13:24:42 -04:00
Abdullah Gharaibeh
a5d8172715 move nodeinfo type to framework pkg 2020-04-07 10:25:24 -04:00
caiweidong
bbaa76c8f5 Expose scheduler metric register function to make it possible for plugins to use it 2020-04-07 19:07:30 +08:00
Harsh Singh
015d06bf41 Internal channels for scheduler 2020-04-04 02:30:16 +05:30
Kubernetes Prow Robot
dd35908c7f
Merge pull request #89298 from gavinfish/scheuler-config-alph1
Remove kubescheduler.config.k8s.io/v1alpha1
2020-04-02 21:39:59 -07: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
Kubernetes Prow Robot
57144b38eb
Merge pull request #89463 from fxmumu/feature-scheduler-err-handler
Remove nested if statement and test it
2020-03-26 11:14:17 -07:00
Kubernetes Prow Robot
894916b665
Merge pull request #89459 from chendave/scorer_desc
Trival fix: update the desc on the score plugins
2020-03-26 07:56:39 -07:00
Kobayashi Daisuke
9d6235c54e Add test case to improve the test coverage. 2020-03-26 17:34:38 +09: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
fxmumu
8beb2439a0 Remove nested if statement and test it
Remove nested if statement in scheduler err handler.
Test scheduler err that node not found.
2020-03-26 00:29:41 +08:00
Kubernetes Prow Robot
d00f9c7c10
Merge pull request #89338 from skilxn-go/AddCompatibilityTestForPluginArgs
Add compatibility tests for plugin arguments
2020-03-25 08:49:03 -07:00
Dave Chen
4ab7be43ce Trival fix: update the desc on the score plugins
For whatever the reason, the max score has been updated from "10"
to "100"
2020-03-25 12:09:09 +08:00
Kubernetes Prow Robot
c58a3757cb
Merge pull request #89365 from notpad/feature/zone_label_ga
Add check for volume zone GA labels
2020-03-24 15:27:34 -07: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
36efa035e2 Add chunk size option to ParallelizeUntil
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-03-24 10:29:59 -04:00
skilxn-go
e0adb0ead9 Add compatibility tests for plugin config 2020-03-24 22:17:16 +08:00
notpad
98405a8bd9 Add check for volume zone GA labels 2020-03-24 21:11:25 +08:00
Abdullah Gharaibeh
24fe5a2f72 Moved RunPreScorePlugins to inside prioritizeNodes and RunPreFilterPlugins to inside findNodesThatFitPod. 2020-03-23 11:08:40 -04:00
Abdullah Gharaibeh
f9b650bc98 Scheduler: execute PreScore right before Score instead of after Filter. 2020-03-23 10:59:04 -04:00
gavinfish
1865a104a9 Remove kubescheduler.config.k8s.io/v1alpha1 2020-03-21 15:11:48 +08:00
Kubernetes Prow Robot
4319ab214f
Merge pull request #89219 from chendave/misspelling
Trival fix: update the description on the pod preemption
2020-03-20 17:58:44 -07:00
Kubernetes Prow Robot
fe2fdcd695
Merge pull request #89162 from alculquicondor/affinity-less-lock
Reduce locking when calculating affinity scores
2020-03-19 15:04:35 -07:00
Kubernetes Prow Robot
abe4dea072
Merge pull request #89149 from notpad/fix_comment
Fix comments
2020-03-19 08:27:23 -07:00
Dave Chen
a9d82e7c2a Trival fix: update the description on the pod preemption
`pod` has the field of `NominatedNodeName` which is different
with `NominatedPod`.
2020-03-18 18:23:36 +08:00
Kubernetes Prow Robot
ad2a1054b0
Merge pull request #88717 from mosesyou/dev-boris
Add unit test TestListPlugins for the scheduler
2020-03-17 16:21:55 -07:00
Aldo Culquicondor
d0dc178ab8 Reduce locking when calculating affinity scores
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-03-17 15:46:01 -04:00
notpad
a043bc438d Fix comments 2020-03-16 11:58:27 +08:00
Aldo Culquicondor
4d6af4d8d8 Set unschedulable Condition after setting nominated Node
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-03-13 11:02:19 -04:00
mosesyou
d874275fb7 Add unit test TestListPlugins for the scheduler 2020-03-09 15:33:42 +08:00
Jordan Liggitt
d8abacba40 client-go: update expansions callers 2020-03-06 16:50:41 -05:00
Kubernetes Prow Robot
5708511499
Merge pull request #88708 from mikedanese/deleteopts
Migrate clientset metav1.DeleteOpts to pass-by-value
2020-03-05 23:09:23 -08:00
Kubernetes Prow Robot
b0f793a94c
Merge pull request #88870 from alculquicondor/disallow_dup_plugin_config
Disallow duplicate PluginConfig in framework creation
2020-03-05 21:40:15 -08:00
Kubernetes Prow Robot
1302f343b1
Merge pull request #88864 from alculquicondor/one_config
Disallow use of Plugin or PluginConfig when using Policy
2020-03-05 21:39:57 -08:00
Mike Danese
c58e69ec79 automated refactor 2020-03-05 14:59:46 -08:00
Mike Dame
1d7006c38d Add Extenders to scheduler v1alpha2 component config 2020-03-05 16:42:15 -05:00
Aldo Culquicondor
1fab27502b Disallow use of Plugin or PluginConfig when using Policy
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-03-05 15:05:26 -05:00
Aldo Culquicondor
13fa48e592 Disallow duplicate PluginConfig in framework creation
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-03-05 14:51:41 -05:00
Kubernetes Prow Robot
c51ad0cb61
Merge pull request #88735 from pancernik/plugin-args-api-improvements
Improve plugin args JSON tags
2020-03-02 14:51:06 -08: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
Rafal Wicha
09598d48f6 Improve plugin args JSON tags 2020-03-02 15:20:44 +00:00
louisgong
c6b94e4606 refactor volume binder 2020-02-29 12:03:39 +08:00
Kubernetes Prow Robot
901a884c71
Merge pull request #88338 from egernst/PodOverhead-beta
Upgrade PodOverhead to beta
2020-02-28 15:12:40 -08:00
Patrick Ohly
2e7ce8cea0 bazel update 2020-02-28 10:09:19 +01:00
Patrick Ohly
6329b17d2f volume scheduler: introduce special string type
This makes it possible to search for the special strings more easily
(https://github.com/kubernetes/kubernetes/pull/88230#discussion_r382367043).
2020-02-28 10:09:19 +01:00
Patrick Ohly
6eb0b034ac volume scheduler: move reason strings into volume code
The scheduler doesn't really need to know in detail which reasons
rendered a node unusable for a node. All it needs from the volume
binder is a list of reasons that it then can present to the user.

This seems a bit cleaner. But the main reason for the change is that
it simplifies the checking of CSI inline volumes and perhaps later
capacity checking. Both will lead to new failure reasons, which then
can be added without changing the interface.
2020-02-28 10:09:18 +01:00