I wonder whether k8s tries to schedule a pod forever by design?
In search of an answer i followed the docs about scheduling queue implementation details.
Also read source code a bit:
- Scheduling queue failure triggers scheduling error handler [link]
- Scheduling error handler moves a pod back to the unschedulablePods queue [link]
- Found some interesting field called
Attempts
from QueuedPodInfo [link]. But it seems to be used only for metrics and pod backoff calculation.
Inspecting the material above i made a conclusion that k8s endlessly transfers pods from one queue to another meeting certain conditions and there is no way to limit attempts for scheduling failures.
Am i correct about the conclusion?
Thanks!