Skip to content

async API call for NominatedNodeName and pod condition #129449

Open
@sanposhiho

Description

@sanposhiho

Follow up: #126858 (comment)
/cc @JasonChen57 @kubernetes/sig-scheduling-leads @macsko @dom4ha
/assign
/kind feature
/sig scheduling

The scope of KEP-4832 is currently only the API calls made within the preemption plugin, which is for victim Pod deletion.
But, there's another API call involved to patch the unscheduled pod with nominated node name, status etc, which we may also want to do asynchronously.

if err := updatePod(ctx, sched.client, pod, &v1.PodCondition{
Type: v1.PodScheduled,
Status: v1.ConditionFalse,
Reason: reason,
Message: errMsg,
}, nominatingInfo); err != nil {
logger.Error(err, "Error updating pod", "pod", klog.KObj(pod))
}

We can see a potential perf improvement with scheduler-perf with a simple PoC, and decide whether we really want to do it or not.

Also, it has a broader blast radius since it impacts all unschedulable pods, and hence may not be allowed to just add into the scope of KEP-4832...? I'm not sure.

Metadata

Metadata

Assignees

Labels

kind/featureCategorizes issue or PR as related to a new feature.sig/schedulingCategorizes an issue or PR as relevant to SIG Scheduling.triage/acceptedIndicates an issue or PR is ready to be actively worked on.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions