kubectl rollout 是 Kubernetes 中的一个命令,用于管理资源的部署过程。该命令允许你查看部署的状态、暂停、恢复和撤回部署。
主要子命令包括:
history:查看资源的版本历史。pause:暂停部署。restart:重新启动部署。resume:恢复部署。status:查看部署的状态。undo:撤回到之前的版本。
使用场景:
- 管理 Kubernetes 的 Deployment、DaemonSet、StatefulSet 或 ReplicaSet 的部署流程。
- 查看部署的历史、状态或撤回到早前的版本。
- 在进行系统升级或故障排查时,暂停或恢复部署。
使用技巧
- 使用
kubectl rollout status命令时,可以持续观察部署的状态,直到完成或失败。 - 如果部署出现问题,你可以使用
kubectl rollout undo快速回滚到之前的版本。 - 在更新配置或镜像前,先使用
kubectl rollout pause暂停部署,这可以帮助你确保所有更改都是预期的。 - 使用
kubectl rollout history来查看部署的历史记录,包括每个版本的更改。
实际使用案例
查看 Deployment 的部署状态
代码语言:javascript复制kubectl rollout status deployment/my-deployment
查看 Deployment 的版本历史
代码语言:javascript复制kubectl rollout history deployment/my-deployment
回滚到之前的版本
首先,你可以查看历史记录来确定要回滚的版本:
代码语言:javascript复制kubectl rollout history deployment/my-deployment
然后,使用 undo 命令回滚到指定的版本(例如版本 2):
kubectl rollout undo deployment/my-deployment --to-revision=2
暂停和恢复 Deployment
暂停:
代码语言:javascript复制kubectl rollout pause deployment/my-deployment
恢复:
代码语言:javascript复制kubectl rollout resume deployment/my-deployment
重新启动 Deployment
代码语言:javascript复制kubectl rollout restart deployment/my-deployment
使用 kubectl rollout 命令,你可以更加灵活和安全地管理 Kubernetes 集群中的部署流程,确保部署的稳定性和可靠性。


