kubectl apply 每次更新应用时 Kubernetes 都会记录下当前的配置,保存为一个 revision(版次),这样就可以回滚到某个特定 revision。

滚动更新是一次只更新一小部分,成功后再更新更多的副本,最终完成所有副本的更新。滚动更新最大的好处是零停机,整个更新过程始终有副本在运行,从而保证业务的连续性。

在Deployment 配置文件中通过revisionHistoryLimit 属性配置revison数量

下面实践回滚功

三个配置文件  httpd.v1.ym,httpd.v2.yml, httpd.v3.yml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: httpd
annotations:
kubernetes.io/change-cause: "httpd.v1" #记录到revision中的内容
spec:
revisionHistoryLimit: 10 #保留最近10个revision
replicas: 2
template:
metadata:
labels:
run: httpd
spec:
containers:
- name: httpd
image: httpd
ports:
- containerPort: 80
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: httpd
annotations:
kubernetes.io/change-cause: "httpd.v2"
spec:
revisionHistoryLimit: 10
replicas: 2
template:
metadata:
labels:
run: httpd
spec:
containers:
- name: httpd
image: httpd:
ports:
- containerPort: 80
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: httpd
annotations:
kubernetes.io/change-cause: "httpd.v3" #记录到revision中的内容
spec:
revisionHistoryLimit: 10 #保留最近10个revision
replicas: 2
template:
metadata:
labels:
run: httpd
spec:
containers:
- name: httpd
image: httpd:2.4
ports:
- containerPort: 80

更新应用

--record 的作用是将当前命令记录到 revision 记录中,这样我们就可以知道每个 revison 对应的是哪个配置文件。

不想在命令行加的话就要在配置文件中添加

 annotations:
kubernetes.io/change-cause: "httpd.v3" #记录到revision中的内容

通过 kubectl rollout history deployment httpd 查看 revison 历史记录。

CHANGE-CAUSE 就是 --record 的结果。

如果要回滚到某个版本,比如 revision 1,可以执行命令 :

kubectl rollout undo deployment httpd --to-revision=1

通过查看历史 revision 由3版本变成4版本 ,其实这个4版本对应的就是之前的1版本

参考

https://www.cnblogs.com/benjamin77/p/9936543.html

最新文章

  1. webpack练手项目之easySlide(二):代码分割(转)
  2. Dynamic Percentage of Operands
  3. Android(Xamarin)之旅(一)
  4. 七、Block 封装代码
  5. Android应用程序版本号管理(官方文档中文版)
  6. 红包算法思考和总结 -- by jason.zhi
  7. 【原】Storm基本概念
  8. wsdl自动生成Java代码,根据wsdl生成Java代码
  9. golang io需要牢记的几个点
  10. 【转】缓存淘汰算法系列之3——FIFO类
  11. HttpServletResponse ServletResponse 返回响应 设置响应头设置响应正文体 重定向 常用方法 如何重定向 响应编码 响应乱码
  12. [C#]关于DataDirectory的一些思考
  13. 缓存淘汰策略之LRU
  14. javascript高级选择器querySelector和querySelectorAll
  15. vfio
  16. Remove Nth Node From End of List leetcode java
  17. JavaScript操作XML工作记录
  18. 为linux扩展swap分区
  19. hdu-3397 Sequence operation 线段树多种标记
  20. JDBC—执行sql语句的通用方法

热门文章

  1. connect via ssh to virtualbox guest vm without knowing ip address
  2. Shell 变量自增实现方法
  3. Powershell基础学习
  4. Android Studio 屏幕方向以及UI界面状态的保存
  5. Vector与ArrayList 的理解
  6. nc 命令转发bash
  7. SpatiaLite, load spatial extension first
  8. tensorflow 预训练模型列表
  9. Eclipse中SpringBoot项目POM文件报UnKnown的解决方案
  10. 使用NPOI或EPPlus来导出Excel文件实例,可在Excel文件加密