Kubernetes集群实践(09)滚动更新和回滚

滚动更新是一次更新一小部分,成功后再更新更多的副本,最终完成所有版本的更新,其中ECK部署ElasticSearch的时候就是这样更新的,其最大的好处就是零停机,保证业务的连续性。实际操作常用的就是修改yaml文件的image字段,设置为新的版本,操作简单,这里就不详细说明,但这个章节主要是笔记下回滚的内容。
具体操作为在编写yaml文件的时候,增加spec.revisionHistoryLimit属性,默认情况下Kubernetes指挥保留最近几个revision,而修改此属性可以增加revision的数量(一般默认的也够了)。
在执行yaml文件部署的时候带上--recored参数,例如:

kubectl apply -f traefik-deploy-v1.yaml --record

其作用就是将当前的命令记录到revision记录中,如此可以知道每个revision对应的是哪个文件。通过如下文件查看revision历史记录

kubectl rollout history daemonset traefik

其中‘daemonset'是部署traefik的类型,'CHANGE-CAUSE就是--record的结果。如果要回滚到某个版本,比如revision 4,可以执行如下命令:

kubectl rollout undo daemonset traefik --to-revision=4

建议:一定要在kubectl apply 时加上 --record参数。

猜你喜欢

转载自blog.51cto.com/huanghai/2481126
今日推荐