kubectl rollout
管理 Deployment 的滚动更新、回滚和状态查看
语法
kubectl rollout <subcommand> <resource> [flags]
参数
| 参数 | 说明 | 示例 | 级别 |
|---|---|---|---|
status |
查看滚动更新状态 | kubectl rollout status deployment/web |
常用 |
history |
查看更新历史版本 | kubectl rollout history deployment/web |
常用 |
undo |
回滚到上一个版本 | kubectl rollout undo deployment/web |
常用 |
--to-revision |
回滚到指定版本号 | kubectl rollout undo deployment/web --to-revision=2 |
进阶 |
restart |
重启所有 Pod(触发滚动重启) | kubectl rollout restart deployment/web |
常用 |
pause |
暂停滚动更新 | kubectl rollout pause deployment/web |
进阶 |
resume |
恢复暂停的滚动更新 | kubectl rollout resume deployment/web |
进阶 |
示例
查看更新状态
kubectl rollout status deployment/web-app
等待滚动更新完成,成功返回 0
查看历史版本
kubectl rollout history deployment/web-app
显示所有修订版本号
回滚到上一版本
kubectl rollout undo deployment/web-app
发现问题时快速回滚
回滚到指定版本
kubectl rollout undo deployment/web-app --to-revision=3
先用 history 查看版本号
滚动重启
kubectl rollout restart deployment/web-app
不改配置但需要重启所有 Pod 时使用
常见错误
error: deployment does not have minimum availability
Pod 无法正常启动,检查镜像和配置是否正确
no rollout history found
Deployment 创建时未记录历史,确保 spec.revisionHistoryLimit > 0
技巧
- CI/CD 中用 rollout status 等待部署完成再进行下一步
- 回滚前用 history --revision=N 查看具体版本的配置
- rollout restart 是更新 ConfigMap 后让 Pod 重新加载配置的好方法