Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
575c6d7a
Commit
575c6d7a
authored
Apr 13, 2017
by
deads2k
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
increase the QPS for namespace controller
parent
fcd9b7f7
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
10 additions
and
14 deletions
+10
-14
core.go
cmd/kube-controller-manager/app/core.go
+10
-2
namespace_controller.go
pkg/controller/namespace/namespace_controller.go
+0
-12
No files found.
cmd/kube-controller-manager/app/core.go
View file @
575c6d7a
...
@@ -31,6 +31,7 @@ import (
...
@@ -31,6 +31,7 @@ import (
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/apis/extensions"
"k8s.io/kubernetes/pkg/apis/extensions"
"k8s.io/kubernetes/pkg/client/clientset_generated/clientset"
"k8s.io/kubernetes/pkg/controller"
"k8s.io/kubernetes/pkg/controller"
endpointcontroller
"k8s.io/kubernetes/pkg/controller/endpoint"
endpointcontroller
"k8s.io/kubernetes/pkg/controller/endpoint"
"k8s.io/kubernetes/pkg/controller/garbagecollector"
"k8s.io/kubernetes/pkg/controller/garbagecollector"
...
@@ -102,9 +103,16 @@ func startNamespaceController(ctx ControllerContext) (bool, error) {
...
@@ -102,9 +103,16 @@ func startNamespaceController(ctx ControllerContext) (bool, error) {
// TODO: should use a dynamic RESTMapper built from the discovery results.
// TODO: should use a dynamic RESTMapper built from the discovery results.
restMapper
:=
api
.
Registry
.
RESTMapper
()
restMapper
:=
api
.
Registry
.
RESTMapper
()
// the namespace cleanup controller is very chatty. It makes lots of discovery calls and then it makes lots of delete calls
// the ratelimiter negatively affects its speed. Deleting 100 total items in a namespace (that's only a few of each resource
// including events), takes ~10 seconds by default.
nsKubeconfig
:=
ctx
.
ClientBuilder
.
ConfigOrDie
(
"namespace-controller"
)
nsKubeconfig
.
QPS
*=
10
nsKubeconfig
.
Burst
*=
10
namespaceKubeClient
:=
clientset
.
NewForConfigOrDie
(
nsKubeconfig
)
namespaceClientPool
:=
dynamic
.
NewClientPool
(
nsKubeconfig
,
restMapper
,
dynamic
.
LegacyAPIPathResolverFunc
)
// Find the list of namespaced resources via discovery that the namespace controller must manage
// Find the list of namespaced resources via discovery that the namespace controller must manage
namespaceKubeClient
:=
ctx
.
ClientBuilder
.
ClientOrDie
(
"namespace-controller"
)
namespaceClientPool
:=
dynamic
.
NewClientPool
(
ctx
.
ClientBuilder
.
ConfigOrDie
(
"namespace-controller"
),
restMapper
,
dynamic
.
LegacyAPIPathResolverFunc
)
// TODO: consider using a list-watch + cache here rather than polling
// TODO: consider using a list-watch + cache here rather than polling
resources
,
err
:=
namespaceKubeClient
.
Discovery
()
.
ServerResources
()
resources
,
err
:=
namespaceKubeClient
.
Discovery
()
.
ServerResources
()
if
err
!=
nil
{
if
err
!=
nil
{
...
...
pkg/controller/namespace/namespace_controller.go
View file @
575c6d7a
...
@@ -50,20 +50,12 @@ const (
...
@@ -50,20 +50,12 @@ const (
// NamespaceController is responsible for performing actions dependent upon a namespace phase
// NamespaceController is responsible for performing actions dependent upon a namespace phase
type
NamespaceController
struct
{
type
NamespaceController
struct
{
// client that purges namespace content, must have list/delete privileges on all content
kubeClient
clientset
.
Interface
// clientPool manages a pool of dynamic clients
clientPool
dynamic
.
ClientPool
// lister that can list namespaces from a shared cache
// lister that can list namespaces from a shared cache
lister
corelisters
.
NamespaceLister
lister
corelisters
.
NamespaceLister
// returns true when the namespace cache is ready
// returns true when the namespace cache is ready
listerSynced
cache
.
InformerSynced
listerSynced
cache
.
InformerSynced
// namespaces that have been queued up for processing by workers
// namespaces that have been queued up for processing by workers
queue
workqueue
.
RateLimitingInterface
queue
workqueue
.
RateLimitingInterface
// function to list of preferred resources for namespace deletion
discoverResourcesFn
func
()
([]
*
metav1
.
APIResourceList
,
error
)
// finalizerToken is the finalizer token managed by this controller
finalizerToken
v1
.
FinalizerName
// helper to delete all resources in the namespace when the namespace is deleted.
// helper to delete all resources in the namespace when the namespace is deleted.
namespacedResourcesDeleter
deletion
.
NamespacedResourcesDeleterInterface
namespacedResourcesDeleter
deletion
.
NamespacedResourcesDeleterInterface
}
}
...
@@ -79,11 +71,7 @@ func NewNamespaceController(
...
@@ -79,11 +71,7 @@ func NewNamespaceController(
// create the controller so we can inject the enqueue function
// create the controller so we can inject the enqueue function
namespaceController
:=
&
NamespaceController
{
namespaceController
:=
&
NamespaceController
{
kubeClient
:
kubeClient
,
clientPool
:
clientPool
,
queue
:
workqueue
.
NewNamedRateLimitingQueue
(
workqueue
.
DefaultControllerRateLimiter
(),
"namespace"
),
queue
:
workqueue
.
NewNamedRateLimitingQueue
(
workqueue
.
DefaultControllerRateLimiter
(),
"namespace"
),
discoverResourcesFn
:
discoverResourcesFn
,
finalizerToken
:
finalizerToken
,
namespacedResourcesDeleter
:
deletion
.
NewNamespacedResourcesDeleter
(
kubeClient
.
Core
()
.
Namespaces
(),
clientPool
,
kubeClient
.
Core
(),
discoverResourcesFn
,
finalizerToken
,
true
),
namespacedResourcesDeleter
:
deletion
.
NewNamespacedResourcesDeleter
(
kubeClient
.
Core
()
.
Namespaces
(),
clientPool
,
kubeClient
.
Core
(),
discoverResourcesFn
,
finalizerToken
,
true
),
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment