estimator

package
v3.11.0-alpha.0+incomp... Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 15, 2018 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	//BasicEstimatorName is the name of basic estimator.
	BasicEstimatorName = "basic"
	// BinpackingEstimatorName is the name of binpacking estimator.
	BinpackingEstimatorName = "binpacking"
)

Variables

AvailableEstimators is a list of available estimators.

Functions

This section is empty.

Types

type BasicNodeEstimator

type BasicNodeEstimator struct {
	FittingPods map[*apiv1.Pod]struct{}
	// contains filtered or unexported fields
}

BasicNodeEstimator estimates the number of needed nodes to handle the given amount of pods. It will never overestimate the number of nodes but is quite likely to provide a number that is too small.

func NewBasicNodeEstimator

func NewBasicNodeEstimator() *BasicNodeEstimator

NewBasicNodeEstimator builds BasicNodeEstimator.

func (*BasicNodeEstimator) Add

func (basicEstimator *BasicNodeEstimator) Add(pod *apiv1.Pod) error

Add adds Pod to the estimation.

func (*BasicNodeEstimator) Estimate

func (basicEstimator *BasicNodeEstimator) Estimate(node *apiv1.Node, comingNodes []*schedulercache.NodeInfo) (int, string)

Estimate estimates the number needed of nodes of the given shape.

func (*BasicNodeEstimator) GetCount

func (basicEstimator *BasicNodeEstimator) GetCount() int

GetCount returns number of pods included in the estimation.

func (*BasicNodeEstimator) GetDebug

func (basicEstimator *BasicNodeEstimator) GetDebug() string

GetDebug returns debug information about the current state of BasicNodeEstimator

type BinpackingNodeEstimator

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

BinpackingNodeEstimator estimates the number of needed nodes to handle the given amount of pods.

func NewBinpackingNodeEstimator

func NewBinpackingNodeEstimator(predicateChecker *simulator.PredicateChecker) *BinpackingNodeEstimator

NewBinpackingNodeEstimator builds a new BinpackingNodeEstimator.

func (*BinpackingNodeEstimator) Estimate

func (estimator *BinpackingNodeEstimator) Estimate(pods []*apiv1.Pod, nodeTemplate *schedulercache.NodeInfo,
	comingNodes []*schedulercache.NodeInfo) int

Estimate implements First Fit Decreasing bin-packing approximation algorithm. See https://en.wikipedia.org/wiki/Bin_packing_problem for more details. While it is a multi-dimensional bin packing (cpu, mem, ports) in most cases the main dimension will be cpu thus the estimated overprovisioning of 11/9 * optimal + 6/9 should be still be maintained. It is assumed that all pods from the given list can fit to nodeTemplate. Returns the number of nodes needed to accommodate all pods from the list.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL