Commit Graph

181 Commits

Author SHA1 Message Date
Wei Huang
fe7072a482
fixup: address comments 2019-07-24 15:27:55 -07:00
Wei Huang
ff831c3df2
EvenPodsSpread: Supports Preemption (addPod)
- add addPod() for podSpreadMap
2019-07-24 15:27:55 -07:00
Wei Huang
9e9808d0ab
EvenPodsSpread: Supports Preemption (removePod)
- add removePod() for podSpreadMap
2019-07-24 15:27:54 -07:00
Wei Huang
1822085088
EvenPodsSpread: update 'selfMatch' logic 2019-07-24 10:28:46 -07:00
Wei Huang
39e459ae9a
fixup: address comments 2019-07-24 10:28:46 -07:00
Wei Huang
e0e3889d74
EvenPodsSpread: Core Predicate logic 2019-07-24 10:28:46 -07:00
Wei Huang
08e7b3bacb
EvenPodsSpread: Define a new Predicate 2019-07-24 10:28:46 -07:00
Shintaro Murakami
c94e800008 Use v1helper.GetPersistentVolumeClaimClass for compatibility 2019-07-24 10:35:00 +09:00
Wei Huang
f822487f05
EvenPodsSpread: match selector of each constraint independently
- see more discussion at https://github.com/kubernetes/kubernetes/pull/77760#discussion_r305107973
2019-07-22 17:51:23 -07:00
Wei Huang
249752cc1f
fixup: fix comments and use a channel to pass err 2019-07-22 17:34:56 -07:00
Wei Huang
dce6686c9a
EvenPodsSpread: refactor "chained" utils
- move "chanined" utils to pkg/scheduler/testing/utils.go so as to be re-used by all scheduler tests
2019-07-22 17:34:56 -07:00
Wei Huang
3dbef991a3
EvenPodsSpread: refactor topologyPairsPodSpreadMap
- update minMatchMap from []int32 to map[string]int32
2019-07-22 17:34:56 -07:00
Wei Huang
a242e376ac
EvenPodsSpread: PredicateMetadata initilization
- build a new `topologyPairsPodSpreadMap` into PredicateMetadata
- update ShallowCopy()
- unit tests
2019-07-22 17:34:56 -07:00
Eric Ernst
62e9717386 scheduler: add pod Overhead support for requests
Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2019-07-16 12:56:19 -07:00
draveness
fab1948a1b feat: use channel instead of mutex in scheduling predicates 2019-07-13 09:11:52 +08:00
jingxueli
6a1bbff60c keep processing other nodes for the nil node error 2019-07-11 15:34:40 +08:00
shiyan2016
c329d5117d cancel process node if error occurs 2019-07-09 19:50:48 -07:00
Kubernetes Prow Robot
6653a490fb
Merge pull request #79532 from snowplayfire/update-errMsg
improve error msg for predicate meta data
2019-07-09 13:46:37 -07:00
Kubernetes Prow Robot
3a009af5c2
Merge pull request #79098 from chendave/update_comments
Update the comments on how to check disk conflict
2019-07-04 08:18:36 -07:00
jingxueli
6196f7274e improve error msg for predicate meta data 2019-06-30 03:32:02 +08:00
draveness
30b0f8bf3b fix: predicates read nodes from scheduler cache 2019-06-29 02:34:08 +08:00
Hemant Kumar
6abc04d059 Add unit tests for CSI predicate 2019-06-25 16:30:54 +02:00
Fabio Bertinatto
00b0ab86af Update scheduler to use volume limits from CSINode 2019-06-25 16:30:54 +02:00
Dave Chen
a9aea022ce Update the comments on how to check disk conflict
Signed-off-by: Dave Chen <dave.chen@arm.com>
2019-06-17 17:47:16 +08:00
Wei Huang
c4df3a2c44
prevent predicatesOrdering from escaping from UT
- sets `predicatesOrdering` back to original value in UT
2019-05-08 18:05:34 -07:00
Andrew Kim
c919139245 update import of generic featuregate code from k8s.io/apiserver/pkg/util/feature -> k8s.io/component-base/featuregate 2019-05-08 10:01:50 -04:00
Kubernetes Prow Robot
71d064040f
Merge pull request #76883 from hex108/cancel
Cancel processing node if error occurs when getting affinity and anti…
2019-04-24 02:44:17 -07:00
Jun Gong
5ad4cd6b72 Cancel processing node if error occurs when getting affinity and antiaffinity 2019-04-22 11:35:23 +08:00
caiweidong
4486021837 Avoid useless caller 2019-04-19 00:18:54 +08:00
Kubernetes Prow Robot
a670e85ad8
Merge pull request #76536 from cwdsuzhou/remove_unused_lock
Remove unused lock in scheduler
2019-04-16 17:48:19 -07:00
shinytang6
6d11926709 clean up comments 2019-04-14 20:03:39 +08:00
caiweidong
4038a5e3db Remove unused lock in scheduler 2019-04-13 13:27:16 +08:00
Ted Yu
02e0f9c5fd Produce map according to the shorter array in haveOverlap 2019-04-08 13:22:30 -07:00
PingWang
b43a9d6ad1 Delete unused struct
Signed-off-by: PingWang <wang.ping5@zte.com.cn>
2019-04-03 17:43:42 +08:00
Kubernetes Prow Robot
76b1d83517
Merge pull request #73863 from gnufied/fix-attach-limit-delayed
Fix code to handle delayed binding volumes
2019-04-01 13:18:35 -07:00
Jonathan Basseri
1b447e8d19 Scheduler: Logging cleanup in predicates.go.
This is some light cleanup of logs in predicates.go. In particular, some
log lines have details clarified that will make debugging easier.

I have not touched any VLOG messages, since those usually have plenty of
detail.
2019-03-22 17:33:18 -07:00
Hemant Kumar
a3a93c560b Add more volume types and unbound pvcs etc 2019-03-14 17:07:36 -04:00
Hemant Kumar
8c537b4693 Deprecate cloudprovider specific volume limit predicates
Fixes https://github.com/kubernetes/kubernetes/issues/72920
2019-02-25 16:24:29 -05:00
Andrew Kim
ca6a051b00 remove cloud provider dependencies to pkg/volume
Co-authored-by: Weibin Lin <linweibin1@huawei.com>
2019-02-09 01:16:55 -05:00
Hemant Kumar
b3cc469997 Fix code to handle delayed binding volumes 2019-02-08 17:27:50 -05:00
Kubernetes Prow Robot
54a578d3a1
Merge pull request #72012 from yeya24/patch-1
fix typos lable -> label
2019-02-08 10:36:05 -08:00
Davanum Srinivas
b975573385
move pkg/kubelet/apis/well_known_labels.go to staging/src/k8s.io/api/core/v1/
Co-Authored-By: Weibin Lin <linweibin1@huawei.com>

Change-Id: I163b2f2833e6b8767f72e2c815dcacd0f4e504ea
2019-02-05 13:39:07 -05:00
Bobby (Babak) Salamat
eb59bc605c Short circuit volume checker if the pod is not requesting any volumes 2019-02-01 22:02:30 -08:00
yanghaichao12
31a139966c Fix typos 2019-01-26 09:40:09 -05:00
Hemant Kumar
727b3097f9 Do not make Cinder Max volume predicate a default 2019-01-16 15:17:05 -05:00
Mike McRill
a88d1d3dcc Add Cinder Max Volume Limit
Also add place holder support for reporting limits from node.
2019-01-16 13:46:28 -05:00
Jordan Liggitt
73dcfe12da Stop checking VolumeScheduling feature gate 2018-12-27 17:45:45 -05:00
wangqingcan
b82a1d4600 Move predicate types from algorithm to predicates 2018-12-21 22:26:47 +08:00
Wei Huang
8f87e71e0c
cleanup logic related with OutOfDisk
- cleanup OOD logic in scheduling and node controller
- update comments and testcases
2018-12-18 11:28:02 -08:00
yeya24
16acbc84ce fix typos lable -> label 2018-12-13 17:52:13 +08:00
yuexiao-wang
7b6f60f085 modify BUILD
Signed-off-by: yuexiao-wang <wang.yuexiao@zte.com.cn>
2018-12-11 11:22:06 +08:00
yuexiao-wang
f3353c358d [scheduler cleanup phase 2]: Rename to
Signed-off-by: yuexiao-wang <wang.yuexiao@zte.com.cn>
2018-12-11 11:21:12 +08:00
Jordan Liggitt
2498ca7606 drop VerifyFeatureGatesUnchanged 2018-11-21 11:51:33 -05:00
Jordan Liggitt
733dd9dfd7 Add tests to ensure feature gate changes don't escape kubelet/scheduler packages 2018-11-16 10:52:53 -05:00
Jordan Liggitt
358c092abe fix storage unit tests leaking feature flag changes 2018-11-16 10:52:52 -05:00
Davanum Srinivas
954996e231
Move from glog to klog
- Move from the old github.com/golang/glog to k8s.io/klog
- klog as explicit InitFlags() so we add them as necessary
- we update the other repositories that we vendor that made a similar
change from glog to klog
  * github.com/kubernetes/repo-infra
  * k8s.io/gengo/
  * k8s.io/kube-openapi/
  * github.com/google/cadvisor
- Entirely remove all references to glog
- Fix some tests by explicit InitFlags in their init() methods

Change-Id: I92db545ff36fcec83afe98f550c9e630098b3135
2018-11-10 07:50:31 -05:00
Bobby (Babak) Salamat
7a352b2b92 Do not allocate memory for pods that do not have inter-pod affinity/anti-affinity 2018-11-02 15:15:45 -07:00
zhangmingld
cbfaf3856f fix typo in predicates_test.go 2018-10-26 09:59:40 +08:00
tanshanshan
b7c7966b9f Move pkg/scheduler/algorithm/well_known_labels.go out 2018-10-13 09:10:00 +08:00
k8s-ci-robot
539bdbc355
Merge pull request #69495 from wgliang/feature/movenodoinfofunctions
[scheduler cleanup phase 1]: Move NodeInfo utils into pkg/scheduler/cache
2018-10-11 07:12:40 -07:00
Guoliang Wang
a50404d441 [scheduler cleanup phase 1]: Move NodeInfo utils into pkg/scheduler/cache 2018-10-11 11:04:23 +08:00
k8s-ci-robot
c00f19bd15
Merge pull request #68403 from wgliang/master.deprecate-Parallelize
Replace Parallelize with function ParallelizeUntil and formally depre…
2018-10-06 09:40:07 -07:00
Christoph Blecker
97b2992dc1
Update gofmt for go1.11 2018-10-05 12:59:38 -07:00
Guoliang Wang
c2622dd9d8 Replace Parallelize with function ParallelizeUntil and formally deprecate the Parallelize 2018-10-05 17:56:56 +08:00
k8s-ci-robot
5b658bb65e
Merge pull request #69136 from zhangmingld/deletecommentgetPodsMatchingAffinity
func getPodsMatchingAffinity no longer exists,dont need it in comment
2018-09-30 02:37:03 -07:00
zhangmingld
061e0dbb7e func getPodsMatchingAffinity no longer exists,dont need it in comment 2018-09-27 14:42:49 +08:00
Da K. Ma
78f6484e14 Keep backward compatibility for 'node.Spec.Unschedulable'.
Signed-off-by: Da K. Ma <klaus1982.cn@gmail.com>
2018-09-23 10:33:51 +08:00
Wei Huang
7490542156
fix PodAntiAffinity issues
- update logic of verifying incoming pod's anti-affinity
- rename podMatchesAffinityTermProperties to podMatchesAllAffinityTermProperties
- add podMatchesAnyAffinityTermProperties which is used in some PodAntiAffinity cases
- rename some functions to make it more readable
- add unit tests to verify correctness of PodAffinity and PodAntiAffinity
  - verifying "Existing pod anti-affinity"
  - verifying "incoming pod's anti-affinity"
  - verifying "incoming pod's affinity"
2018-09-13 18:32:33 -07:00
Stephen Cuppett
d85daf0f4c Resolves #59015, extends existing regex to cover t3, r5(d) & z1d instance types
From current AWS documentation:

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/volume_limits.html

T3, C5, C5d, M5, M5d, R5, R5d, and z1d instances support a maximum of
28 attachments, and every instance has at least one network interface
attachment. If you have no additional network interface attachments on
these instances, you could attach 27 EBS volumes.
2018-09-05 21:24:09 -04:00
Kubernetes Submit Queue
ca43f007a3
Merge pull request #67731 from gnufied/fix-csi-attach-limit
Automatic merge from submit-queue (batch tested with PRs 68161, 68023, 67909, 67955, 67731). If you want to cherry-pick this change to another branch, please follow the instructions here: https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md.

Fix csi attach limit

Add support for volume limits for CSI.

xref: https://github.com/kubernetes/community/pull/2051

```release-note
Add support for volume attach limits for CSI volumes
```
2018-09-05 14:51:55 -07:00
Hemant Kumar
fc61620db5 Fix compatibility tests for scheduler 2018-09-05 12:29:00 -04:00
Ahmad Diaa
ee393b4e06 addressed reviewer comments 2018-08-30 01:48:55 +02:00
Ahmad Diaa
ac4a082b33 use topologyPairsMaps for inter pod affinity/anti-affinity maps 2018-08-30 01:48:54 +02:00
tizhou86
3e0fdc28c9 Add unit test cases for scheduler/algorithm/predicates. 2018-08-27 10:57:04 +08:00
Hemant Kumar
8e4b33d1a8 Move volume limit feature to beta 2018-08-22 19:36:01 -04:00
Hemant Kumar
4b17a48def Implement support for updating volume limits
Create a new predicate to count CSI volumes
2018-08-22 19:36:00 -04:00
Ahmad Diaa
b4c7d190cd using set instead of lists for topologyPairsMaps attributes 2018-08-18 01:02:48 +02:00
Ahmad Diaa
0f4c3064fd created struct for topologyPairs maps 2018-08-18 01:02:48 +02:00
Ahmad Diaa
f6659e4543 further enhancements removing matchingTerms from metadata 2018-08-18 01:02:47 +02:00
Mohamed Mehany
3fb6912d08 add topologyValue map to reduce search space 2018-08-18 01:02:46 +02:00
Hemant Kumar
45b8107378 Fix volume limit for EBS on m5 and c5 instances 2018-07-19 16:27:52 -04:00
Jeff Grafton
23ceebac22 Run hack/update-bazel.sh 2018-06-22 16:22:57 -07:00
John Calabrese
8bbf182695 use subtest for table units
apply subtest to predicates
2018-06-05 09:07:57 -04:00
Hemant Kumar
a0a9ccfa87 Implement scheduler changes for volume limits 2018-06-01 19:17:31 -04:00
Guoliang Wang
761cf41427 Move pkg/scheduler/schedulercache -> pkg/scheduler/cache 2018-05-31 22:55:34 +08:00
wenlxie
38106e7f0b storageclass can be in annotation and spec 2018-05-16 20:49:09 +08:00
Kubernetes Submit Queue
aea6addb82
Merge pull request #62934 from wackxu/scto
Automatic merge from submit-queue (batch tested with PRs 62354, 62934, 63502). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Refactor GetResourceRequest and GetResourceLimit

**What this PR does / why we need it**:

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:
Fixes #

**Special notes for your reviewer**:
/assign @bsalamat 

**Release note**:

```release-note
NONE
```
2018-05-09 09:30:11 -07:00
Kubernetes Submit Queue
0949cefd7b
Merge pull request #62453 from k82cn/k8s_61410_2
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Supported nodeSelector.matchFields in scheduler.

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:
part of  #61410

**Special notes for your reviewer**:

**Release note**:
```release-note
Supported nodeSelector.matchFields (node's `metadata.node`) in scheduler.
```
2018-05-09 02:47:21 -07:00
wackxu
adea3733a8 add SetMaxResource for Resource 2018-05-09 15:33:24 +08:00
Da K. Ma
b1a7f85c9e Supported matchField for NodeAffinity.
Signed-off-by: Da K. Ma <klaus1982.cn@gmail.com>
2018-04-28 11:10:29 +08:00
Kubernetes Submit Queue
6b64c07baf
Merge pull request #59735 from wgliang/master.predicates_test
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Add test for scheduler:VolumeCountConflicts

**What this PR does / why we need it**:
Add test for scheduler:VolumeCountConflicts

**Special notes for your reviewer**:
2018-04-26 20:41:33 -07:00
Kubernetes Submit Queue
0cf3788419
Merge pull request #63174 from misterikkit/equivHash
Automatic merge from submit-queue (batch tested with PRs 62937, 63105, 63031, 63174). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Revert "Revert "Revert revert of equivalence class hash calculation i…

…n scheduler""

This reverts commit 4386751b5d.



**What this PR does / why we need it**:
This re-introduces the change from https://github.com/kubernetes/kubernetes/pull/58555 which changes how the scheduler computes equivalence classes of pods. I believe we have fixed the flakiness observed previously (https://github.com/kubernetes/kubernetes/issues/61512, https://github.com/kubernetes/kubernetes/issues/62921). I have run the test in question a few dozen times without a failure.

```bash
make test-integration WHAT="./test/integration/scheduler" KUBE_TEST_ARGS="-run TestPreemptionStarvation" GOFLAGS="-v"
```

/ref https://github.com/kubernetes/kubernetes/issues/58222

**Special notes for your reviewer**:
I had to resolve several merge conflicts. I think I resolved them correctly, but keep an eye out for anything silly.

**Release note**:

```release-note
NONE
```
/sig scheduling
2018-04-26 16:40:19 -07:00
Da K. Ma
2c10d15ae5 Do not schedule pod to the node under PID pressure.
Signed-off-by: Da K. Ma <klaus1982.cn@gmail.com>
2018-04-26 10:07:42 +08:00
Jonathan Basseri
eace2d08d0 Revert "Revert "Revert revert of equivalence class hash calculation in scheduler""
This reverts commit 4386751b5d.
2018-04-25 16:11:59 -07:00
Da K. Ma
793ed98715 Added more UT for invalid case.
Signed-off-by: Da K. Ma <klaus1982.cn@gmail.com>
2018-04-25 11:14:24 +08:00
Kubernetes Submit Queue
98968c36d8
Merge pull request #62715 from bsalamat/fix_antiaffinity
Automatic merge from submit-queue (batch tested with PRs 62761, 62715). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Fix inter-pod anti-affinity check to consider a pod a match when all the anti-affinity terms match

**What this PR does / why we need it**:
Inter-pod anti-affinity check used to incorrectly consider a pod a match when any of the anti-affinity terms matched the pod. This PR fixes the logic to consider a pod a match when all the terms match the pod.

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:
Fixes #62567

**Special notes for your reviewer**:

**Release note**:

```release-note
Fix inter-pod anti-affinity check to consider a pod a match when all the anti-affinity terms match.
```

/sig scheduling
2018-04-17 22:38:13 -07:00
Bobby (Babak) Salamat
eb213e68c2 Fix anti-affinity issue that caused a pod to be considered a match if any of the terms matched (as opposed to all terms matched) 2018-04-16 23:47:46 -07:00
Bobby (Babak) Salamat
4f2155ae22 Addressed reviewer comments 2018-04-16 16:09:24 -07:00
Bobby (Babak) Salamat
c590ec7ae9 Fix an issue in inter-pod affinity predicate that cause affinity to self being processed incorrectly 2018-04-14 19:46:38 -07:00
Bobby (Babak) Salamat
4d7fff1257 Add test to ensure anti-affinity matches against all terms 2018-04-14 19:32:58 -07:00