k8s 回滚应用
2024-09-02 22:09:29
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
最新文章
- webpack练手项目之easySlide(二):代码分割(转)
- Dynamic Percentage of Operands
- Android(Xamarin)之旅(一)
- 七、Block 封装代码
- Android应用程序版本号管理(官方文档中文版)
- 红包算法思考和总结 -- by jason.zhi
- 【原】Storm基本概念
- wsdl自动生成Java代码,根据wsdl生成Java代码
- golang io需要牢记的几个点
- 【转】缓存淘汰算法系列之3——FIFO类
- HttpServletResponse ServletResponse 返回响应 设置响应头设置响应正文体 重定向 常用方法 如何重定向 响应编码 响应乱码
- [C#]关于DataDirectory的一些思考
- 缓存淘汰策略之LRU
- javascript高级选择器querySelector和querySelectorAll
- vfio
- Remove Nth Node From End of List leetcode java
- JavaScript操作XML工作记录
- 为linux扩展swap分区
- hdu-3397 Sequence operation 线段树多种标记
- JDBC—执行sql语句的通用方法
热门文章
- connect via ssh to virtualbox guest vm without knowing ip address
- Shell 变量自增实现方法
- Powershell基础学习
- Android Studio 屏幕方向以及UI界面状态的保存
- Vector与ArrayList 的理解
- nc 命令转发bash
- SpatiaLite, load spatial extension first
- tensorflow 预训练模型列表
- Eclipse中SpringBoot项目POM文件报UnKnown的解决方案
- 使用NPOI或EPPlus来导出Excel文件实例,可在Excel文件加密