Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // UnreachableTaintTemplate is the taint for when a node becomes unreachable. UnreachableTaintTemplate = &v1.Taint{ Key: v1.TaintNodeUnreachable, Effect: v1.TaintEffectNoExecute, } // NotReadyTaintTemplate is the taint for when a node is not ready for // executing pods NotReadyTaintTemplate = &v1.Taint{ Key: v1.TaintNodeNotReady, Effect: v1.TaintEffectNoExecute, } )
Functions ¶
Types ¶
type Controller ¶
type Controller struct {
// contains filtered or unexported fields
}
Controller is the controller that manages node's life cycle.
func NewNodeLifecycleController ¶
func NewNodeLifecycleController( ctx context.Context, leaseInformer coordinformers.LeaseInformer, podInformer coreinformers.PodInformer, nodeInformer coreinformers.NodeInformer, daemonSetInformer appsv1informers.DaemonSetInformer, kubeClient clientset.Interface, nodeMonitorPeriod time.Duration, nodeStartupGracePeriod time.Duration, nodeMonitorGracePeriod time.Duration, evictionLimiterQPS float32, secondaryEvictionLimiterQPS float32, largeClusterThreshold int32, unhealthyZoneThreshold float32, ) (*Controller, error)
NewNodeLifecycleController returns a new taint controller.
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 the cluster is large make evictions slower, if they're small stop evictions altogether.
func (*Controller) Run ¶
func (nc *Controller) Run(ctx context.Context)
Run starts an asynchronous loop that monitors the status of cluster nodes.