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"
    // 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.FrameworkHandle) (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, podToAdd *v1.Pod, nodeInfo *framework.NodeInfo) *framework.Status

AddPod from pre-computed data in cycleState.

func (*InterPodAffinity) BuildArgs Uses

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

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

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. The basic rule is: the bigger the score(matching number of pods) is, the smaller the final normalized score will be.

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, podToRemove *v1.Pod, 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 matching number of pods on the `nodeName`, it is normalized later.

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 28 packages. Updated 2020-05-26. Refresh now. Tools for package owners.