package node

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

Package node contains code for syncing cloud instances with node registry

Index

Variables

var (
	// UnreachableTaintTemplate is the taint for when a node becomes unreachable.
	UnreachableTaintTemplate = &v1.Taint{
		Key:    algorithm.TaintNodeUnreachable,
		Effect: v1.TaintEffectNoExecute,
	}
	// NotReadyTaintTemplate is the taint for when a node is not ready for
	// executing pods
	NotReadyTaintTemplate = &v1.Taint{
		Key:    algorithm.TaintNodeNotReady,
		Effect: v1.TaintEffectNoExecute,
	}
)

Functions

func Register

func Register()

Register the metrics that are to be monitored.

Types

type Controller

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

Controller is the controller that manages node related cluster state.

func NewNodeController

func NewNodeController(
	podInformer coreinformers.PodInformer,
	nodeInformer coreinformers.NodeInformer,
	daemonSetInformer extensionsinformers.DaemonSetInformer,
	cloud cloudprovider.Interface,
	kubeClient clientset.Interface,
	podEvictionTimeout time.Duration,
	evictionLimiterQPS float32,
	secondaryEvictionLimiterQPS float32,
	largeClusterThreshold int32,
	unhealthyZoneThreshold float32,
	nodeMonitorGracePeriod time.Duration,
	nodeStartupGracePeriod time.Duration,
	nodeMonitorPeriod time.Duration,
	clusterCIDR *net.IPNet,
	serviceCIDR *net.IPNet,
	nodeCIDRMaskSize int,
	allocateNodeCIDRs bool,
	allocatorType ipam.CIDRAllocatorType,
	runTaintManager bool,
	useTaintBasedEvictions bool,
	taintNodeByCondition bool) (*Controller, error)

NewNodeController returns a new node controller to sync instances from cloudprovider. This method returns an error if it is unable to initialize the CIDR bitmap with podCIDRs it has already allocated to nodes. Since we don't allow podCIDR changes currently, this should be handled as a fatal error.

func (*Controller) ComputeZoneState

func (nc *Controller) ComputeZoneState(nodeReadyConditions []*v1.NodeCondition) (int, ZoneState)

ComputeZoneState returns a slice of NodeReadyConditions for all Nodes in a given zone. The zone is considered: - fullyDisrupted if there're no Ready Nodes, - partiallyDisrupted if at least than nc.unhealthyZoneThreshold percent of Nodes are not Ready, - normal otherwise

func (*Controller) HealthyQPSFunc

func (nc *Controller) HealthyQPSFunc(nodeNum int) float32

HealthyQPSFunc returns the default value for cluster eviction rate - we take nodeNum for consistency with ReducedQPSFunc.

func (*Controller) ReducedQPSFunc

func (nc *Controller) ReducedQPSFunc(nodeNum int) float32

ReducedQPSFunc returns the QPS for when a the cluster is large make evictions slower, if they're small stop evictions altogether.

func (*Controller) Run

func (nc *Controller) Run(stopCh <-chan struct{})

Run starts an asynchronous loop that monitors the status of cluster nodes.

type ZoneState

type ZoneState string

ZoneState is the state of a given zone.

Source Files

doc.go metrics.go node_controller.go

Directories

PathSynopsis
pkg/controller/node/ipamPackage ipam provides different allocators for assigning IP ranges to nodes.
pkg/controller/node/ipam/cidrset
pkg/controller/node/ipam/sync
pkg/controller/node/ipam/test
pkg/controller/node/scheduler
pkg/controller/node/util
Version
v1.9.4
Published
Mar 12, 2018
Platform
js/wasm
Imports
36 packages
Last checked
11 seconds ago

Tools for package owners.