k8s的应用回滚--record

kubectl apply 每次更新应用时 Kubernetes 都会记录下当前的配置,保存为一个 revision(版次),这样就可以回滚到某个特定 revision。
默认配置下,Kubernetes 只会保留最近的几个 revision,可以在 Deployment 配置文件中通过 revisionHistoryLimit 属性增加 revision 数量。
使用也很简单,在更新的时候加上--record就可以了。

命令

记录版本
kubectl apply -f xxx.yaml --record
查看 revison
kubectl rollout history deployment $dp_name -n $namespaces
回滚
kubectl rollout undo deployment $dp_name --to-revision=1
注意:
record类似一个栈,先执行的apply会放到记录的最下端。也就是说你的上一个版本一定是2.
record记录的是apply的命令,所以如果每次执行的命令是一样的话,会覆盖掉。

实验

1、如下做三个httpd的yaml,分别为httpd.v1.yml,httpd.v2.yml 和 httpd.v3.yml,分别对应不同的 httpd 镜像 2.4.16,2.4.17 和 2.4.18:

2、通过 kubectl apply 更新应用

kubectl apply -f httpd.v1.yml --record
kubectl apply -f httpd.v2.yml --record
kubectl apply -f httpd.v3.yml --record

3、查看版本

kubectl rollout history deployment httpd

4、回滚
kubectl rollout undo deployment httpd --to-revision=1

posted @ 2020-07-24 11:49  名字很长容易被惦记  阅读(3535)  评论(0编辑  收藏  举报