Skip to content

Make it easier for users to understand the reason for scheduling decisions and pending pods #20064

Closed
@davidopp

Description

I was debating whether to file separate issues, but they're similar enough that one issue is probably better.

(1) Make it easier for users to understand the reason for scheduling decisions. For example, when a pod is scheduled, attach an annotation to it with something like this (suggested by @brendandburns )

Node-1: Priority =  1234 [1000 (zonal spreading) + 200 (machine spreading) + 30 (balanced resources) + 4 (image affinity)]
Node-2: Priority =  1014 [ ... ]
Node-3: Failed predicate XXX
...
Node-N: ...

Also possibly add a kubectl porcelain command to easily fetch this information about a pod.

(2) Make it easier for users to understand the reason for pending pods. This is really the same as (1) except all of the nodes will be marked as "Failed predicate XXX" and the pod in question will be pending rather than running.

In both cases it is also useful to present some kind of summary -- it's not possible to extract a useful signal by reading thousands of lines of this information per pod, as you'd have in a large cluster. There are some fairly obvious ways to summarize the information, but I don't want to stifle anyone's creativity by suggesting anything specific here. :)

Metadata

Labels

priority/important-soonMust be staffed and worked on either currently, or very soon, ideally in time for the next release.sig/schedulingCategorizes an issue or PR as relevant to SIG Scheduling.

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions