Commit Graph

171 Commits

Author SHA1 Message Date
k8s-merge-robot
59836d6dbd Merge pull request #24841 from sjenning/shared-informer
Automatic merge from submit-queue

update node controller to use shared pod informer

continuing work from #24470 and #23575
2016-08-02 03:45:01 -07:00
Matt T. Proud
76aab29ede pkg/controller/node/nodecontroller: simplify mutex
Similar to #29598, we can rely on the zero-value construction behavior
to embed `sync.Mutex` into parent structs.
2016-07-26 07:06:16 +02:00
Seth Jennings
db6026c82a node controller use shared pod informer 2016-07-20 15:26:19 -05:00
Seth Jennings
6d77f53af4 refactor maybeDeleteTerminatingPod 2016-07-20 15:26:19 -05:00
gmarek
56006fac43 Retry assigning CIDRs 2016-07-18 17:06:04 +02:00
Prashanth Balasubramanian
2f9516db30 List all nodes and occupy cidr map before starting allocations 2016-07-16 13:54:01 -07:00
gmarek
f6b1c316e9 Allow switching rate limiter inside RateLimitedQueue 2016-07-14 15:38:14 +02:00
gmarek
5677a9845e Split NodeController rate limiters between zones 2016-07-13 14:09:19 +02:00
gmarek
fd600ab65c Add hooks for cluster health detection 2016-07-12 15:10:58 +02:00
gmarek
7524da877e Reduce tightness of coupling in NodeController 2016-07-12 11:00:41 +02:00
gmarek
7f5f9d3a6f Move CIDR allocation logic away from nodecontroller.go 2016-07-12 09:40:43 +02:00
David McMahon
ef0c9f0c5b Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
Oleg Shaldybin
a58b4cf59d Don't panic in NodeController if pod update fails
Previously it was trying to use a nil pod variable if error was returned
from the pod update call.
2016-06-28 11:54:13 -07:00
goltermann
218645b346 Fix several spelling errors in comments. 2016-06-17 10:41:18 -07:00
gmarek
7cac170214 AllocateOrOccupyCIDR returs quickly 2016-05-31 09:11:42 +02:00
k8s-merge-robot
577cdf937d Merge pull request #26415 from wojtek-t/network_not_ready
Automatic merge from submit-queue

Add a NodeCondition "NetworkUnavaiable" to prevent scheduling onto a node until the routes have been created 

This is new version of #26267 (based on top of that one).

The new workflow is:
- we have an "NetworkNotReady" condition
- Kubelet when it creates a node, it sets it to "true"
- RouteController will set it to "false" when the route is created
- Scheduler is scheduling only on nodes that doesn't have "NetworkNotReady ==true" condition

@gmarek @bgrant0607 @zmerlynn @cjcullen @derekwaynecarr @danwinship @dcbw @lavalamp @vishh
2016-05-29 03:06:59 -07:00
Alex Robinson
d577550dd0 Merge pull request #26054 from gmarek/flags
Make service-range flag in controller-manager optional
2016-05-27 14:26:15 -07:00
gmarek
7bdf480340 Node is NotReady until the Route is created 2016-05-27 19:29:51 +02:00
Zach Loafman
cb69960742 nodecontroller: Fix log message on successful update 2016-05-25 14:44:15 -07:00
gmarek
08385b2c5f Make service-range flag in controller-manager optional 2016-05-23 09:37:53 +02:00
gmarek
1d89d2f2d2 Add few log lines to NodeController 2016-05-23 08:49:11 +02:00
mqliang
17d5a302bb make podcidr mask size configurable 2016-05-20 20:44:40 +08:00
mqliang
cf7a3475f3 Don't allow node controller to allocate into service CIDR range 2016-05-20 20:44:40 +08:00
mqliang
69b8453fa0 cidr allocator 2016-05-20 20:44:40 +08:00
gmarek
6d27009db1 NodeController doesn't evict Pods if no Nodes are Ready 2016-05-17 23:03:21 +02:00
mqliang
c10f43a2e5 implement AddIndexers for SharedIndexInformer 2016-05-06 21:23:18 +08:00
mqliang
9011207f18 add namespace index to rc and pod 2016-05-06 17:12:36 +08:00
gmarek
3171aac57c Generated clients can return their RESTClients, RESTClient can return its RateLimiter 2016-04-27 22:15:10 +02:00
k8s-merge-robot
72e51dacfe Merge pull request #24034 from AdoHe/log_spam
Automatic merge from submit-queue

remove log spam from nodecontroller

@thockin @quinton-hoole ptal.
2016-04-21 12:11:05 -07:00
AdoHe
e52f71f78d remove log spam from nodecontroller 2016-04-10 22:51:29 -04:00
k8s-merge-robot
7d7ca5ab72 Merge pull request #23608 from caesarxuchao/mv-typed-clients
Automatic merge from submit-queue

Move typed clients into clientset folder

Move typed clients from `pkg/client/typed/` to `pkg/client/clientset_generated/${clientset_name}/typed`.

The first commit changes the client-gen, the last commit updates the doc, other commits are just moving things around.

@lavalamp @krousey
2016-04-02 19:31:40 -07:00
Chao Xu
49559a3332 Generate the typed clients under the clientset folder 2016-03-31 15:28:45 -07:00
André Cruz
34a273f1eb Fixed typo. 2016-03-29 16:10:11 +01:00
k8s-merge-robot
e44ad7a083 Merge pull request #22735 from resouer/throttle-dev
Auto commit by PR queue bot
2016-03-26 06:44:48 -07:00
goltermann
32d569d6c7 Fixing all the "composite literal uses unkeyed fields" Vet errors. 2016-03-25 15:25:09 -07:00
harry
8472cfa214 Refactor throttle into util pkg
Fix missing throttle.go
2016-03-25 08:32:23 +08:00
Mike Danese
e0431d8409 Revert "Revert "continuously delete pods on nodes that don't exist""
This reverts commit da0a72f2c2.
2016-03-08 11:00:35 -08:00
Marek Grabowski
da0a72f2c2 Revert "continuously delete pods on nodes that don't exist" 2016-03-08 09:38:53 +01:00
Mike Danese
c404e7c6d1 continuously delete pods on nodes that don't exist 2016-03-07 16:01:33 -08:00
k8s-merge-robot
dc46ae031d Merge pull request #22336 from cjcullen/evict
Auto commit by PR queue bot
2016-03-07 08:42:40 -08:00
CJ Cullen
e7fc608df7 Immediately evict pods and delete node when cloud says node is gone. 2016-03-07 06:07:51 -08:00
Chao Xu
828fe5df2f remove V(2) 2016-03-03 14:54:33 -08:00
k8s-merge-robot
ec77d0841d Merge pull request #22376 from caesarxuchao/add-log-nodecontroller
Auto commit by PR queue bot
2016-03-02 13:36:34 -08:00
Chao Xu
f8dd7fe1de log the succussful forceful deletion 2016-03-02 11:18:55 -08:00
CJ Cullen
506df24c1f Revert "Evict pods w/o rate-limit when cloud says node is gone." 2016-03-01 11:04:18 -08:00
k8s-merge-robot
fec00b535f Merge pull request #21187 from cjcullen/evict
Auto commit by PR queue bot
2016-03-01 10:45:22 -08:00
Kris
e664ef922f Move restclient to its own package 2016-02-29 12:05:13 -08:00
CJ Cullen
3a8c7a7074 Evict pods w/o rate-limit when cloud says node is gone. 2016-02-29 10:33:50 -08:00
Mike Danese
a50bc3da10 revert deletePods changes in #22100 2016-02-27 08:40:50 -08:00
Mike Danese
c1a7e280a3 fix pod eviction for gracefully terminationg pods 2016-02-26 17:34:15 -08:00
Fabio Yeon
7d0684e9c4 Merge pull request #21628 from smarterclayton/suppress_debug_logging
Reduce volume of logs generated at v(3)
2016-02-26 15:47:31 -08:00
gmarek
e99ad585ce Decrease verbosity in NodeController 2016-02-23 17:03:38 +01:00
Clayton Coleman
ae2f6a833a Reduce volume of logs generated at v(3)
Node controller is generating a huge amount of logging at v(3) that is
more appropriate for v(5). Split the log into two levels and ensure it
also ends up on one line (so grep works).

The pod manager generates a v(4) pod output on sync that always contains
a newline - since the size of the pod is so excessive in output, kick it
to v(5) for deep debugging (we're pretty happy with this loop).
2016-02-20 15:29:05 -05:00
Andy Goldstein
49fb450a36 Fix type for DaemonSet informer 2016-02-18 14:54:39 -05:00
k8s-merge-robot
5acdb92126 Merge pull request #21177 from laushinka/spelling-fixes
Auto commit by PR queue bot
2016-02-18 10:29:49 -08:00
gmarek
0d7f3bca0a Increase logging verbosity to help debugging #21458 2016-02-18 11:25:38 +01:00
laushinka
7ef585be22 Spelling fixes inspired by github.com/client9/misspell 2016-02-18 06:58:05 +07:00
Chao Xu
97aecd002a remove underscore in imported pkg names 2016-02-16 10:54:51 -08:00
CJ Cullen
52b16129dc Re-GET nodes during CIDR allocation (to avoid cascading bad resource version). 2016-02-12 13:08:54 -08:00
Jan Chaloupka
4389b3f0d6 Rewritte util.* -> wait.* wherever reasonable 2016-02-07 12:02:20 +01:00
Chao Xu
184440f8ef rename release_1_2 to internalclientset 2016-02-05 14:02:28 -08:00
Chao Xu
1b047f8e67 rename legacy to core 2016-02-04 14:26:56 -08:00
Chao Xu
f9f5736b01 grep sed 2016-02-03 13:06:07 -08:00
Chao Xu
fe7887f1ec replace the client with clientset in controllers 2016-02-02 20:28:45 -08:00
harry
1032067ff9 Replace runtime reference by pkg 2016-02-01 21:06:44 +08:00
Matt Liggett
0ba1b49b42 When a node becomes unreachable, do not evict DaemonSet-managed pods.
Part of the graduation requirement for DaemonSet spelled out in #15310.
2016-01-28 11:08:52 -08:00
David Oppenheimer
85f88b8645 Run gofmt. 2016-01-25 23:25:38 -08:00
David Oppenheimer
2a6da5871a Revert #19580 and #17754. Fixes #20048. 2016-01-25 23:19:22 -08:00
Alex Mohr
94b2490eba Merge pull request #19580 from WeixuZhuang/node
resolve the bug when cluster CIDR is not /8
2016-01-21 10:34:19 -08:00
Minhan Xia
01829432db update pod status once node becomes NotReady 2016-01-14 17:41:36 -08:00
Weixu Zhuang
2af68d25b8 resolve the bug when cluster CIDR is not /8
We will have the rigth formula to generate correct maxCIDRs now.
Previous code assume cluster CIDR is /8 which may not be true.
Now it generates maxCIDR based on the info of cluster IP.
2016-01-13 11:55:19 -08:00
Weixu Zhuang
3928bd6e76 Fix TODO in pkg/controller/nodecontroller.go line 472
The code now calculates and find out the CIDRs for every node in any sync period.
I will fix this TODO by maintaining a set for available CIDRs left. Firstly, I will
insert 256 CIDRs into the available set. Once someone get one CIDR, remove this CIDR
from the available set. If one node get deleted, we will reinsert the CIDR associates
with this node back to available CIDR. Once there are nothing left in available CIDR set,
generate another 256 CIDRs and insert them into the available set. As a result, we do not
need to generate CIDRs in every monitor process and we only need to assign CIDR to node
which does not have it.

This commit also fix the error that CIDR may overflow when we use the function
generateCIDRs. There will be no more ip overflowing, all assigan CIDR will be valid
2015-12-28 11:15:38 -08:00
Wojciech Tyczynski
960808bf08 Switch to versioned ListOptions in client. 2015-12-14 14:26:09 +01:00
Wojciech Tyczynski
b0fcb5adef Pass ListOptions to List in ListWatch. 2015-12-07 11:53:53 +01:00
Mike Danese
f784be33ac actually validate semver in node controller rather than prefix checking 2015-12-03 14:49:44 -08:00
Wojciech Tyczynski
6dcb689d4e Simplify List() signature in clients. 2015-12-03 09:54:07 +01:00
k8s-merge-robot
8a8639d7af Merge pull request #17863 from wojtek-t/only_list_options_in_watch
Auto commit by PR queue bot
2015-12-02 06:28:28 -08:00
Wojciech Tyczynski
8343c8ce6c Pass ListOptions to List() methods. 2015-12-01 15:00:36 +01:00
Wojciech Tyczynski
d2dfc912e6 Simplify Watch() signature in clients. 2015-12-01 14:19:26 +01:00
k8s-merge-robot
3bd23b185b Merge pull request #17730 from wojtek-t/use_unversioned_list_options_in_client
Auto commit by PR queue bot
2015-11-25 09:10:19 -08:00
Wojciech Tyczynski
b6ef62af24 Use unversioned.ListOptions in clients. 2015-11-24 16:52:09 +01:00
Avesh Agarwal
3d5207fd73 This commit adds type information to events.
This addresses issue #15624.
2015-11-24 09:59:54 -05:00
combk8s
9bad6b65ec Update nodecontroller.go 2015-11-18 19:58:53 +08:00
combk8s
50ce7ff1f2 Update nodecontroller.go 2015-11-10 20:27:33 +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
Wojciech Tyczynski
d47e21f19f Reuse TCP connections in Reflector between resync periods. 2015-10-26 19:35:25 +01:00
Wojciech Tyczynski
f4d75e0a0a Support timeout in watch requests 2015-10-24 13:12:49 +02:00
Mike Danese
836b68368b make nodecontroller delete terminating pods on 1.0 nodes 2015-10-21 13:07:03 -07:00
eulerzgy
4ed5f9d240 adjust package name for pkg/controller directory 2015-10-12 09:51:27 +08:00
hzliangmingqiang
4b79572f8e eliminate misleading code 2015-10-06 09:13:10 +08:00
gmarek
a3723e2045 Separate deletion and termination evictors in NodeController, and fix rate_limited_queue.go 2015-09-30 09:42:01 +02:00
Brian Grant
f62432212a Merge pull request #14351 from zhengguoyong/del-unused-code
del the unused code
2015-09-25 13:16:06 -07:00
eulerzgy
91044f3bf2 del the unused code 2015-09-22 19:07:06 +08:00
Mike Danese
87cacda8a7 delete a bunch of dead code in pkg/controller 2015-09-21 16:38:43 -07:00
Daniel Martí
586cb9126a Move pkg/util.Time to pkg/api/unversioned.Time
Along with our time.Duration wrapper, as suggested by @lavalamp.
2015-09-17 17:51:27 -07:00
derekwaynecarr
1acc203b36 Node controller produces events with invalid names 2015-09-17 09:59:48 -04:00
k8s-merge-robot
75bce0ed8d Merge pull request #14000 from mikedanese/nc_spam
Auto commit by PR queue bot
2015-09-16 04:45:40 -07:00
Mike Danese
c24ef49c90 only log when we are actually cancelling an eviction in the node controller 2015-09-15 14:45:56 -07:00
k8s-merge-robot
f03a267089 Merge pull request #13895 from jhadvig/typos_fix
Auto commit by PR queue bot
2015-09-15 14:29:06 -07:00
jiangyaoguo
079f1e7015 Fix reason reporting in controller 2015-09-13 11:49:14 +08:00