kubernetes 的 滚动升级和回滚(rollout)
产品部署完成上线之后,经常遇到需要升级服务的要求(只考虑更新镜像),以往操作流程大致如下:
# 方式一:找到 master具体调度到的所有目标node,删除其对应的镜像文件
# 方式二:修改 file.yaml中镜像拉取策略为Always# 删掉旧pod,并重新创建
kubectl delete -f /path/file.yaml
kubectl create -f /path/file.yaml
但是这样有一个比较棘手的问题,就是如果升级失败的回滚策略。
因此我们利用kubernetes自身的滚动升级的工具,部署及升级流程如下:
1. 在初次创建的时候,尽量加入参数 --record,这样k8s会记录下本次启动的脚本 。
# --record
kubectl create -f /path/file.yaml --record
2.执行查看发布的历史记录,会显示现在已经记录的脚本及其序号。
# 查看历史记录
kubectl rollout history deployment deploy-apigw
3.升级命令执行后会输出:xxx image updated
# 升级镜像
kubectl set image deployment/deploy-name containerName=newIMG:version# kubectl set image controllerType/controllerInstanceName underInstanceContainerName=image:version
4.查看pod状态,如果失败需要回滚操作
# 回滚到上一个操作版本
kubectl rollout undo deployment/deploy-name
# 回滚到指定版本,版本号由第二步查看获得
kubectl rollout undo deployment/deploy-name --to-revision=3
Notice:
- k8s 1.15版本,目前支持 pod (po), replicationcontroller (rc), deployment (deploy), daemonset (ds), replicaset (rs)
- 执行rollout undo操作之后,版本号会移动,需要确认版本号无误再undo
kubernetes 的 滚动升级和回滚(rollout)相关推荐
- kubectl命令使用滚动更新和回滚
这里写目录标题 Kubectl命令的使用 create get expose delete edit scale autoscale cluster-info describe logs attach ...
- Hadoop HDFS概念学习系列之HDFS升级和回滚机制(十二)
不多说,直接上干货! HDFS升级和回滚机制 作为一个大型的分布式系统,Hadoop内部实现了一套升级机制,当在一个集群上升级Hadoop时,像其他的软件升级一样,可能会有新的bug或一些会影响现有应 ...
- 基于S32K的油门踏板检测项目(基于CAN的Bootloader覆盖升级、回滚升级)
文章目录 项目概述 要求 Bootloader介绍 原理设计 功能设计 硬件设计 软件设计 主机 主机流程 Xmodem协议 代码 从机 从机流程 升级方案 区域划分 Boot链接文件修改 APP A ...
- Kubernetes pod滚动升级rolling update的一些例子,截图和命令
- Kubernetes基础:滚动升级回滚:rolling-update之rollback
上篇文章介绍了在RC中的滚动升级,这篇继续介绍RC中回滚的方式. RC滚动升级 可参看如下内容:https://liumiaocn.blog.csdn.net/article/details/1042 ...
- K8s Kubectl基础命令的使用、滚动更新、以及回滚操作
Kubectl基础命令的使用 kubernetes基本概念 kubectl管理命令 kubectl帮助 Kubectl常用命令的使用 explain edit scale autoscale clus ...
- k8s核心技术-Controller(Deployment)控制器对pod的管理实现_升级回滚和弹性伸缩---K8S_Google工作笔记0030
技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 这个应用的升级和回滚很好理解,之前咱们创建nginx的pod的时候,没有 指定版本,就默认部署的是 ...
- ARM-Linux应用程序自动升级以及自动回滚的实现
1. 研究背景 现今,许多基于arm-linux平台开发的应用程序开发都具备了物理的网卡这样的外围设备,这也是为通过网络升级应用程序提供了诸多便利,网络的便捷,快速,稳定等诸多特点.今天,我们约定应用 ...
- k8s利用deployment部署pod,以及应用更新和回滚操作
deployment部署pod,也是通过yaml文件的方式部署.deployment通过yaml文件定义需要deploy名称,需要几个pod协助运行,拉取的镜像版本等内容.一般来说一个deployme ...
- 容器CICD实践:基于Helm实现应用交付自动回滚
打造开源云计算中国第一互动社区 内容专注于Linux.Kubernetes.OpenStack.容器.Ceph.Cloud Foundry...... 导读 随着容器的落地,交付的规模和速度都在快速增 ...
最新文章
- math.hypot java_Java之Math类
- UART接口算法移植加密芯片的调试技巧——通讯调试
- html设置 header,http设置header
- 【CyberSecurityLearning 11】OSI与TCP/IP协议簇以及Packet Tracer模拟器
- 2019年第十届蓝桥杯 - 省赛 - C/C++大学B组 - H. 等差数列
- 为什么说产品经理都该懂一点机器学习?
- python随机生成20个数字_python – 生成大量唯一的随机float32数字
- 设计模式之模版方法模式demo
- leetcode904. 水果成篮(滑动窗口)
- 使用Genymotion模拟器
- 项目管理工具project软件学习(六) - 设置里程碑、任务备注
- libcurl的封装,支持同步异步请求,支持多线程下载,支持https
- openCV 中值滤波算法解析
- 如何批量导入文件夹,批量重命名
- 硅芯片拆解:早期 555 定时器芯片内部一览
- 烽火通信实习应聘经验
- ecshop模板文件说明
- 如何获取安卓手机设备名称(包括用户自定义名称)
- 2018 湘潭邀请赛 K.2018
- kafka连接mysql数据库,Kafka-connect-jdbc-source连接mysql数据库实战