kubernetes: k8s.io/kubernetes/pkg/scheduler/framework/plugins/interpodaffinity Index | Files

package interpodaffinity

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


Package Files

filtering.go plugin.go scoring.go


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 rules"
    // 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"
const (
    // Name is the name of the plugin used in the plugin registry and configurations.
    Name = "InterPodAffinity"

func New Uses

func New(plArgs runtime.Object, h framework.Handle) (framework.Plugin, error)

New initializes a new plugin and returns it.

type InterPodAffinity Uses

type InterPodAffinity struct {
    // contains filtered or unexported fields

InterPodAffinity is a plugin that checks inter pod affinity

func (*InterPodAffinity) AddPod Uses

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

AddPod from pre-computed data in cycleState.

func (*InterPodAffinity) Filter Uses

func (pl *InterPodAffinity) Filter(ctx context.Context, cycleState *framework.CycleState, pod *v1.Pod, nodeInfo *framework.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 Uses

func (pl *InterPodAffinity) Name() string

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

func (*InterPodAffinity) NormalizeScore Uses

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.

func (*InterPodAffinity) PreFilter Uses

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 Uses

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

PreFilterExtensions returns prefilter extensions, pod add and remove.

func (*InterPodAffinity) PreScore Uses

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 Uses

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

RemovePod from pre-computed data in cycleState.

func (*InterPodAffinity) Score Uses

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 sum of weights got from cycleState which have its topologyKey matching with the node's labels. it is normalized later. Note: the returned "score" is positive for pod-affinity, and negative for pod-antiaffinity.

func (*InterPodAffinity) ScoreExtensions Uses

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

ScoreExtensions of the Score plugin.

Package interpodaffinity imports 11 packages (graph) and is imported by 51 packages. Updated 2021-01-25. Refresh now. Tools for package owners.