kubernetesk8s.io/kubernetes/pkg/scheduler/framework/plugins/noderesources Index | Files

package noderesources

import "k8s.io/kubernetes/pkg/scheduler/framework/plugins/noderesources"

Index

Constants

const BalancedAllocationName = "NodeResourcesBalancedAllocation"

BalancedAllocationName is the name of the plugin used in the plugin registry and configurations.

const (
	// FitName is the name of the plugin used in the plugin registry and configurations.
	FitName = "NodeResourcesFit"
)
const LeastAllocatedName = "NodeResourcesLeastAllocated"

LeastAllocatedName is the name of the plugin used in the plugin registry and configurations.

const MostAllocatedName = "NodeResourcesMostAllocated"

MostAllocatedName is the name of the plugin used in the plugin registry and configurations.

const (
	// RequestedToCapacityRatioName is the name of this plugin.
	RequestedToCapacityRatioName = "RequestedToCapacityRatio"
)
const (
	// ResourceLimitsName is the name of the plugin used in the plugin registry and configurations.
	ResourceLimitsName = "NodeResourceLimits"
)

Functions

func NewBalancedAllocation

func NewBalancedAllocation(_ runtime.Object, h framework.FrameworkHandle) (framework.Plugin, error)

NewBalancedAllocation initializes a new plugin and returns it.

func NewFit

NewFit initializes a new plugin and returns it.

func NewLeastAllocated

func NewLeastAllocated(laArgs runtime.Object, h framework.FrameworkHandle) (framework.Plugin, error)

NewLeastAllocated initializes a new plugin and returns it.

func NewMostAllocated

func NewMostAllocated(maArgs runtime.Object, h framework.FrameworkHandle) (framework.Plugin, error)

NewMostAllocated initializes a new plugin and returns it.

func NewRequestedToCapacityRatio

func NewRequestedToCapacityRatio(plArgs runtime.Object, handle framework.FrameworkHandle) (framework.Plugin, error)

NewRequestedToCapacityRatio initializes a new plugin and returns it.

func NewResourceLimits

func NewResourceLimits(_ runtime.Object, h framework.FrameworkHandle) (framework.Plugin, error)

NewResourceLimits initializes a new plugin and returns it.

Types

type BalancedAllocation

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

BalancedAllocation is a score plugin that calculates the difference between the cpu and memory fraction of capacity, and prioritizes the host based on how close the two metrics are to each other.

func (*BalancedAllocation) Name

func (ba *BalancedAllocation) Name() string

Name returns name of the plugin. It is used in logs, etc.

func (*BalancedAllocation) Score

func (ba *BalancedAllocation) Score(ctx context.Context, state *framework.CycleState, pod *v1.Pod, nodeName string) (int64, *framework.Status)

Score invoked at the score extension point.

func (*BalancedAllocation) ScoreExtensions

func (ba *BalancedAllocation) ScoreExtensions() framework.ScoreExtensions

ScoreExtensions of the Score plugin.

type Fit

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

Fit is a plugin that checks if a node has sufficient resources.

func (*Fit) Filter

func (f *Fit) Filter(ctx context.Context, cycleState *framework.CycleState, pod *v1.Pod, nodeInfo *framework.NodeInfo) *framework.Status

Filter invoked at the filter extension point. Checks if a node has sufficient resources, such as cpu, memory, gpu, opaque int resources etc to run a pod. It returns a list of insufficient resources, if empty, then the node has all the resources requested by the pod.

func (*Fit) Name

func (f *Fit) Name() string

Name returns name of the plugin. It is used in logs, etc.

func (*Fit) PreFilter

func (f *Fit) PreFilter(ctx context.Context, cycleState *framework.CycleState, pod *v1.Pod) *framework.Status

PreFilter invoked at the prefilter extension point.

func (*Fit) PreFilterExtensions

func (f *Fit) PreFilterExtensions() framework.PreFilterExtensions

PreFilterExtensions returns prefilter extensions, pod add and remove.

type InsufficientResource

type InsufficientResource struct {
	ResourceName v1.ResourceName
	// We explicitly have a parameter for reason to avoid formatting a message on the fly
	// for common resources, which is expensive for cluster autoscaler simulations.
	Reason    string
	Requested int64
	Used      int64
	Capacity  int64
}

InsufficientResource describes what kind of resource limit is hit and caused the pod to not fit the node.

func Fits

func Fits(pod *v1.Pod, nodeInfo *framework.NodeInfo, ignoredExtendedResources sets.String) []InsufficientResource

Fits checks if node have enough resources to host the pod.

type LeastAllocated

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

LeastAllocated is a score plugin that favors nodes with fewer allocation requested resources based on requested resources.

func (*LeastAllocated) Name

func (la *LeastAllocated) Name() string

Name returns name of the plugin. It is used in logs, etc.

func (*LeastAllocated) Score

func (la *LeastAllocated) Score(ctx context.Context, state *framework.CycleState, pod *v1.Pod, nodeName string) (int64, *framework.Status)

Score invoked at the score extension point.

func (*LeastAllocated) ScoreExtensions

func (la *LeastAllocated) ScoreExtensions() framework.ScoreExtensions

ScoreExtensions of the Score plugin.

type MostAllocated

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

MostAllocated is a score plugin that favors nodes with high allocation based on requested resources.

func (*MostAllocated) Name

func (ma *MostAllocated) Name() string

Name returns name of the plugin. It is used in logs, etc.

func (*MostAllocated) Score

func (ma *MostAllocated) Score(ctx context.Context, state *framework.CycleState, pod *v1.Pod, nodeName string) (int64, *framework.Status)

Score invoked at the Score extension point.

func (*MostAllocated) ScoreExtensions

func (ma *MostAllocated) ScoreExtensions() framework.ScoreExtensions

ScoreExtensions of the Score plugin.

type RequestedToCapacityRatio

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

RequestedToCapacityRatio is a score plugin that allow users to apply bin packing on core resources like CPU, Memory as well as extended resources like accelerators.

func (*RequestedToCapacityRatio) Name

func (pl *RequestedToCapacityRatio) Name() string

Name returns name of the plugin. It is used in logs, etc.

func (*RequestedToCapacityRatio) Score

Score invoked at the score extension point.

func (*RequestedToCapacityRatio) ScoreExtensions

func (pl *RequestedToCapacityRatio) ScoreExtensions() framework.ScoreExtensions

ScoreExtensions of the Score plugin.

type ResourceLimits

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

ResourceLimits is a score plugin that increases score of input node by 1 if the node satisfies input pod's resource limits

func (*ResourceLimits) Name

func (rl *ResourceLimits) Name() string

Name returns name of the plugin. It is used in logs, etc.

func (*ResourceLimits) PreScore

func (rl *ResourceLimits) PreScore(
	pCtx context.Context,
	cycleState *framework.CycleState,
	pod *v1.Pod,
	nodes []*v1.Node,
) *framework.Status

PreScore builds and writes cycle state used by Score and NormalizeScore.

func (*ResourceLimits) Score

func (rl *ResourceLimits) Score(ctx context.Context, state *framework.CycleState, pod *v1.Pod, nodeName string) (int64, *framework.Status)

Score invoked at the Score extension point. The "score" returned in this function is the matching number of pods on the `nodeName`. Currently works as follows: If a node does not publish its allocatable resources (cpu and memory both), the node score is not affected. If a pod does not specify its cpu and memory limits both, the node score is not affected. If one or both of cpu and memory limits of the pod are satisfied, the node is assigned a score of 1. Rationale of choosing the lowest score of 1 is that this is mainly selected to break ties between nodes that have same scores assigned by one of least and most requested priority functions.

func (*ResourceLimits) ScoreExtensions

func (rl *ResourceLimits) ScoreExtensions() framework.ScoreExtensions

ScoreExtensions of the Score plugin.

Source Files

balanced_allocation.go fit.go least_allocated.go most_allocated.go requested_to_capacity_ratio.go resource_allocation.go resource_limits.go test_util.go

Version
v1.19.0-beta.0
Published
May 19, 2020
Platform
js/wasm
Imports
15 packages
Last checked
11 minutes ago

Tools for package owners.