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

package controller

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

Package controller 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,
	kubeletClient client.KubeletClient,
	registerRetryCount int,
	podEvictionTimeout time.Duration) *NodeController

NewNodeController returns a new node controller to sync instances from cloudprovider. TODO: NodeController health checker should be a separate package other than kubeletclient, node health check != kubelet health check.

func (*NodeController) DoCheck

func (s *NodeController) DoCheck(node *api.Node) []api.NodeCondition

DoCheck performs various condition checks for given node.

func (*NodeController) EvictTimeoutedPods

func (s *NodeController) EvictTimeoutedPods() error

EvictTimeoutedPods verifies if nodes are reachable by checking the time of last probe and deletes pods from not reachable nodes.

func (*NodeController) GetCloudNodesWithSpec

func (s *NodeController) GetCloudNodesWithSpec() (*api.NodeList, error)

GetCloudNodesWithSpec constructs and returns api.NodeList from cloudprovider. If error occurs, an empty NodeList will be returned with a non-nil error info. The method only constructs spec fields for nodes.

func (*NodeController) GetStaticNodesWithSpec

func (s *NodeController) GetStaticNodesWithSpec() (*api.NodeList, error)

GetStaticNodesWithSpec constructs and returns api.NodeList for static nodes. If error occurs, an empty NodeList will be returned with a non-nil error info. The method only constructs spec fields for nodes.

func (*NodeController) PopulateAddresses

func (s *NodeController) PopulateAddresses(nodes *api.NodeList) (*api.NodeList, error)

PopulateAddresses queries Address for given list of nodes.

func (*NodeController) RegisterNodes

func (s *NodeController) RegisterNodes(nodes *api.NodeList, retryCount int, retryInterval time.Duration) error

RegisterNodes registers the given list of nodes, it keeps retrying for `retryCount` times.

func (*NodeController) Run

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

Run creates initial node list and start syncing instances from cloudprovider if any. It also starts syncing 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. SyncCloud() is called periodically (if enabled) to sync instances from cloudprovider. Node created here will only have specs.
  3. SyncNodeStatus() is called periodically (if enabled) to sync node status for nodes in k8s cluster.

func (*NodeController) SyncCloud

func (s *NodeController) SyncCloud() error

SyncCloud synchronizes the list of instances from cloudprovider to master server.

func (*NodeController) SyncNodeStatus

func (s *NodeController) SyncNodeStatus() error

SyncNodeStatus synchronizes cluster nodes status to master server.

func (*NodeController) UpdateNodesStatus

func (s *NodeController) UpdateNodesStatus(nodes *api.NodeList) *api.NodeList

UpdateNodesStatus performs various condition checks for given list of nodes.

Source Files

doc.go nodecontroller.go

Version
v0.13.1
Published
Mar 17, 2015
Platform
js/wasm
Imports
14 packages
Last checked
33 seconds ago

Tools for package owners.