Wojciech Tyczynski
fad876b6f9
PodAffinity code refinements
2016-07-22 08:49:28 +02:00
Wojciech Tyczynski
cab7db3a64
Use []*api.Node instead of NodeLister in priority functions.
2016-07-21 08:21:07 +02:00
Wojciech Tyczynski
dcb5a6d1a6
Reuse existing Resource struct instead of new resourceRequest
2016-07-19 12:21:09 +02:00
k8s-merge-robot
a049a97820
Merge pull request #28803 from lukaszo/ds
...
Automatic merge from submit-queue
Make Daemonset use GeneralPredicates
fixes : #21454 #22205
2016-07-18 22:12:14 -07:00
Davanum Srinivas
2b0ed014b7
Use Go canonical import paths
...
Add canonical imports only in existing doc.go files.
https://golang.org/doc/go1.4#canonicalimports
Fixes #29014
2016-07-16 13:48:21 -04:00
k8s-merge-robot
4374b090c3
Merge pull request #28958 from wojtek-t/optimize_priorities_5
...
Automatic merge from submit-queue
Few more optimizations of priority functions in scheduler
Ref #28590
@davidopp
2016-07-15 09:32:04 -07:00
k8s-merge-robot
8b2d994153
Merge pull request #28952 from wojtek-t/optimize_pod_affinity
...
Automatic merge from submit-queue
First step of optimizing PodAffinity priority function
Ref #26144
This is obviously only a first step - I will continue working on this code. However, this is changing the general scheme of computations to what is described in: https://github.com/kubernetes/kubernetes/issues/26144#issuecomment-232612384
2016-07-15 08:59:17 -07:00
Wojciech Tyczynski
a538045d7b
Cleanup and prepare for optimizing PodAffinity priority function.
2016-07-15 10:06:36 +02:00
Wojciech Tyczynski
a23f7bd556
Few more optimizations of priority functions in scheduler
2016-07-14 15:32:56 +02:00
k8s-merge-robot
74c5b4e4be
Merge pull request #28459 from ping035627/ping035627-patch-0704
...
Automatic merge from submit-queue
Optimise the process of the CalculateSpreadPriority in selector_spreading.go
It had better inspect if the nodeLister is normal first in the CalculateSpreadPriority in selector_spreading.go. If the nodeLister.List return error, the function return directly, not need deal the serviceLister and controllerLister and replicaSetLister.
2016-07-14 04:54:32 -07:00
k8s-merge-robot
06939c57aa
Merge pull request #20699 from jiangyaoguo/add-AvoidPreviousNode
...
Automatic merge from submit-queue
Implement alpha version of PreferAvoidPods
This is part of #18853
<!-- Reviewable:start -->
---
This change is [<img src="http://reviewable.k8s.io/review_button.svg " height="35" align="absmiddle" alt="Reviewable"/>](http://reviewable.k8s.io/reviews/kubernetes/kubernetes/20699 )
<!-- Reviewable:end -->
2016-07-14 03:30:25 -07:00
PingWang
e4ab32cde2
Modify CalculateAntiAffinityPriority function
...
Signed-off-by: PingWang <wang.ping5@zte.com.cn>
2016-07-14 09:10:50 +08:00
PingWang
437e133b34
Optimise the process of the CalculateSpreadPriority in selector_spreading.go
...
Signed-off-by: PingWang <wang.ping5@zte.com.cn>
2016-07-14 09:09:05 +08:00
Łukasz Oleś
528bf7af3a
Make Daemonset use GeneralPredicates
...
fixes #21454 , fixes #22205
2016-07-13 14:50:29 +02:00
Wojciech Tyczynski
c929d95884
Cache Allocatable Resources
2016-07-13 12:57:18 +02:00
Wojciech Tyczynski
58c201834c
Unify resources
2016-07-13 12:57:07 +02:00
jiangyaoguo
4e91166bc6
Use PreferAvoidPods annotation to avoid pods being scheduled to specific node.
...
1. define PreferAvoidPods annotation
2. add PreferAvoidPodsPriority
3. validate AvoidPods in node annotations
2016-07-13 17:07:46 +08:00
Wojciech Tyczynski
ea1d797f98
Avoid computing ports multiple times
2016-07-13 11:02:26 +02:00
Wojciech Tyczynski
ae6b66207a
Optimize selector spreading
2016-07-13 11:02:26 +02:00
Wojciech Tyczynski
b9d13c5dbd
Avoid computing pod resources multiple times
2016-07-13 11:01:53 +02:00
kevin-wangzefeng
ff6280fa5b
update inter-pod affinity predicates, check PodAntiAffinity even when pod has no AntiAffinity constraints
2016-07-13 03:55:01 +00:00
k8s-merge-robot
5894dc4615
Merge pull request #28829 from gmarek/hooks
...
Automatic merge from submit-queue
Add hooks for cluster health detection
Separate a function that decides if zone is healthy. First real commit for preventing massive pod eviction.
Ref. #28832
cc @davidopp
2016-07-12 08:12:04 -07:00
k8s-merge-robot
98030ded05
Merge pull request #28781 from wojtek-t/optimize_priorities_2
...
Automatic merge from submit-queue
Change storeToNodeConditionLister to return []*api.Node instead of api.NodeList for performance
Currently copies that are made while copying/creating api.NodeList are significant part of scheduler profile, and a bunch of them are made in places, that are not-parallelizable.
Ref #28590
2016-07-12 06:18:15 -07:00
gmarek
fd600ab65c
Add hooks for cluster health detection
2016-07-12 15:10:58 +02:00
k8s-merge-robot
9b5827691a
Merge pull request #28669 from lixiaobing10051267/masterTestPodFitsResources
...
Automatic merge from submit-queue
Add test case to TestPodFitsResources() of scheduler algorithm
File "plugin\pkg\scheduler\algorithm\predicates", function "TestPodFitsResources()", line 199, only provide test case "one resource cpu fits but memory not", it should add test case "one resource memory fits but cpu not".
2016-07-11 22:46:09 -07:00
Wojciech Tyczynski
d14fe0f269
Change storeToNodeConditionLister to return []*api.Node instead of api.NodeList for performance
2016-07-11 21:02:33 +02:00
k8s-merge-robot
5067af159e
Merge pull request #28715 from euank/kubelet-trim-dead-code
...
Automatic merge from submit-queue
kubelete: delete a few bits of dead code
Less is more.
2016-07-11 11:40:47 -07:00
k8s-merge-robot
9b74e24fa3
Merge pull request #28769 from wojtek-t/optimize_priorities
...
Automatic merge from submit-queue
Optimize priorities in scheduler
Ref #28590
It's probably easier to review it commit by commit, since those changes are kind of independent from each other.
@davidopp - FYI
2016-07-11 07:49:23 -07:00
Wojciech Tyczynski
d02e8d2885
Avoid unnecessary conversions
2016-07-11 15:41:27 +02:00
Wojciech Tyczynski
dcb2ca54ad
Avoid unnecessary copies
2016-07-11 15:41:27 +02:00
Wojciech Tyczynski
989202c384
Cache AllowedPodNumber to avoid conversions.
2016-07-11 15:41:26 +02:00
Wojciech Tyczynski
4eed5e07a5
Precompute pod resources
2016-07-11 15:41:26 +02:00
Wojciech Tyczynski
e8e8e2d086
Remove unneeded factories
2016-07-11 15:41:26 +02:00
lixiaobing10051267
ce83c04251
Error info "scheduler" modify
2016-07-11 15:17:43 +08:00
PingWang
4fde2ff3a5
Update CheckServiceAffinity in predicates.go
...
Signed-off-by: PingWang <wang.ping5@zte.com.cn>
gofmt -s -w
Signed-off-by: PingWang <wang.ping5@zte.com.cn>
2016-07-11 09:57:57 +08:00
Euan Kemp
26e0f50504
kubelet: delete unused code
2016-07-08 15:15:43 -07:00
Wojciech Tyczynski
0e6dc8a932
Avoid unnecessary copies
2016-07-08 13:54:06 +02:00
Wojciech Tyczynski
b1d53895a4
Check only predicate functions in test
2016-07-08 13:01:41 +02:00
Wojciech Tyczynski
b92eadfd1a
Avoid computing QOS multiple times
2016-07-08 12:57:40 +02:00
Wojciech Tyczynski
6890868823
Add meta field to predicates signature
2016-07-08 12:25:48 +02:00
lixiaobing10051267
b4c106426e
Add test case to TestPodFitsResources()
2016-07-08 15:43:03 +08:00
Wojciech Tyczynski
31538db145
Avoid growing slices
2016-07-07 15:54:39 +02:00
Wojciech Tyczynski
6c77c01f24
Avoid copying nodes in priority functions
2016-07-07 14:38:09 +02:00
Wojciech Tyczynski
58c95c136f
Quick returns in predicates
2016-07-07 12:34:54 +02:00
Hongchao Deng
7127915a66
selector: make sure value of GT and LT is integer
2016-07-04 20:18:17 -07:00
k8s-merge-robot
61a9358dbd
Merge pull request #26774 from xiangpengzhao/fix_predicatesnil
...
Automatic merge from submit-queue
Check nil pointer in predicates.go
Should check if the pointer is nil in func filterVolumes as is done in [func predicate](https://github.com/kubernetes/kubernetes/blob/master/plugin/pkg/scheduler/algorithm/predicates/predicates.go#L279 ).
2016-06-30 01:45:26 -07:00
David McMahon
ef0c9f0c5b
Remove "All rights reserved" from all the headers.
2016-06-29 17:47:36 -07:00
xiangpengzhao
5b69688b4b
Check nil for pointer
2016-06-27 22:55:20 -04:00
Buddha Prakash
4acb64f8bd
Make Qos naming consistent across the codebase
2016-06-26 16:19:47 -07:00
Buddha Prakash
c3551ae6cd
Refactor qos package
...
Signed-off-by: Buddha Prakash <buddhap@google.com>
2016-06-24 15:36:04 -07:00
k8s-merge-robot
a405df4391
Merge pull request #25710 from xiangpengzhao/fix_predicate
...
Automatic merge from submit-queue
No need to log empty string in predicates.go
If `pvcName` is empty, we don't need to log it.
2016-06-24 13:56:26 -07:00
Jan Safranek
c9a60e2d2c
Rephrase 'pv not found in cache' warnings.
...
When kubelet starts a pod that refers to non-existing PV, PVC or Node, it
should clearly show that the requested element does not exist.
Previous "PersistentVolumeClaim 'default/ceph-claim-wm' is not in cache"
looks like random kubelet hiccup, while "PersistentVolumeClaim
'default/ceph-claim-wm' not found" suggests that the object may not exist at
all and it might be an user error.
Fixes #27523
2016-06-21 14:56:11 +02:00
k8s-merge-robot
8b7d842203
Merge pull request #27227 from abhgupta/issue_27198
...
Automatic merge from submit-queue
Counting pod volume towards PV limit even if PV/PVC is missing
Fixes #27198
Implements option 3 from https://github.com/kubernetes/kubernetes/issues/27198#issuecomment-225298492
/cc @smarterclayton @markturansky @childsb
2016-06-17 12:40:51 -07:00
Abhishek Gupta
20ce8b71ab
Improving error messages and naming to be clear
2016-06-13 15:23:17 -07:00
Abhishek Gupta
07bc06ba50
Counting pod volume towards PV limit even if PV/PVC is missing
2016-06-13 15:17:42 -07:00
xiangpengzhao
f1d98ba961
Make priority score info more clear
2016-06-12 02:31:41 -04:00
Jan Chaloupka
b95b30bbd7
Scheduler: introduce CheckNodeMemoryPressurePredicate, don't schedule pods for nodes that reports memory pressury.
...
Introduce unit-test for CheckNodeMemoryPressurePredicate
Following work done in #14943
2016-05-22 00:40:28 +02:00
Kevin
52fb89ff73
implement taints and tolerations
2016-05-18 15:06:23 +00:00
root
74901ae150
No need to log empty string
2016-05-17 10:01:37 -04:00
Clayton Coleman
1b6591312d
Update the scheduler to handle init containers
2016-05-17 00:29:54 -04:00
Rudi Chiarito
362c763fca
WIP v0 NVIDIA GPU support
...
Implements part of #24071
I am not familiar with the scheduler enough to know what to do with the scores. Punting for now.
Missing items from the implementation plan: limitranger, rkt support, kubectl
support and user docs
2016-05-09 19:20:05 -04:00
Wojciech Tyczynski
a51f266ebf
Remove nodeName from predicate signature.
2016-05-06 11:23:37 +02:00
Kevin
82ba4f077e
implement inter pod topological affinity and anti-affinity
2016-05-06 06:46:23 +00:00
Clayton Coleman
fdb110c859
Fix the rest of the code
2016-04-29 17:12:10 -04:00
Wojciech Tyczynski
1835c8528d
Store node information in NodeInfo
2016-04-25 10:08:05 +02:00
gmarek
e0712f7e57
Fix MaxPods feature in scheduler
2016-04-22 22:49:50 +02:00
Wojciech Tyczynski
a4b3f47347
Add RC and container pors to scheduler benchmark
2016-04-20 15:10:57 +02:00
HaiyangDING
a5efb009c5
change predicate error format.
2016-04-17 08:48:03 +08:00
HaiyangDING
41ed85479a
move predicates into library (address #12744 )
...
DONE:
1. refactor all predicates: predicates return fitOrNot(bool) and error(Error) in which the latter is of type
PredicateFailureError or InsufficientResourceError. (For violation of either MaxEBSVolumeCount or
MaxGCEPDVolumeCount, returns one same error type as ErrMaxVolumeCountExceeded)
2. GeneralPredicates() is a predicate function, which includes serveral other predicate functions (PodFitsResource,
PodFitsHost, PodFitsHostPort). It is registered as one of the predicates in DefaultAlgorithmProvider, and
is also called in canAdmitPod() in Kubelet and should be called by other components (like rescheduler, etc)
if necessary. See discussion in issue #12744
3. remove podNumber check from GeneralPredicates
4. HostName is now verified in Kubelet's canAdminPod(). add TestHostNameConflicts in kubelet_test.go
5. add getNodeAnyWay() method in Kubelet to get node information in standaloneMode
TODO:
1. determine which predicates should be included in GeneralPredicates()
2. separate GeneralPredicates() into:
a. GeneralPredicatesEvictPod() and
b. GeneralPredicatesNotEvictPod()
3. DaemonSet should use GeneralPredicates()
2016-04-11 00:57:03 +08:00
Wojciech Tyczynski
ebcc8f737c
Parallelize computing selector spreading priority in scheduler.
2016-03-22 14:09:58 +01:00
Hongchao Deng
ae88f08af0
Scheduler: replace system modeler with scheduler cache
2016-03-14 09:03:41 -07:00
Mike Metral
2da0dbd6fd
fix typo
2016-03-12 14:06:41 +00:00
Marek Grabowski
eb2f5153b3
Revert "Scheduler: replace system modeler with scheduler cache and do O(1) lookup for resource req"
2016-03-02 15:38:56 +01:00
k8s-merge-robot
e7d0f06c4a
Merge pull request #21736 from resouer/check-register
...
Auto commit by PR queue bot
2016-03-01 02:21:56 -08:00
Hongchao Deng
f29a1d6c5c
scheduler: Scheduler: replace system modeler with scheduler cache
...
We're using the scheduler cache to do O(1) lookup for resource request
2016-02-26 09:22:29 -08:00
Harry Zhang
636e982ecd
Implement checking in predicates
2016-02-25 21:25:36 +08:00
harry
b90550de25
Implement check for priority
2016-02-23 11:59:32 +08:00
Vishnu kannan
2623fdde17
Improve the naming of fields in ContainerImage struct used in NodeStatus.
...
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-02-16 15:45:22 -08:00
k8s-merge-robot
8a815b919d
Merge pull request #21074 from mqliang/scheduler-ReplicaSet
...
Auto commit by PR queue bot
2016-02-16 01:48:33 -08:00
mqliang
0aab44a00d
add ReplicaSet support in scheduler
2016-02-16 14:34:46 +08:00
derekwaynecarr
a03361bd84
Make default format right for nil values
2016-02-15 13:55:33 -05:00
David Oppenheimer
66368efad5
Comment out NodeAffinity.RequiredDuringSchedulingRequiredDuringExecution
...
because it is not yet implemented.
2016-02-14 17:46:13 -08:00
Hongchao Deng
1cf4540b5d
priorities: move getNonzeroRequests() into util/ package
2016-02-10 08:35:00 -08:00
Hongchao Deng
9236e4a0b4
scheduler: change fit predicates and priority func as needed for optimization
2016-02-09 09:38:28 -08:00
k8s-merge-robot
8e56494ec5
Merge pull request #20140 from resouer/scheduler
...
Auto commit by PR queue bot
2016-02-05 20:08:31 -08:00
k8s-merge-robot
175d0c57f2
Merge pull request #19880 from DirectXMan12/feature/limit-ebs-scheduler-predicate
...
Auto commit by PR queue bot
2016-02-05 09:26:42 -08:00
Kevin
c8c82c1d8f
implement Node affinity and NodeSelector
2016-02-04 01:53:14 +00:00
harry
233a601130
Caculate priorities based on image locality
...
Add test for image score
Update generated docs
2016-02-03 21:01:26 +08:00
Solly Ross
2d436ff080
Scheduler predicate for capping node volume count
...
For certain volume types (e.g. AWS EBS or GCE PD), a limitted
number of such volumes can be attached to a given node. This commit
introduces a predicate with allows cluster admins to cap
the maximum number of volumes matching a particular type attached to a
given node.
The volume type is configurable by passing a pair of filter functions,
and the maximum number of such volumes is configurable to allow node
admins to reserve a certain number of volumes for system use.
By default, the predicate is exposed as MaxEBSVolumeCount and
MaxGCEPDVolumeCount (for AWS ElasticBlocKStore and GCE PersistentDisk
volumes, respectively), each of which can be configured using the
`KUBE_MAX_PD_VOLS` environment variable.
Fixes #7835
2016-02-02 16:21:42 -05:00
k8s-merge-robot
feb4b4857c
Merge pull request #19890 from vishh/0-nodes
...
Auto commit by PR queue bot
2016-02-01 14:09:06 -08:00
Hongchao Deng
8e1bfad490
insufficient resource error: details of failure in failedPredicateMap
2016-01-21 21:49:00 -08:00
Alex Mohr
76f02d562a
Merge pull request #19083 from resouer/allocatable
...
Use Allocatable to replace Capacity
2016-01-21 16:05:05 -08:00
Alex Mohr
fd9310fa6e
Merge pull request #18452 from xiang90/refactor_nodiskconflicts
...
scheduler: clean up NoDiskConflict code in predicates.go
2016-01-21 10:58:41 -08:00
Vishnu kannan
21748701f1
Avoid nodes that have 0
cpu and memory capacity.
...
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-01-20 15:34:58 -08:00
Harry Zhang
0202a206b8
Integration test to verify alloc works
...
Add integration test to verify allocatable can works
2016-01-20 15:36:19 +08:00
harry
e64fe82245
Use Allocatable to replace Capacity
...
Use allocate instead in priorities
2016-01-18 15:26:40 +08:00
k8s-merge-robot
98b190acf4
Merge pull request #19527 from hongchaodeng/pred
...
Auto commit by PR queue bot
2016-01-17 03:52:16 -08:00
Hongchao Deng
111b603c95
Remove FailedResourceType and return custom error
2016-01-12 08:41:30 -08:00
Saad Ali
9b415f0300
Revert "Remove FailedResourceType and return custom error"
2016-01-11 11:27:50 -08:00
Hongchao Deng
91fa5f8c88
PodFitsHostPorts: small refactor and speedup
2016-01-09 20:03:52 -08:00