Bird
Raised Fist0
Kubernetesdevops~10 mins

Desired replicas vs actual replicas in Kubernetes - Visual Side-by-Side Comparison

Choose your learning style10 modes available
Process Flow - Desired replicas vs actual replicas
User sets desired replicas
↓
Kubernetes Controller Manager
↓
Check current actual replicas
↓
Actual < Desired
↓
Create pods
↓
Update actual replicas count
↓
Match desired replicas?
No→Repeat check
Yes↓
Stable state
This flow shows how Kubernetes compares desired replicas with actual pods and adjusts by creating or deleting pods until they match.
Execution Sample
Kubernetes
kubectl scale deployment myapp --replicas=3
kubectl get deployment myapp
Set desired replicas to 3 and check actual replicas running in the deployment.
Process Table
StepDesired ReplicasActual ReplicasAction TakenResult
131Create 2 podsActual replicas increase to 3
233No actionDesired matches actual, stable state
323Delete 1 podActual replicas decrease to 2
422No actionDesired matches actual, stable state
💡 Execution stops when actual replicas equal desired replicas, indicating stable deployment state.
Status Tracker
VariableStartAfter Step 1After Step 2After Step 3After Step 4
Desired Replicas33322
Actual Replicas13322
Key Moments - 2 Insights
Why does Kubernetes create or delete pods instead of instantly matching desired replicas?
Kubernetes adjusts pods gradually to ensure stability and avoid sudden disruptions, as shown in steps 1 and 3 where pods are created or deleted step-by-step.
What happens if actual replicas are already equal to desired replicas?
No action is taken and the system remains stable, as seen in steps 2 and 4 where desired equals actual and no changes occur.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the actual replicas count after step 1?
A3
B1
C2
D0
💡 Hint
Refer to the 'Actual Replicas' column in row for step 1.
At which step does Kubernetes delete a pod to match desired replicas?
AStep 1
BStep 2
CStep 3
DStep 4
💡 Hint
Check the 'Action Taken' column for the step where pods are deleted.
If desired replicas were set to 4 at start, how would the actual replicas change after step 1?
AIncrease to 3
BIncrease to 4
CDecrease to 1
DStay at 1
💡 Hint
Look at how actual replicas adjust to match desired replicas in the variable_tracker.
Concept Snapshot
Desired replicas are the number of pods you want running.
Actual replicas are the pods currently running.
Kubernetes controller compares these and creates or deletes pods to match.
This ensures your app runs the right number of instances.
Stable state is when desired equals actual replicas.
Full Transcript
In Kubernetes, you set the desired number of pod replicas for your app. The system checks how many pods are actually running. If fewer pods run than desired, Kubernetes creates more pods. If more pods run than desired, it deletes some. This process repeats until the actual number matches the desired number. When they match, the deployment is stable. This ensures your app has the right capacity to handle traffic.

Practice

(1/5)
1. What does the desired replicas value represent in a Kubernetes Deployment?
easy
A. The number of pods currently running
B. The number of containers inside a pod
C. The number of nodes in the cluster
D. The number of pod copies Kubernetes should run

Solution

  1. Step 1: Understand the role of desired replicas

    Desired replicas specify how many copies of a pod Kubernetes should maintain to run your app.
  2. Step 2: Differentiate from actual replicas

    Actual replicas show how many pods are currently running, which may differ temporarily.
  3. Final Answer:

    The number of pod copies Kubernetes should run -> Option D
  4. Quick Check:

    Desired replicas = target pod count [OK]
Hint: Desired replicas = target pods Kubernetes tries to run [OK]
Common Mistakes:
  • Confusing desired replicas with actual running pods
  • Thinking desired replicas count containers, not pods
  • Mixing desired replicas with cluster node count
2. Which of the following is the correct YAML snippet to set desired replicas to 3 in a Deployment?
easy
A. replicaCount: 3
B. desiredReplicas: 3
C. replicas: 3
D. pods: 3

Solution

  1. Step 1: Identify the correct field name in Deployment spec

    The correct field to set desired replicas is replicas under the spec section.
  2. Step 2: Verify syntax correctness

    Using replicas: 3 is valid YAML and recognized by Kubernetes.
  3. Final Answer:

    replicas: 3 -> Option C
  4. Quick Check:

    Use 'replicas' to set desired pod count [OK]
Hint: Use 'replicas' key in Deployment spec to set desired pods [OK]
Common Mistakes:
  • Using incorrect field names like desiredReplicas or replicaCount
  • Placing replicas outside the spec section
  • Using plural 'pods' instead of 'replicas'
3. You run kubectl get deployment myapp and see:
DESIRED=4, CURRENT=3, UP-TO-DATE=3, AVAILABLE=3
What does this mean?
medium
A. One pod has crashed and won't restart
B. Kubernetes is still creating the 4th pod
C. All pods are running as expected
D. Deployment is scaled down to 3 pods

Solution

  1. Step 1: Compare desired and current replicas

    Desired is 4 but current is 3, so Kubernetes aims for 4 pods but only 3 are running now.
  2. Step 2: Interpret the status fields

    Up-to-date and available are 3, meaning 3 pods are ready and updated; the 4th pod is likely starting.
  3. Final Answer:

    Kubernetes is still creating the 4th pod -> Option B
  4. Quick Check:

    Desired > Current means pods are still launching [OK]
Hint: Desired > Current means pods are starting or recovering [OK]
Common Mistakes:
  • Assuming pods crashed without checking events
  • Thinking deployment scaled down when desired is higher
  • Confusing available with desired replicas
4. You notice your Deployment's desired replicas is 5 but actual replicas stays at 3. Which is the most likely cause?
medium
A. Pods are stuck in Pending state due to resource limits
B. Deployment YAML has syntax errors
C. kubectl command was typed incorrectly
D. Actual replicas always match desired replicas instantly

Solution

  1. Step 1: Understand why actual replicas lag behind desired

    If actual replicas are less than desired, pods may be stuck starting, often due to resource constraints.
  2. Step 2: Eliminate other options

    Syntax errors prevent deployment creation, incorrect kubectl commands won't show this state, and actual replicas do not update instantly.
  3. Final Answer:

    Pods are stuck in Pending state due to resource limits -> Option A
  4. Quick Check:

    Pending pods cause actual < desired replicas [OK]
Hint: Check pod status if actual replicas < desired replicas [OK]
Common Mistakes:
  • Assuming syntax errors cause replica mismatch
  • Expecting instant replica count update
  • Ignoring pod scheduling issues
5. You want to ensure your Deployment always has 3 pods running. You set replicas: 3 but sometimes kubectl get pods shows only 2 running pods. What should you do to fix this?
hard
A. Check pod events and logs to find why one pod is not running and fix the issue
B. Increase replicas to 4 to force Kubernetes to create more pods
C. Delete the Deployment and recreate it with replicas set to 3
D. Ignore it; actual replicas will eventually match desired without intervention

Solution

  1. Step 1: Investigate why pods are missing

    Check pod events and logs to identify issues like crashes, scheduling failures, or resource limits causing pods not to run.
  2. Step 2: Fix the root cause

    Resolve the identified problem (e.g., fix image, increase resources) so Kubernetes can maintain 3 running pods as desired.
  3. Final Answer:

    Check pod events and logs to find why one pod is not running and fix the issue -> Option A
  4. Quick Check:

    Fix pod issues to match actual to desired replicas [OK]
Hint: Always check pod status and logs if replicas don't match [OK]
Common Mistakes:
  • Scaling replicas blindly without fixing pod issues
  • Deleting Deployment unnecessarily
  • Assuming Kubernetes fixes pod issues automatically
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