How to Pause and Resume Kubernetes Deployment Easily
Use
kubectl rollout pause deployment/DEPLOYMENT_NAME to pause a Kubernetes deployment and kubectl rollout resume deployment/DEPLOYMENT_NAME to resume it. Pausing stops new updates from being applied, letting you control when changes happen.Syntax
The commands to pause and resume a deployment use the kubectl rollout subcommands. Replace DEPLOYMENT_NAME with your deployment's name.
kubectl rollout pause deployment/DEPLOYMENT_NAME: Pauses the deployment rollout.kubectl rollout resume deployment/DEPLOYMENT_NAME: Resumes the paused deployment rollout.
bash
kubectl rollout pause deployment/DEPLOYMENT_NAME kubectl rollout resume deployment/DEPLOYMENT_NAME
Example
This example shows how to pause a deployment named webapp, check its status, then resume it.
bash
kubectl create deployment webapp --image=nginx kubectl rollout pause deployment/webapp kubectl rollout status deployment/webapp kubectl rollout resume deployment/webapp kubectl rollout status deployment/webapp
Output
deployment.apps/webapp created
deployment.apps/webapp paused
Waiting for deployment "webapp" rollout to finish: 0 of 1 updated replicas are available...
deployment.apps/webapp resumed
deployment "webapp" successfully rolled out
Common Pitfalls
Common mistakes include:
- Trying to pause or resume a deployment that does not exist, causing errors.
- Not checking the rollout status after resuming, missing if the deployment failed.
- Confusing
kubectl rollout pausewith stopping pods; pause only stops new updates.
bash
kubectl rollout pause deployment/nonexistent
# Error: deployments.apps "nonexistent" not found
# Correct usage:
kubectl rollout pause deployment/webappOutput
error: deployments.apps "nonexistent" not found
Quick Reference
| Command | Description |
|---|---|
| kubectl rollout pause deployment/DEPLOYMENT_NAME | Pause deployment rollout to stop updates |
| kubectl rollout resume deployment/DEPLOYMENT_NAME | Resume paused deployment rollout |
| kubectl rollout status deployment/DEPLOYMENT_NAME | Check rollout status of deployment |
Key Takeaways
Use kubectl rollout pause to stop deployment updates temporarily.
Resume updates anytime with kubectl rollout resume.
Always check rollout status to confirm deployment progress.
Pausing does not stop running pods, only new updates.
Ensure deployment name is correct to avoid errors.