Kubernetes回滚应用之kubectl rollout
kubernetes 每次更新资源会记录资源的历史版本, 方便我们进行回滚操作。真的 k8s 解决了很多运维的痛点问题, 想起来以前没有用 k8s 的时候,用 jenkins 和 ansible 来做的发布和回滚…
查看历史版本
1 | kubectl rollout history deployment nfs-client-provisioner |
这里列出的就是版本, 为什么没有 3, 因为从版本 4 回滚到了版本 3, 则版本 3 就变成了版本 5
查看指定版本详情
1 | kubectl rollout history deployment nfs-client-provisioner --revision=4 |
也可以以 yaml 格式输出
1 | kubectl rollout history deployment nfs-client-provisioner --revision=4 -o yaml |
回滚到指定版本
1 | kubectl rollout undo deployment nfs-client-provisioner --to-revision=4 |
回滚到上一个版本可以不用增加
--to-revision=4
参数, 默认就是回滚上一个版本
记录版本变化
执行命令记录变化
在第一步查看历史版本, CHANGE-CAUSE 显示的是 none, 如果需要记录 kubectl 执行的命令,则执行命令的时候需要添加参数
1 | kubectl set image deployment/nginx-deployment nginx=nginx:1.16.1 --record=true |
这样就会把当前的命令记录到版本的 CHANGE-CAUSE 这一栏
设置历史版本数量
在 yml 文件里面可以设置历史版本的数量, 比如:
1 | apiVersion: apps/v1 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 杂烩饭!
评论