Commit Graph

94 Commits (cf15b1731927dcf569c1764a17425b8d337c79a1)

Author SHA1 Message Date
Chao Xu 60604f8818 run hack/update-all 2017-06-22 11:31:03 -07:00
Chao Xu f4989a45a5 run root-rewrite-v1-..., compile 2017-06-22 10:25:57 -07:00
Ravi Gadde 7f179bf936 Added Bind method to Scheduler Extender
- only one extender can support the bind method
- if an extender supports bind, scheduler delegates the pod binding to the extender
2017-06-05 09:44:53 -07:00
Clayton Coleman 8cd95c78c4
Scheduler should use a shared informer
Can be used either from a true shared informer or a local shared
informer created just for the scheduler.
2017-05-22 13:50:14 -04:00
Kubernetes Submit Queue 027c31e7dc Merge pull request #46048 from jayunit100/metrics-definitions
Automatic merge from submit-queue

Disambiguate schedule, assume, and bind in functions as well as in

Addresses my comments in #45972  about how these metrics need to be disambiguated.

- separates schedule, assume, and bind.
- renames variables like `dest` to be explicit.
- removes the logging statement to occur outside of the timed portion of the metric measurement.

Generally makes `sheduleOne` a happy function to read :)
2017-05-22 10:39:00 -07:00
Wojciech Tyczynski 8de8446840 Revert "Scheduler should use shared informer for pods"
This reverts commit 479f01d340.
2017-05-22 09:03:35 +02:00
Clayton Coleman 479f01d340
Scheduler should use shared informer for pods
Previously, the scheduler created two separate list watchers. This
changes the scheduler to be able to leverage a shared informer, whether
passed in externally or spawned using the new in place method. This
removes the last use of a "special" informer in the codebase.

Allows someone wrapping the scheduler to use a shared informer if they
have more information avaliable.
2017-05-20 14:19:49 -04:00
jayunit100 ecb962e658 Separate aschedule, bind, and assume operations to make the metrics (and other things) easier to reason about. 2017-05-19 08:28:57 -04:00
Klaus Ma c78faec4ff Initialize scheduler cache with assigned non-terminated pods before scheduling. 2017-05-10 01:50:38 +08:00
Klaus Ma 63d194b626 Removed old scheduler constructor. 2017-05-08 11:09:25 -04:00
Kubernetes Submit Queue 9a9f622b3d Merge pull request #44256 from NickrenREN/scheduler-event
Automatic merge from submit-queue

Scheduler event: nit: when bind fails, send warning event

**Release note**:
```release-note
NONE
```
2017-04-10 11:09:57 -07:00
NickrenREN 609ddac855 Nit: when bind fails, send warning event 2017-04-10 10:50:13 +08:00
Bobby Salamat f9d1333144 Addressed reviewers comments 2017-04-07 17:31:45 -07:00
ddongchen e1c23e9628 fix scheduling metrics error for E2eSchedulingLatency
If we get the scheduling metrics, which is "SchedulingAlgorithmLatency, E2eSchedulingLatency, BindingLatency". The E2eSchedulingLatency should be the sum of SchedulingAlgorithmLatency and BindingLatency, while we found E2eSchedulingLatency is almost the same as E2eSchedulingLatency for some optimization.
2017-04-05 02:49:05 -04:00
Harry Zhang 2c4514c325 Enable equivalence cache in generic scheduler 2017-03-28 13:25:47 +02:00
Christoph Blecker 6a6ee160e8
golint fixes to plugin/pkg/scheduler/scheduler.go 2017-03-19 09:44:15 -07:00
Andy Goldstein 9d8d6ad16c Switch scheduler to use generated listers/informers
Where possible, switch the scheduler to use generated listers and
informers. There are still some places where it probably makes more
sense to use one-off reflectors/informers (listing/watching just a
single node, listing/watching scheduled & unscheduled pods using a field
selector).
2017-02-23 09:57:12 -05:00
Wojciech Tyczynski 3de7195cf8 Remove default failure domains from anti-affinity feature 2017-02-16 13:32:34 +01:00
jayunit100 e42642693c 'core' package to prevent dependency creep and isolate core functionality from daemon.
Add core build file
2017-02-01 13:07:37 -05:00
deads2k 8a12000402 move client/record 2017-01-31 19:14:13 -05:00
Kubernetes Submit Queue bb323d8dea Merge pull request #40188 from jayunit100/NewSchedulerFromInterface
Automatic merge from submit-queue (batch tested with PRs 39538, 40188, 40357, 38214, 40195)

Decoupling scheduler creation from creation of scheduler.Config struc…

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

Adds functionality to the scheduler to initialize from an Configurator interface, rather then via a Config struct.

**Which issue this PR fixes** 

Reduces coupling to `scheduler.Config` data structure format so that we can proliferate more interface driven composition of scheduler components.
2017-01-25 17:47:12 -08:00
Kubernetes Submit Queue 5c5ce3baee Merge pull request #40362 from deads2k/client-14-move-pkgs
Automatic merge from submit-queue

move client/cache and client/discovery to client-go

mechanical changes to move those packages.  Had to create a `k8s.io/kubernetes/pkg/client/tests` package for tests that were blacklisted from client-go.  We can rewrite these tests later and move them, but for now they'll still run at least.

@caesarxuchao @sttts
2017-01-25 08:17:15 -08:00
jayunit100 8439f81f2d NewSchedulerFromInterface implementation 2017-01-25 10:21:27 -05:00
deads2k b0b156b381 make tools/cache authoritative 2017-01-25 08:29:45 -05:00
forrestchen e2a465ae68 skip schedule deleting pod
Signed-off-by: forrestchen <forrestchen@tencent.com>

skip schedule deleting pod

Signed-off-by: forrestchen <forrestchen@tencent.com>
2017-01-24 10:13:54 +08:00
jayunit100 a98d14d2c5 [scheduler] interface for configuration factory, configurator. 2017-01-18 15:06:16 -05:00
Clayton Coleman 9a2a50cda7
refactor: use metav1.ObjectMeta in other types 2017-01-17 16:17:19 -05:00
deads2k 6a4d5cd7cc start the apimachinery repo 2017-01-11 09:09:48 -05:00
jayunit100 9cdc4ae0ad Update FitError as a message component into the PodConditionUpdater. 2017-01-09 10:24:14 -05:00
Dmitry Shulyak 530ee716e3 Count ttl for assumed pod when binding is finished
In such cases when api server is overloaded and returns a lot of
429 (too many requests) errors - binding may take a lot of time
to succeed due to retry policy implemented in rest client.
In such events cache ttl for assumed pods wasn't big enough.

In order to minimize probability of such errors ttl for assumed pods
will be counted from the time when binding for particular pod is finished
(either with error or success)

Change-Id: Ib0122f8a76dc57c82f2c7c52497aad1bdd8be411
2017-01-03 12:45:11 +02:00
Chao Xu f782aba56e plugin/scheduler 2016-11-23 15:53:09 -08:00
Wojciech Tyczynski e4d215d508 Reduce impact of scheduler bug 2016-11-22 17:19:45 +01:00
Marcin Wielgus 859077b701 Make "Unschedulable" reason a constant in api 2016-10-12 17:43:24 +02:00
Lucas Käldström 0bba65ca1a Remove old references to contrib/mesos 2016-10-01 16:46:48 +03:00
Kubernetes Submit Queue d12b3429fe Merge pull request #30676 from m1093782566/improve-pod-log-output-format
Automatic merge from submit-queue

[Scheduler] Improve pod log output debuggability

Address issue is #30675

The result of my expirments shows that both `glog.Infof("%v", pod)` and `glog.Infof("%+v", pod)` can't output useful information of a pod, it can only output `kind:"" apiVersion:""`. 

`%#v` can output the whole content of pod, but it seems too much!

So, my opinion is output pod info use the format of `%v` to print`pod.Namespace/pod.Name` instead of the pod **object** in both [here](https://github.com/kubernetes/kubernetes/blob/master/plugin/pkg/scheduler/scheduler.go#L96) and [here](https://github.com/kubernetes/kubernetes/blob/master/plugin/pkg/scheduler/scheduler.go#L100).

@wojtek-t
2016-08-25 04:05:24 -07:00
m1093782566 40f5d64411 update comment info when scheduler bind fails
Change-Id: Idce89003fe408b713431d07a3300e3acd1af87a9
2016-08-16 20:23:26 +08:00
m1093782566 458f5bd7f2 improve pod log output format
Change-Id: I415dd97f14b507ebb8340eb853f935e1e90b7a53
2016-08-16 17:59:58 +08:00
Wojciech Tyczynski 9745878778 Add ForgetPod to SchedulerCache 2016-07-13 16:30:05 +02:00
David McMahon ef0c9f0c5b Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
goltermann 218645b346 Fix several spelling errors in comments. 2016-06-17 10:41:18 -07:00
Hongchao Deng 54acae1281 scheduler cache: print err if AssumePod fail 2016-05-28 18:47:12 -07:00
Davanum Srinivas 57f6321788 Fix useless error message in scheduler log
Print the Namespace and Name instead of Kind/ApiVersion.

fixes #25950
2016-05-21 16:02:36 -04:00
Filip Grzadkowski 9cba3fc5ae Stop setting Message when updating PodScheduled condition 2016-05-17 15:27:43 +02: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
Hongchao Deng 1eb331e009 schedulercache: remove bind() from AssumePod 2016-04-16 20:30:28 +08:00
Wojciech Tyczynski 254b05761f Asynchronous bindings 2016-04-14 09:52:25 +02:00
Hongchao Deng ae88f08af0 Scheduler: replace system modeler with scheduler cache 2016-03-14 09:03:41 -07: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
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