CKAD Application Deployment Practice Question
You have a Deployment named 'web-app' with 5 replicas. You run the command: kubectl set image deployment/web-app web-app=nginx:1.25. Which command can you use to monitor the progress of the rollout?
⚠ Common exam trap
Many exam-takers confuse `kubectl rollout status` with `kubectl rollout history` or `kubectl describe`, mistakenly thinking a static view or revision list can show live progress, when only `rollout status` provides real-time monitoring of the rollout's completion.
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
kubectl rollout status deployment/web-app
`kubectl rollout status deployment/web-app` is the dedicated command to monitor the progress of a rollout, providing real-time updates on whether the rollout is succeeding, pending, or failed. It watches the deployment's status conditions and reports when the new ReplicaSet has fully replaced the old one, making it the precise tool for tracking the progress of the `kubectl set image` change.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
kubectl describe deployment/web-app
Why it's wrong here
kubectl describe deployment/web-app returns a static snapshot of the Deployment's status fields, such as Replicas, AvailableReplicas, and Conditions, but exits immediately after displaying them. It cannot observe whether a new ReplicaSet is actively progressing or whether the rollout has become stuck, because it does not maintain a watch on the resource. Therefore, it is useful for inspecting the current state but not for monitoring progress to completion.
- ✗
kubectl rollout history deployment/web-app
Why it's wrong here
kubectl rollout history deployment/web-app lists revision numbers and change causes for past rollouts, as recorded from ReplicaSet annotations. It does not query live status or block; it merely presents historical metadata about previous versions. Since the task requires following an in-progress rollout, this command provides no real-time signal about the current rollout's status or availability.
- ✓
kubectl rollout status deployment/web-app
Why this is correct
kubectl rollout status deployment/web-app attaches to the Deployment's status and blocks until the rollout reaches completion, printing progress messages like 'Waiting for deployment spec update...' and finally 'deployment "web-app" successfully rolled out'. It returns a non-zero exit code if the rollout times out or fails, making it the canonical command for checking rollout success. It also supports a `--timeout` flag to bound the wait, which is essential in scripts and CI pipelines.
- ✗
kubectl get events --watch
Why it's wrong here
kubectl get events --watch streams all cluster events in real time, but those events come from many controllers and are not filtered to the Deployment's rollout logic. You will see Pod creation, scheduling, and image-pull events, yet there is no aggregated indicator of overall rollout progress or final status. Additionally, the --watch flag never exits, requiring manual interruption, and it cannot report whether the rollout ultimately succeeded or failed.
Go deeper
Related to this question
About these practice questions
This CKAD question is part of Courseiva's 826-question bank — original exam-style content with full explanations and wrong-answer analysis, never real exam questions or exam dumps. Learn why practice questions differ from exam dumps →
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This CKAD practice question is part of Courseiva's free CNCF certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the CKAD exam.