Bird
Raised Fist0
Kubernetesdevops~5 mins

Pod priority and preemption in Kubernetes - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is pod priority in Kubernetes?
Pod priority is a value assigned to pods that indicates their importance. Higher priority pods are scheduled before lower priority ones when resources are limited.
Click to reveal answer
beginner
What does preemption mean in the context of Kubernetes pods?
Preemption means Kubernetes can evict (remove) lower priority pods to free resources for higher priority pods that need to be scheduled.
Click to reveal answer
intermediate
How do you assign a priority to a pod?
You assign a priority by specifying a priorityClassName in the pod's spec, which refers to a PriorityClass resource defining the priority value.
Click to reveal answer
intermediate
What happens if a high priority pod cannot be scheduled due to lack of resources?
Kubernetes tries to preempt lower priority pods by evicting them to free resources so the high priority pod can be scheduled.
Click to reveal answer
advanced
Can preemption cause disruption to running applications?
Yes, preemption evicts pods which can cause temporary downtime or disruption for those lower priority applications.
Click to reveal answer
What does the priorityClassName field in a pod spec do?
ASpecifies the container image version
BDefines the namespace of the pod
CAssigns a priority to the pod for scheduling decisions
DSets the pod's resource limits
What triggers preemption in Kubernetes?
AA node goes offline
BA pod exceeds its CPU limits
CA pod crashes repeatedly
DA high priority pod cannot be scheduled due to insufficient resources
Which of these is true about pod priority values?
AHigher values mean higher priority
BLower values mean higher priority
CPriority values must be between 0 and 10
DPriority values are assigned randomly
What happens to a pod that is preempted?
AIt is evicted and terminated to free resources
BIt is paused and resumed later
CIt is moved to another node automatically
DIt continues running without changes
Can a pod with no priorityClassName be preempted?
ANo, it cannot be preempted
BYes, it has the lowest priority by default
COnly if it requests more than 1 CPU
DOnly if it is in a special namespace
Explain how pod priority and preemption work together in Kubernetes scheduling.
Think about how Kubernetes decides which pods run when resources are tight.
You got /4 concepts.
    Describe the impact of preemption on running applications and how to manage it.
    Consider what happens when a pod is removed to make space for another.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of pod priority in Kubernetes?
      easy
      A. To decide which pods get scheduled first when resources are limited
      B. To assign network policies to pods
      C. To control pod security settings
      D. To manage pod storage volumes

      Solution

      1. Step 1: Understand pod priority concept

        Pod priority is used to rank pods by importance for scheduling decisions.
      2. Step 2: Identify scheduling impact

        When resources are scarce, higher priority pods are scheduled before lower priority ones.
      3. Final Answer:

        To decide which pods get scheduled first when resources are limited -> Option A
      4. Quick Check:

        Pod priority controls scheduling order = A [OK]
      Hint: Pod priority ranks pods for scheduling under resource limits [OK]
      Common Mistakes:
      • Confusing priority with security or network policies
      • Thinking priority controls storage or volumes
      • Assuming priority affects pod runtime behavior
      2. Which YAML field correctly assigns a priority class to a pod?
      easy
      A. spec.priority: high-priority
      B. metadata.priorityClass: high-priority
      C. metadata.priorityClassName: high-priority
      D. spec.priorityClassName: high-priority

      Solution

      1. Step 1: Recall pod spec fields

        The priority class is set under the pod's spec using priorityClassName.
      2. Step 2: Verify correct YAML syntax

        Correct field is spec.priorityClassName, not metadata or spec.priority.
      3. Final Answer:

        spec.priorityClassName: high-priority -> Option D
      4. Quick Check:

        Priority class set in spec.priorityClassName = C [OK]
      Hint: Use spec.priorityClassName to assign priority class in pod YAML [OK]
      Common Mistakes:
      • Placing priorityClassName under metadata instead of spec
      • Using spec.priority instead of priorityClassName
      • Misspelling the field name
      3. Given these pods with priorities: Pod A (priority 1000), Pod B (priority 500), Pod C (priority 1000). If resources are limited and only two pods can run, which pods will Kubernetes schedule?
      medium
      A. Pod B and Pod C
      B. Pod A and Pod C
      C. Pod A and Pod B
      D. Pod B only

      Solution

      1. Step 1: Compare pod priorities

        Pod A and Pod C have priority 1000, Pod B has 500.
      2. Step 2: Select highest priority pods

        Kubernetes schedules pods with highest priority first, so Pod A and Pod C run.
      3. Final Answer:

        Pod A and Pod C -> Option B
      4. Quick Check:

        Highest priority pods scheduled = A [OK]
      Hint: Schedule pods with highest priority first when resources are limited [OK]
      Common Mistakes:
      • Choosing pods with lower priority over higher
      • Assuming all pods run regardless of resources
      • Ignoring equal priority pods
      4. You created a pod with priorityClassName: "high-priority" but it is not preempting lower priority pods when scheduled. What could be the reason?
      medium
      A. The priority class "high-priority" is not defined in the cluster
      B. Pod preemption is disabled by default in Kubernetes
      C. The pod spec is missing resource requests
      D. The pod is running on a node with no other pods

      Solution

      1. Step 1: Check priority class existence

        If the priority class "high-priority" is not defined, the pod cannot use it for preemption.
      2. Step 2: Understand preemption behavior

        Preemption requires a valid priority class; missing it disables preemption.
      3. Final Answer:

        The priority class "high-priority" is not defined in the cluster -> Option A
      4. Quick Check:

        Undefined priority class blocks preemption = D [OK]
      Hint: Ensure priority class exists before expecting preemption [OK]
      Common Mistakes:
      • Assuming preemption is disabled by default
      • Ignoring missing resource requests impact
      • Not checking node pod status
      5. You have a cluster with pods of different priorities. A new pod with priority 2000 is pending due to lack of resources. How does Kubernetes handle this situation?
      hard
      A. It waits until resources are manually freed without preemption
      B. It schedules the new pod alongside others, causing resource overcommit
      C. It preempts lower priority pods to free resources for the new pod
      D. It deletes the new pod automatically due to insufficient resources

      Solution

      1. Step 1: Understand preemption role

        When a high priority pod is pending, Kubernetes can preempt lower priority pods to free resources.
      2. Step 2: Apply preemption behavior

        Kubernetes stops lower priority pods to schedule the higher priority pod if possible.
      3. Final Answer:

        It preempts lower priority pods to free resources for the new pod -> Option C
      4. Quick Check:

        High priority pod triggers preemption = B [OK]
      Hint: High priority pods preempt lower ones to get scheduled [OK]
      Common Mistakes:
      • Thinking Kubernetes waits without preemption
      • Assuming resource overcommit happens automatically
      • Believing new pods get deleted if pending
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard