diff --git a/cmd/kube-controller-manager/controller-manager.go b/cmd/kube-controller-manager/controller-manager.go index 97299a0189c..fd7d52599fb 100644 --- a/cmd/kube-controller-manager/controller-manager.go +++ b/cmd/kube-controller-manager/controller-manager.go @@ -49,7 +49,10 @@ var ( cloudProvider = flag.String("cloud_provider", "", "The provider for cloud services. Empty string for no provider.") cloudConfigFile = flag.String("cloud_config", "", "The path to the cloud provider configuration file. Empty string for no configuration file.") minionRegexp = flag.String("minion_regexp", "", "If non empty, and -cloud_provider is specified, a regular expression for matching minion VMs.") - machineList util.StringList + nodeSyncPeriod = flag.Duration("node_sync_period", 10*time.Second, ""+ + "The period for syncing nodes from cloudprovider. Longer periods will result in "+ + "fewer calls to cloud provider, but may delay addition of new nodes to cluster.") + machineList util.StringList // TODO: Discover these by pinging the host machines, and rip out these flags. // TODO: in the meantime, use resource.QuantityFlag() instead of these nodeMilliCPU = flag.Int64("node_milli_cpu", 1000, "The amount of MilliCPU provisioned on each node") @@ -107,7 +110,7 @@ func main() { }, } nodeController := nodeControllerPkg.NewNodeController(cloud, *minionRegexp, machineList, nodeResources, kubeClient) - nodeController.Run(10 * time.Second) + nodeController.Run(*nodeSyncPeriod) select {} } diff --git a/docs/man/kube-controller-manager.1.md b/docs/man/kube-controller-manager.1.md index 1e68503ac70..52a2d9ec564 100644 --- a/docs/man/kube-controller-manager.1.md +++ b/docs/man/kube-controller-manager.1.md @@ -54,11 +54,14 @@ The kube-controller-manager has several options. log to standard error instead of files. **--machines**=[] - List of machines to schedule onto, comma separated. + List of machines to schedule onto, comma separated. **--master**="" The address of the Kubernetes API server. +**--node_sync_peroid**=10s + The period for syncing nodes from cloudprovider. + **--port**=10252 The port that the controller-manager's http service runs on. diff --git a/docs/node.md b/docs/node.md index 8ee566c02fd..c3b6ba068d1 100644 --- a/docs/node.md +++ b/docs/node.md @@ -58,7 +58,8 @@ objects. It performs two major functions: cluster-wide node synchronization and single node life-cycle management. Node controller has a sync loop that creates/deletes `Node`s from Kubernetes -based on all matching VM instances listed from cloud provider. If a new instance +based on all matching VM instances listed from cloud provider. The sync period +can be controlled via flag "--node_sync_period". If a new instance gets created, Node Controller creates a representation for it. If an existing instance gets deleted, Node Controller deletes the representation. Note however, Node Controller is unable to provision the node for you, i.e. it won't install