kubernetesk8s.io/kubernetes/pkg/cloudprovider/nodecontroller Index | Files

package nodecontroller

import "k8s.io/kubernetes/pkg/cloudprovider/nodecontroller"

Package nodecontroller contains code for syncing cloud instances with minion registry

Index

Variables

var (
	ErrRegistration   = errors.New("unable to register all nodes.")
	ErrQueryIPAddress = errors.New("unable to query IP address.")
	ErrCloudInstance  = errors.New("cloud provider doesn't support instances.")
)

Types

type NodeController

type NodeController struct {
	// contains filtered or unexported fields
}

func NewNodeController

func NewNodeController(
	cloud cloudprovider.Interface,
	matchRE string,
	nodes []string,
	staticResources *api.NodeResources,
	kubeClient client.Interface,
	registerRetryCount int,
	podEvictionTimeout time.Duration,
	deletingPodsRateLimiter util.RateLimiter,
	nodeMonitorGracePeriod time.Duration,
	nodeStartupGracePeriod time.Duration,
	nodeMonitorPeriod time.Duration,
	clusterName string) *NodeController

NewNodeController returns a new node controller to sync instances from cloudprovider.

func (*NodeController) Run

func (nc *NodeController) Run(period time.Duration, syncNodeList bool)

Run creates initial node list and start syncing instances from cloudprovider, if any. It also starts syncing or monitoring cluster node status.

  1. registerNodes() is called only once to register all initial nodes (from cloudprovider or from command line flag). To make cluster bootstrap faster, node controller populates node addresses.
  2. syncCloudNodes() is called periodically (if enabled) to sync instances from cloudprovider. Node created here will only have specs.
  3. monitorNodeStatus() is called periodically to incorporate the results of node status pushed from kubelet to master.

Source Files

doc.go nodecontroller.go

Version
v0.16.2
Published
May 4, 2015
Platform
js/wasm
Imports
15 packages
Last checked
16 seconds ago

Tools for package owners.