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 = names.NodeResourcesBalancedAllocation
)

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

const (
	// Name is the name of the plugin used in the plugin registry and configurations.
	Name = names.NodeResourcesFit
)

Functions

func NewBalancedAllocation

func NewBalancedAllocation(_ context.Context, baArgs runtime.Object, h framework.Handle, fts feature.Features) (framework.Plugin, error)

NewBalancedAllocation initializes a new plugin and returns it.

func NewFit

NewFit 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) PreScore

func (ba *BalancedAllocation) PreScore(ctx context.Context, cycleState fwk.CycleState, pod *v1.Pod, nodes []*framework.NodeInfo) *framework.Status

PreScore calculates incoming pod's resource requests and writes them to the cycle state used.

func (*BalancedAllocation) Score

func (ba *BalancedAllocation) Score(ctx context.Context, state fwk.CycleState, pod *v1.Pod, nodeInfo *framework.NodeInfo) (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) EventsToRegister

func (f *Fit) EventsToRegister(_ context.Context) ([]framework.ClusterEventWithHint, error)

EventsToRegister returns the possible events that may make a Pod failed by this plugin schedulable.

func (*Fit) Filter

func (f *Fit) Filter(ctx context.Context, cycleState fwk.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 fwk.CycleState, pod *v1.Pod, nodes []*framework.NodeInfo) (*framework.PreFilterResult, *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.

func (*Fit) PreScore

func (f *Fit) PreScore(ctx context.Context, cycleState fwk.CycleState, pod *v1.Pod, nodes []*framework.NodeInfo) *framework.Status

PreScore calculates incoming pod's resource requests and writes them to the cycle state used.

func (*Fit) Score

func (f *Fit) Score(ctx context.Context, state fwk.CycleState, pod *v1.Pod, nodeInfo *framework.NodeInfo) (int64, *framework.Status)

Score invoked at the Score extension point.

func (*Fit) ScoreExtensions

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

ScoreExtensions of the Score plugin.

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
	// Unresolvable indicates whether this node could be schedulable for the pod by the preemption,
	// which is determined by comparing the node's size and the pod's request.
	Unresolvable bool
}

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

func Fits

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

type ResourceRequestsOptions

type ResourceRequestsOptions struct {
	EnablePodLevelResources bool
}

Source Files

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

Version
v1.34.0-alpha.1
Published
Jun 16, 2025
Platform
js/wasm
Imports
23 packages
Last checked
13 minutes ago

Tools for package owners.