From 8e0f8accb51c551906fe2d434e9e2236f1767fbe Mon Sep 17 00:00:00 2001 From: Jan Chaloupka Date: Wed, 24 Feb 2021 12:44:06 +0100 Subject: [PATCH] sig-scheduling: Scheduling queue in kube-scheduler --- .../devel/sig-scheduling/scheduler_queues.md | 99 ++++++++++++++++++ .../sig-scheduling/scheduling_queues.png | Bin 0 -> 42122 bytes 2 files changed, 99 insertions(+) create mode 100644 contributors/devel/sig-scheduling/scheduler_queues.md create mode 100644 contributors/devel/sig-scheduling/scheduling_queues.png diff --git a/contributors/devel/sig-scheduling/scheduler_queues.md b/contributors/devel/sig-scheduling/scheduler_queues.md new file mode 100644 index 000000000..e4eff5fb5 --- /dev/null +++ b/contributors/devel/sig-scheduling/scheduler_queues.md @@ -0,0 +1,99 @@ +# Scheduling queue in kube-scheduler + +Queueing mechanism is an integral part of the scheduler. It allows the scheduler +to pick the most suitable pod for the next scheduling cycle. Given a pod can +specify various conditions that have to be met at the time of scheduling, +such as existence of a persistent volume, compliance with pod anti-affinity rules +or toleration of node taints, the mechanism needs to be able to postpone +the scheduling action until the cluster may meet all the conditions for +the successful scheduling. The mechanism relies on three queues: +- active ([activeQ](https://github.com/kubernetes/kubernetes/blob/4cc1127e9251fff364d5c77e2a9a9c3ad42383ab/pkg/scheduler/internal/queue/scheduling_queue.go#L130)): providing pods for immediate scheduling +- unschedulable ([unschedulableQ](https://github.com/kubernetes/kubernetes/blob/4cc1127e9251fff364d5c77e2a9a9c3ad42383ab/pkg/scheduler/internal/queue/scheduling_queue.go#L135)): for parking pods which are waiting for certain condition(s) to happen +- backoff ([podBackoffQ](https://github.com/kubernetes/kubernetes/blob/4cc1127e9251fff364d5c77e2a9a9c3ad42383ab/pkg/scheduler/internal/queue/scheduling_queue.go#L133)): exponentially postponing pods which failed + to be scheduled (e.g. volume still getting created) but are expected to get scheduled eventually. + +In addition, the scheduling queue mechanism has two periodical flushing goroutines +running in the background responsible for moving pods to the active queue: +- [flushUnschedulableQLeftover](https://github.com/kubernetes/kubernetes/blob/4cc1127e9251fff364d5c77e2a9a9c3ad42383ab/pkg/scheduler/internal/queue/scheduling_queue.go#L350): running every 30 seconds moving pods from unschedulable + queue to allow unschedulable pods that were not moved by any event + to be retried again. Pod has to stay for at least 30 seconds in the queue to get moved. + In the worst case it can take up to 60 seconds to have a pod moved. +- [flushBackoffQCompleted](https://github.com/kubernetes/kubernetes/blob/4cc1127e9251fff364d5c77e2a9a9c3ad42383ab/pkg/scheduler/internal/queue/scheduling_queue.go#L324): running every second moving pods that were backed off + long enough to the active queue. + +Both retry periods for the goroutines are fixed and non-configurable. +Also, in response to certain events, the scheduler +move pods from either queue to the active queue (by invoking [MoveAllToActiveOrBackoffQueue](https://github.com/kubernetes/kubernetes/blob/4cc1127e9251fff364d5c77e2a9a9c3ad42383ab/pkg/scheduler/internal/queue/scheduling_queue.go#L493)). +Example events include a node addition or update, an existing pod being deleted etc. + +![Pods moving between queues](scheduling_queues.png "Pods moving between queues") + +## Active queue (heap) + +A queue with the highest priority pod at the top by default. The ordering +can be customized via QueueSort extension point. Newly created pods, with empty `.spec.nodeName`, +are added to the queue as they come. In each scheduling cycle the scheduler takes +one pod from the queue and tries to schedule it. In case the scheduling algorithm +fails (e.g. plugins error, binding error), the pod is moved to the unschedulable queue. +Or, moved to the backoff queue if a move request was issued at the same or newer time. +The move request signals a move of pods from unschedulable to active, respectively backoff queue. +If a pod is scheduled without an error, it is removed from all queues. + +## Backoff queue (heap) +Queue keeping pods in a waiting state to avoid continuous retries. Queue ordering +keeps a pod with the shortest backoff timeout at the top. The more times a pod gets +backed off, the longer it takes for the pod to re-enter the active queue. The backoff +timeout grows exponentially with each failed scheduling attempt until it reaches its maximum. +Scheduler allows to configure initial backoff (set to 1 second by default) and maximum +backoff (set to 10 seconds by default). A pod can get to the backoff queue +when a move request (see below) is issued. + +As an example a pod with 3 failed attempts gets the target backoff timeout +set to curTime + 2s^3 (8s). With 5 failed attempts the timeout gets set to curTime +2s^5 (32s). +In case the maximum backoff is too low (e.g. the default 10s), a pod can get to the active +queue too often. So it’s recommended to configure the maximum backoff to fit the workloads +so the pods stay in the backoff queue long enough to avoid flooding the active queue +with pods failing too often to be scheduled. + +## Unschedulable queue (map) +Queue keeping all pods that failed to be scheduled and were not subject to a move request. +Pods are kept in the queue until a move request is issued. + +## Moving request + +Moving request triggers an event responsible for moving pods from +unschedulable queue to either the active or the backoff queue. Different cluster +events can asynchronously trigger a moving request and make unschedulable +pods (that were tried before) schedulable again. The events currently include +changes in pods, nodes, services, PVs, PVCs, storage classes and CSI nodes. + +It’s possible that a pod fails to be scheduled while a moving request gets issued. +Due to this event, the pod might now be schedulable and the following mechanism +allows such pod to be retried. Every moving request operation stores the current +scheduling cycle under [moveRequestCycle](https://github.com/kubernetes/kubernetes/blob/4cc1127e9251fff364d5c77e2a9a9c3ad42383ab/pkg/scheduler/internal/queue/scheduling_queue.go#L523) variable. After a pod fails scheduling, +it is regularly put in the unschedulable queue. Unless moveRequestCycle +is the current scheduling cycle, in which case the pod takes a shortcut +and gets moved right under the backoff queue. + +**Examples**: +- When a pod is scheduled, some pods in the unschedulable queue with matching + affinity can be made schedulable. If matching affinity is the only required + condition for scheduling, issuing a moving request for those pods will allow + them to get finally scheduled. +- A pod is getting processed by filter plugins which give no nodes left for scheduling. + Meantime an asynchronous moving request gets issued as a reaction on a new node event. + Moving the pod under the backoff queue will allow the pod to be moved sooner + into the active queue and check if the new node is eligible for scheduling. + +## Metrics + +The scheduling queue populates two metrics: +[pending_pods](https://github.com/kubernetes/kubernetes/blob/4cc1127e9251fff364d5c77e2a9a9c3ad42383ab/pkg/scheduler/metrics/metrics.go#L83-L89) and +[queue_incoming_pods_total](https://github.com/kubernetes/kubernetes/blob/4cc1127e9251fff364d5c77e2a9a9c3ad42383ab/pkg/scheduler/metrics/metrics.go#L141-L147). +All three queues count how many pods are pending in each queue and how many +times a pod was enqueued into each queue. Including which event was responsible +for the enqueueing. The events can include failed scheduling attempts, +pod finishing backoff, node added, service updated, etc. The metrics allow us +to see how many pods are present in each queue. Allowing to see how often pods +are unschedulable, what’s the scheduler throughput, or which events are moving +the pods from one queue to another most often. diff --git a/contributors/devel/sig-scheduling/scheduling_queues.png b/contributors/devel/sig-scheduling/scheduling_queues.png new file mode 100644 index 0000000000000000000000000000000000000000..1ffcc77aec4fdd4be992153ce96124f2b7641ef0 GIT binary patch literal 42122 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 literal 0 HcmV?d00001