Commit Graph

197 Commits

Author SHA1 Message Date
Wojciech Tyczynski
7219802ac7 Pass pointer to node in NodCondition 2016-07-07 14:10:17 +02:00
David McMahon
ef0c9f0c5b Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
Wojciech Tyczynski
5d702a32c1 Fix race in informer 2016-06-14 16:40:12 +02:00
Abhishek Gupta
623e7dfa39 Considering all nodes for the scheduler cache to allow lookups 2016-06-08 14:41:18 -07:00
k8s-merge-robot
2253f3d824 Merge pull request #26021 from hongchaodeng/random
Automatic merge from submit-queue

scheduler: remove unused random generator

The way scheduler selecting host has been changed to round-robin.
Clean up leftover.
2016-05-29 12:35:00 -07:00
Wojciech Tyczynski
be1b57100d Change to NotReadyNetworking and use in scheduler 2016-05-27 19:32:49 +02:00
Hongchao Deng
e2704c9168 scheduler: remove unused random generator 2016-05-24 20:12:21 -07:00
Filip Grzadkowski
55a1c826bb Refactor scheduler to expose predicates to cluster autoscaler 2016-05-24 09:04:31 +02:00
Tim Hockin
66d0d87829 Make IsValidLabelValue return error strings 2016-05-17 21:36:10 -07:00
k8s-merge-robot
4ac32179bf Merge pull request #24798 from thockin/validation_pt8-1
Automatic merge from submit-queue

Make IsQualifiedName return error strings

Part of the larger validation PR, broken out for easier review and merge.

@lavalamp FYI, but I know you're swamped, too.
2016-05-14 22:14:17 -07:00
k8s-merge-robot
132ebb091a Merge pull request #24459 from fgrzadkowski/unschedulable_pod
Automatic merge from submit-queue

Add pod condition PodScheduled to detect situation when scheduler tried to schedule a Pod, but failed

Set `PodSchedule` condition to `ConditionFalse` in `scheduleOne()` if scheduling failed and to `ConditionTrue` in `/bind` subresource.

Ref #24404

@mml (as it seems to be related to "why pending" effort)

<!-- 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/24459)
<!-- Reviewable:end -->
2016-05-12 05:54:06 -07:00
Filip Grzadkowski
a80b1798c4 Add pod condition PodScheduled to detect situation
when scheduler tried to schedule a Pod, but failed.

Ref #24404
2016-05-12 10:21:21 +02:00
Tim Hockin
72955770f3 Make IsQualifiedName return error strings 2016-05-10 11:23:23 -07:00
mqliang
9011207f18 add namespace index to rc and pod 2016-05-06 17:12:36 +08:00
Kevin
82ba4f077e implement inter pod topological affinity and anti-affinity 2016-05-06 06:46:23 +00:00
k8s-merge-robot
00308f7a9f Merge pull request #24598 from wojtek-t/improve_scheduler_predicates
Automatic merge from submit-queue

Store node information in NodeInfo

This is significantly improving scheduler throughput.

On 1000-node cluster:
- empty cluster: ~70pods/s
- full cluster: ~45pods/s
Drop in throughput is mostly related to priority functions, which I will be looking into next (I already have some PR #24095, but we need for more things before).

This is roughly ~40% increase.
However, we still need better understanding of predicate function, because in my opinion it should be even faster as it is now. I'm going to look into it next week.

@gmarek @hongchaodeng @xiang90
2016-04-28 02:17:59 -07:00
Wojciech Tyczynski
1835c8528d Store node information in NodeInfo 2016-04-25 10:08:05 +02:00
Wojciech Tyczynski
80901a5542 Add traces to scheduler 2016-04-20 15:19:19 +02:00
goltermann
32d569d6c7 Fixing all the "composite literal uses unkeyed fields" Vet errors. 2016-03-25 15:25:09 -07:00
Hongchao Deng
ae88f08af0 Scheduler: replace system modeler with scheduler cache 2016-03-14 09:03:41 -07:00
Piotr Szczesniak
33cc3c7653 Fixed logging in scheduler 2016-03-05 10:53:06 +01: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
Kris
e664ef922f Move restclient to its own package 2016-02-29 12:05:13 -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
mqliang
0aab44a00d add ReplicaSet support in scheduler 2016-02-16 14:34:46 +08:00
harry
1032067ff9 Replace runtime reference by pkg 2016-02-01 21:06:44 +08:00
harry
080cb60dab Fix duplicated rate limit in scheduler
Remove BindingRateLimiterSaturation metrics

Update generated doc
2016-01-13 20:51:55 +08:00
Justin Santa Barbara
f9a6ac077e Ubernetes Lite: Volumes can dictate zone scheduling
For AWS EBS, a volume can only be attached to a node in the same AZ.
The scheduler must therefore detect if a volume is being attached to a
pod, and ensure that the pod is scheduled on a node in the same AZ as
the volume.

So that the scheduler need not query the cloud provider every time, and
to support decoupled operation (e.g. bare metal) we tag the volume with
our placement labels.  This is done automatically by means of an
admission controller on AWS when a PersistentVolume is created backed by
an EBS volume.

Support for tagging GCE PVs will follow.

Pods that specify a volume directly (i.e. without using a
PersistentVolumeClaim) will not currently be scheduled correctly (i.e.
they will be scheduled without zone-awareness).
2015-12-31 12:27:01 -05:00
k8s-merge-robot
f4f4e5cb9f Merge pull request #18817 from mqliang/schedulerSelector
Auto commit by PR queue bot
2015-12-23 12:09:19 -08:00
mqliang
e58eae313e move filter logic to list&watch client 2015-12-22 19:32:18 +08:00
HaiyangDING
d9f3607292 Implement multi-scheduler:
1. Name default scheduler with name `kube-scheduler`
2. The default scheduler only schedules the pods meeting the following condition:
	- the pod has no annotation "scheduler.alpha.kubernetes.io/name: <scheduler-name>"
	- the pod has annotation "scheduler.alpha.kubernetes.io/name: kube-scheduler"

update gofmt

update according to @david's review

run hack/test-integration.sh, hack/test-go.sh and local e2e.test
2015-12-22 10:49:40 +08:00
k8s-merge-robot
b97cfd8d8f Merge pull request #18818 from mqliang/parseordie
Auto commit by PR queue bot
2015-12-20 15:08:38 -08:00
combk8s
f697732a5d move parse or die logic to selector.go 2015-12-17 19:59:46 +08:00
jiangyaoguo
f4c5d00b0c Implement a cachedNodeInfo in predicates 2015-11-27 21:49:14 +08:00
Ravi Gadde
cadc24e9fd Scheduler extension 2015-11-25 08:19:27 -08:00
Madhusudan.C.S
ce257b5a0e Use node out of disk condition in the scheduler while scheduling pods.
Set the out of disk node condition to unknown in the node controller if
the kubelet does not report its node condition in a long time. Update
node controller unit tests.

Implement a node condition predicate function that checks if a given
node satisfies the conditions defined by the predicate and if it
does, use that node for scheduling pods. The predicate function takes
both NodeReady and NodeOutOfDisk into consideration to determine if a
node is fit for scheduling pods.

The predicate is then passed to the node lister in the scheduler factory
so that the node lister can run the predicate function on the nodes when
schedling pods thereby omitting nodes that does not satisfy the
predicate.

Also update listers test.
2015-10-28 14:29:46 -07:00
eulerzgy
71b96422f4 set capital in some files 2015-09-30 14:46:20 +08:00
Brendan Burns
40247acb0f Fix a race in pod backoff. 2015-09-24 15:43:33 -07:00
Wojciech Tyczynski
53ae56f205 Replace "minion" with "node" in bunch of places. 2015-09-14 11:07:11 +02:00
Daniel Smith
b225c1d47a Run gofmt (separate commit for easy rebases) 2015-09-10 17:17:59 -07:00
Daniel Smith
15b30b8b09 Move version agnostic parts of client
pkg/client/unversioned/cache -> pkg/client/cache
pkg/client/unversioned/record -> pkg/client/record
2015-09-10 17:17:59 -07:00
tummychow
78ce5da988 Move util.StringSet into its own package
A lot of packages use StringSet, but they don't use anything else from
the util package. Moving StringSet into another package will shrink
their dependency trees significantly.
2015-09-10 12:04:15 -07:00
Kris Rousey
ae6c64d9bb Moving everyone to unversioned client 2015-08-18 10:23:03 -07:00
Kris Rousey
565189f5b8 Correcting all go vet errors 2015-08-11 13:55:37 -07:00
Mike Danese
8e33cbfa28 rewrite go imports 2015-08-05 17:30:03 -07:00
gmarek
4cc0a2f117 Allow changing Schedulers RateLimitter setting during startup. 2015-08-03 15:27:19 +02:00
gmarek
94eb52de33 Add spreading by controllers 2015-07-31 16:28:50 +02:00
Tim Hockin
d0daabb34b Merge pull request #8471 from bprashanth/scheduler_burst
Limit the scheduler to a burst qps of 30
2015-05-28 16:55:25 -07:00
Chao Xu
9c1153322e update PodSpec.Host to PodSpec.NodeName in /pkg/api/types.go and /pkg/api/v1beta3/types.go 2015-05-28 14:10:06 -07:00
Prashanth Balasubramanian
4004a68ae9 Limit the scheduler to a burst qps of 30 and rate limit pod binding 2015-05-27 16:35:09 -07:00
Clayton Coleman
d00f705652 Tone down scheduler logging
Having no nodes in the cluster is unusual and is likely a test
environment, and when a pod is deleted there is no need to log
information about our inability to schedule it.
2015-05-16 19:46:50 -04:00
hurf
6203ce9f85 Move pkg/scheduler to plugin/pkg/scheduler
As the TODO in plugin/pkg/scheduler/scheduler.go described:

move everything from pkg/scheduler into this package. Remove
references from registry.
2015-05-13 14:03:25 +08:00
Prashanth Balasubramanian
4b0607cf0b Scheduler ignored nodes with unknown condition status 2015-05-06 18:32:52 -07:00
Eric Paris
6b3a6e6b98 Make copyright ownership statement generic
Instead of saying "Google Inc." (which is not always correct) say "The
Kubernetes Authors", which is generic.
2015-05-01 17:49:56 -04:00
Daniel Smith
835a87aed2 Merge pull request #6857 from wojtek-t/fix_scheduler_nodes
Fix listing nodes in scheduler
2015-04-15 17:05:04 -07:00
Wojciech Tyczynski
afb94c43b1 Fix listing nodes in scheduler 2015-04-15 14:26:25 +02:00
Daniel Smith
fb0df935f6 add missing syncronization 2015-04-14 15:59:50 -07:00
Daniel Smith
dd26cdf0f7 Fix comments; switch to watching nodes 2015-04-10 17:49:51 -07:00
Daniel Smith
6835318d1e switch to require 'go controller.Run()' 2015-04-10 14:05:08 -07:00
Daniel Smith
5f7715f0e9 Make scheduler not miss deletion events even in the case of a resync. 2015-04-10 14:05:08 -07:00
Wojciech Tyczynski
88eb0b0295 FieldSelector for node List() 2015-04-10 12:53:16 +02:00
Masahiro Sano
d04cc5ced4 List in NodesInterface takes label selector 2015-04-08 23:41:27 +09:00
Wojciech Tyczynski
8a5c76356c Revert "Stop the bleeding for #6059"
This reverts commit 6be09c5e97.
2015-04-08 13:29:29 +02:00
Daniel Smith
c1390a0836 version field selector field names in the client 2015-04-07 16:59:57 -07:00
gmarek
ef56dca6b6 Remove ConditionSchedulable 2015-04-07 17:01:07 +02:00
Daniel Smith
6be09c5e97 Stop the bleeding for #6059 2015-04-02 13:54:10 -07:00
Piotr Szczesniak
5c6439d449 Removed PodStatus.Host
Fixes #6165
2015-04-02 16:38:45 +02:00
Deyuan Deng
6bb9701489 Remove Reachable Condition 2015-04-01 13:56:43 -04:00
Abhishek Gupta
8a01aed83f Adding validations for scheduler Policy 2015-03-31 10:54:45 -07:00
saadali
e0f71cb21f Make each new instance of kubelet generate a new event channel (instead of reusing existing). 2015-03-30 14:22:16 -07:00
Daniel Smith
fd952862c3 Remove pods from the assumed pod list when they are deleted 2015-03-30 11:16:55 -07:00
Robert Rati
c2938b299d Only schedule to pods that are available. #5545 2015-03-26 08:42:14 -04:00
Deyuan Deng
ca68f4a9d1 Rename ConditionFull->ConditionTrue, ConditionNone->ConditionFalse 2015-03-24 17:28:59 -04:00
Brian Grant
11f9733599 Merge pull request #5587 from nikhiljindal/enable3
Updating integration tests to test both API versions - v1beta1 and 3
2015-03-18 16:14:20 -07:00
nikhiljindal
7e36bbab3c Updating integration tests to test both API versions - v1beta1 and 3 2015-03-18 15:24:11 -07:00
Salvatore Dario Minonne
31ddefc347 Finalize fields.Selector 2015-03-17 22:55:43 +01:00
Piotr Szczesniak
7aa6356625 Fill NodeInfo in CreateFromKey method in scheduler
NodeInfo was nil and it caused segfault

Fixes #5503
2015-03-17 14:57:49 +01:00
Daniel Smith
992d78a32e Add a system modeler to scheduler
So it can try to predict the effect its bindings will have.
2015-03-13 17:48:16 -07:00
Satnam Singh
52bf7af739 Merge pull request #5351 from lavalamp/fix2
remove evil global state shared by all schedulers
2015-03-13 10:15:27 -07:00
Ravi Sankar Penta
f6ecec5880 Allow admin user to explicitly unschedule the node
Setting Unschedulable on the node will not touch any existing pods
on the node but will block scheduling of new pods on the node.
2015-03-12 14:27:27 -07:00
Wojciech Tyczynski
9f2f10d6db Make scheduler to watch PodSpec.Host instead Status.Host 2015-03-12 13:38:58 +01:00
Daniel Smith
3e83ffdd40 remove evil global state shared by all schedulers 2015-03-11 18:09:01 -07:00
Brian Grant
6062e14313 Merge pull request #5220 from nikhiljindal/camelCaseFieldSelectors
Changing v1beta3 field selectors to be camelCased
2015-03-10 09:35:03 -07:00
nikhiljindal
916ca9cc68 Changing v1beta3 field selectors to be camelCased 2015-03-09 18:01:01 -07:00
Clayton Coleman
dfc19185f5 Add a subbindings resource as /pods/{name}/binding
Allows POST to create a binding as a child. Also refactors internal
and v1beta3 Binding to be more generic (so that other resources can
support Bindings).
2015-03-09 15:37:19 -04:00
Paul Morie
02b18edac6 Allow multiple sources to be used with record package 2015-03-05 13:54:29 -05:00
Derek Carr
cb1e044a60 Merge pull request #4923 from lavalamp/fix4
Allow reflector to do full resync periodically
2015-03-04 09:58:03 -05:00
Daniel Smith
c4822dc060 Revert "Revert "Adding converter functions to convert field label selectors to internal version before matching""
This reverts commit 5f35a67002.
2015-03-02 15:00:09 -08:00
Abhishek Gupta
3607a16293 Implementing PR feedback 2015-03-02 10:00:19 -08:00
Abhishek Gupta
548e0da567 Configuring scheduler via json configuration file 2015-03-02 10:00:19 -08:00
Zach Loafman
5f35a67002 Revert "Adding converter functions to convert field label selectors to internal version before matching" 2015-02-28 11:42:49 -08:00
Daniel Smith
554b1c847c add occasional polling to reflector 2015-02-27 16:59:14 -08:00
nikhiljindal
48e7945f65 Versioning the field selectors 2015-02-27 16:10:59 -08:00
Mike Danese
5267127af1 api: rename conditionkind -> conditiontype 2015-02-23 22:13:21 -08:00
derekwaynecarr
c0ce15c588 Make list watch take a ListFunc and WatchFunc, provide default funcs from client 2015-02-15 22:26:05 -05:00
derekwaynecarr
151be7773c Rename api.Namespace to api.NamespaceValue to avoid name collision 2015-02-10 09:44:29 -05:00
Clayton Coleman
556e59b512 Merge pull request #3810 from ironcladlou/cache-namespacing
Support namespacing in cache.Store
2015-01-30 13:19:41 -05:00
Deyuan Deng
c793c4f0ab Sync node status from node controller to master. 2015-01-29 23:17:15 -05:00
Dan Mace
5ee943d683 Support namespacing in cache.Store implementations
Support namespacing in cache.Store by framing the interface functions
around interface{} and providing a key function to each Store implementation.

Implementation of a fix for #2294.
2015-01-29 17:39:49 -05:00
davidopp
2675cfa16b Merge pull request #2906 from abhgupta/abhgupta-dev
Enhancements to scheduler priority functions
2015-01-14 21:47:28 -08:00