Documentation ¶
Index ¶
- Constants
- Variables
- type BasicNodeEstimator
- func (basicEstimator *BasicNodeEstimator) Add(pod *apiv1.Pod) error
- func (basicEstimator *BasicNodeEstimator) Estimate(node *apiv1.Node, comingNodes []*schedulercache.NodeInfo) (int, string)
- func (basicEstimator *BasicNodeEstimator) GetCount() int
- func (basicEstimator *BasicNodeEstimator) GetDebug() string
- type BinpackingNodeEstimator
Constants ¶
const ( //BasicEstimatorName is the name of basic estimator. BasicEstimatorName = "basic" // BinpackingEstimatorName is the name of binpacking estimator. BinpackingEstimatorName = "binpacking" )
Variables ¶
var AvailableEstimators = []string{BasicEstimatorName, BinpackingEstimatorName}
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 likekly 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.