<p>According to <a href="https://kubernetes.io/docs/tasks/configure-pod-container/quality-service-pod/" rel="nofollow noreferrer">https://kubernetes.io/docs/tasks/configure-pod-container/quality-service-pod/</a></p>
<blockquote>
<p>Kubernetes uses QoS classes to make decisions about scheduling and evicting Pods.</p>
</blockquote>
<p>I don't understand how do QoS classes have anything to do with scheduling? The documentation mentions that QoS classes determine eviction order in case of a node going out of resources.</p>
<p>On the other hand, scheduling uses pod priorities (PriorityClass) to set the scheduling order and preemption.</p>
<p>My question is what is the link between QoS and scheduling?</p>

woj.sierak
<blockquote>
<p>My question is what is the link between QoS and scheduling?</p>
</blockquote>
<p>According to <a href="https://kubernetes.io/docs/concepts/scheduling-eviction/kube-scheduler/" rel="nofollow noreferrer">https://kubernetes.io/docs/concepts/scheduling-eviction/kube-scheduler/</a></p>
<blockquote>
<p>kube-scheduler selects a node for the pod in a 2-step operation:</p>
<pre><code>Filtering
Scoring
</code></pre>
<p>The filtering step finds the set of Nodes where it's feasible to
schedule the Pod. For example, the PodFitsResources filter checks
whether a candidate Node has enough available resource to meet a Pod's
specific resource requests. After this step, the node list contains
any suitable Nodes; often, there will be more than one. If the list is
empty, that Pod isn't (yet) schedulable.</p>
<p>In the scoring step, the scheduler ranks the remaining nodes to choose
the most suitable Pod placement. The scheduler assigns a score to each
Node that survived filtering, basing this score on the active scoring
rules.</p>
<p>Finally, kube-scheduler assigns the Pod to the Node with the highest
ranking. If there is more than one node with equal scores,
kube-scheduler selects one of these at random.</p>
</blockquote>
<p>So the QoS takes a role in Filtering step of kube-scheduler operation that corresponding PodFitsResources filter.</p>
<p>According to <a href="https://kubernetes.io/docs/reference/scheduling/policies/" rel="nofollow noreferrer">https://kubernetes.io/docs/reference/scheduling/policies/</a></p>
<blockquote>
<p>PodFitsResources: Checks if the Node has free resources (eg, CPU and
Memory) to meet the requirement of the Pod.</p>
</blockquote>
