<p>i am new to kubernetes.</p>
<p>How can I make sure that system-critical pods always run and cannot be displaced by other pods? Do I have to set these critical pods as &quot;system-cluster-critical&quot; or &quot;system-node-critical&quot; priorityclasses or do I have to create another priority class with my own value?</p>
<p>I have found 2 options for pod priorities - priority classes and Quality of service. What is the difference between them?</p>
<p>(<a href="https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/" rel="nofollow noreferrer">https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/</a>  <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>

<p>Pod priority can be thought something from a scheduling point such that higher priority pod always gets scheduled on node. In case there are lower priority pods, then shall be re-scheduled to allow higher pod priority ones.</p>
<p>QoS is for decision making based on classes it takes (Guaranteed, Burstable, BestEffort). To put simply this mostly comes where we dedicate certain resources for pod to perform. For example, a request of 1GB of memory means this pod is of Burstable and can grow.</p>
<p>One can use both on a single pod and have a much controlled environment for his pod.
The same links posted by you explains it further.</p>
