World map

 

BM: Baca dalam Bahasa Melayu

World K2: Trays & Orders

QoS classes

You will learn: the three QoS classes, and which pods leave first when a node runs short.

Checked with Kubernetes 1.37 on 31 Oct 2026

The problem

A stall is running out of memory. Someone has to leave, or everyone suffers. Who should go first?

Pick one answer.

Watch

Kubernetes gives every pod a QoS class: Guaranteed, Burstable or BestEffort. When a stall runs short, BestEffort pods leave first., worked out from its requests and limits. Sort these trays.

Drag a card into a box. Or tap the card, then tap the box.

        Watch

        You are here: cluster kind-dev namespace default
        The three pods are created. Their QoS classes are Guaranteed, Burstable and BestEffort. Terminal output: $ kubectl apply -f gold.yaml pod/gold created $ kubectl apply -f silver.yaml pod/silver created $ kubectl apply -f bronze.yaml pod/bronze created $ kubectl get pod gold -o jsonpath={.status.qosClass} Guaranteed $ kubectl get pod silver -o jsonpath={.status.qosClass} Burstable $ kubectl get pod bronze -o jsonpath={.status.qosClass} BestEffort

        You never write the class. Kubernetes works it out and stores it in the pod’s status. jsonpath reads one field.

        Try it

        Memory runs short on a stall. Who leaves first? Put them in order.

        First to leave at the top. Put these in order. Use the arrows, or drag.

        • BestEffort pods
        • Guaranteed pods, last of all
        • Burstable pods using more than they booked

        Try it

        Your turn. Apply gold.yaml. Then read its class: kubectl get pod gold -o jsonpath={.status.qosClass}.

        You are here: cluster kind-dev namespace default
        Stalls: 3. Trays: 0 (0 ready). Waiting for a stall: 0.
        dev-control-planeOpenManager

        No trays here.

        dev-workerOpen

        No trays here.

        dev-worker2Open

        No trays here.

        Time: +0s (sped up)

        Check

        A container requests cpu: 100m and memory: 64Mi. Its only limit is memory: 64Mi. Which class?

        Pick one answer.

        You did it!

        You can now tell the three QoS classes apart and know who leaves first.

        Go deeper (optional)

        If a container sets only limits, its requests copy the limits. So limits for CPU and memory alone also give Guaranteed. When memory runs short, the kubelet evicts pods using more than they requested first.

        Real rep (optional): on a throwaway cluster, apply the three pods and run kubectl describe pod bronze. Find the QoS Class line.