interpodaffinity

package
v1.18.20 Latest Latest
Warning

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

Go to latest
Published: Jun 16, 2021 License: Apache-2.0 Imports: 16 Imported by: 7

Documentation

Index

Constants

View Source
const (

	// ErrReasonExistingAntiAffinityRulesNotMatch is used for ExistingPodsAntiAffinityRulesNotMatch predicate error.
	ErrReasonExistingAntiAffinityRulesNotMatch = "node(s) didn't satisfy existing pods anti-affinity rules"
	// ErrReasonAffinityNotMatch is used for MatchInterPodAffinity predicate error.
	ErrReasonAffinityNotMatch = "node(s) didn't match pod affinity/anti-affinity"
	// ErrReasonAffinityRulesNotMatch is used for PodAffinityRulesNotMatch predicate error.
	ErrReasonAffinityRulesNotMatch = "node(s) didn't match pod affinity rules"
	// ErrReasonAntiAffinityRulesNotMatch is used for PodAntiAffinityRulesNotMatch predicate error.
	ErrReasonAntiAffinityRulesNotMatch = "node(s) didn't match pod anti-affinity rules"
)
View Source
const (
	// Name is the name of the plugin used in the plugin registry and configurations.
	Name = "InterPodAffinity"

	// DefaultHardPodAffinityWeight is the default HardPodAffinityWeight.
	DefaultHardPodAffinityWeight int32 = 1
	// MinHardPodAffinityWeight is the minimum HardPodAffinityWeight.
	MinHardPodAffinityWeight int32 = 0
	// MaxHardPodAffinityWeight is the maximum HardPodAffinityWeight.
	MaxHardPodAffinityWeight int32 = 100
)

Variables

This section is empty.

Functions

func New

New initializes a new plugin and returns it.

func ValidateHardPodAffinityWeight added in v1.18.0

func ValidateHardPodAffinityWeight(path *field.Path, w int32) error

ValidateHardPodAffinityWeight validates that weight is within allowed range.

Types

type Args added in v1.18.0

type Args struct {
	// HardPodAffinityWeight is the scoring weight for existing pods with a
	// matching hard affinity to the incoming pod.
	HardPodAffinityWeight *int32 `json:"hardPodAffinityWeight,omitempty"`
}

Args holds the args that are used to configure the plugin.

type InterPodAffinity

type InterPodAffinity struct {
	Args

	sync.Mutex
	// contains filtered or unexported fields
}

InterPodAffinity is a plugin that checks inter pod affinity

func (*InterPodAffinity) AddPod added in v1.18.0

func (pl *InterPodAffinity) AddPod(ctx context.Context, cycleState *framework.CycleState, podToSchedule *v1.Pod, podToAdd *v1.Pod, nodeInfo *nodeinfo.NodeInfo) *framework.Status

AddPod from pre-computed data in cycleState.

func (*InterPodAffinity) BuildArgs added in v1.18.0

func (pl *InterPodAffinity) BuildArgs() interface{}

BuildArgs returns the args that were used to build the plugin.

func (*InterPodAffinity) Filter

func (pl *InterPodAffinity) Filter(ctx context.Context, cycleState *framework.CycleState, pod *v1.Pod, nodeInfo *nodeinfo.NodeInfo) *framework.Status

Filter invoked at the filter extension point. It checks if a pod can be scheduled on the specified node with pod affinity/anti-affinity configuration.

func (*InterPodAffinity) Name

func (pl *InterPodAffinity) Name() string

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

func (*InterPodAffinity) NormalizeScore

func (pl *InterPodAffinity) NormalizeScore(ctx context.Context, cycleState *framework.CycleState, pod *v1.Pod, scores framework.NodeScoreList) *framework.Status

NormalizeScore normalizes the score for each filteredNode. The basic rule is: the bigger the score(matching number of pods) is, the smaller the final normalized score will be.

func (*InterPodAffinity) PreFilter added in v1.18.0

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

PreFilter invoked at the prefilter extension point.

func (*InterPodAffinity) PreFilterExtensions added in v1.18.0

func (pl *InterPodAffinity) PreFilterExtensions() framework.PreFilterExtensions

PreFilterExtensions returns prefilter extensions, pod add and remove.

func (*InterPodAffinity) PreScore added in v1.18.0

func (pl *InterPodAffinity) 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 (*InterPodAffinity) RemovePod added in v1.18.0

func (pl *InterPodAffinity) RemovePod(ctx context.Context, cycleState *framework.CycleState, podToSchedule *v1.Pod, podToRemove *v1.Pod, nodeInfo *nodeinfo.NodeInfo) *framework.Status

RemovePod from pre-computed data in cycleState.

func (*InterPodAffinity) Score

func (pl *InterPodAffinity) Score(ctx context.Context, cycleState *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`, it is normalized later.

func (*InterPodAffinity) ScoreExtensions

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

ScoreExtensions of the Score plugin.

Jump to

Keyboard shortcuts

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