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

k8s 回滚应用的更多相关文章

  1. k8s学习笔记(3)- kubectl高可用部署,扩容,升级,回滚springboot应用

    前言:上一篇通过rancher管理k8s,部署服务应用扩容,高可用,本篇介绍kubectl命令行部署高可用集群节点,测试升级.扩容等 1.测试环境:3节点k3s,使用其中2节点(ubuntunode1 ...

  2. linux运维、架构之路-K8s滚动更新及回滚

    一.滚动更新        应用程序一次只更新一小部分副本,更新成功后,再更新更多的副本,最终完成所有副本的更新. 滚动更新的优点:零停机,整个更新过程始终有副本在运行,从而保证了业务的连续性. 1. ...

  3. 9.2 k8s结合Jenkins与gitlab实现代码升级与回滚

    1.部署Jenkins 1.1 安装jdk # apt 安装jdk11 apt install openjdk-11-jdk # 查看 root@jenkins:~# java -version op ...

  4. k8s的回滚应用

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

  5. jenkins自动化回滚阿里云k8s应用版本

    jenkins 服务器需先保留着原先构建的不同版本的应用镜像 [root@jenkins sh]# docker images|grep "maintain" registry-v ...

  6. 阿里云k8s构建镜像时设置版本号用于版本回滚

    jenkins 构建配置参数化构建过程 构建  执行 shell  , 将版本号参数传入 脚本 脚本push  带版本号的镜像到阿里云镜像仓库 #!/bin/bash #获取参数 while geto ...

  7. k8s用kubectl管理应用升级,服务发布与回滚,扩缩容

    应用升级 Kubectl set image --help 有案例指定新版本 [root@k8s-master ~]# kubectl set image deployment/nginx nginx ...

  8. k8s deployment 金丝雀发布 更新的 暂停 恢复 回滚

    假设现在有业务需求,计划将所有的nginx 从镜像版本1.14更新到1.15,这一次发布不紧需要平滑发布,还需要 金丝雀发布,及确认其中一个Pod没有问题后在进行剩余的更新. 暂停与恢复也可以使用ym ...

  9. 9.1 k8s pod版本更新流程及命令行实现升级与回滚

    1.创建 Deployment root@k8-deploy:~/k8s-yaml/controllers/deployments# vim nginx-deployment.yaml apiVers ...

随机推荐

  1. hbase基础知识一

    1. hbase是什么 漫画学习hbase----最易懂的Hbase架构原理解析 http://developer.51cto.com/art/201904/595698.htm 1.1 hbase的 ...

  2. About me recently

    About me recently Recently I fell that memory has always been problematic.Maybe I hava bee too tired ...

  3. GoCN每日新闻(2019-11-07)

    GoCN每日新闻(2019-11-07) GoCN每日新闻(2019-11-07) 1. [译] 排序运行时间能否做到 O(n)?让 Go 语言来告诉你 https://mp.weixin.qq.co ...

  4. HTML引入外部JS文件

    <!--引入外部文件的方式--> <script type="text/javascript" src="attack.js">< ...

  5. xargs 命令教程

    转自阮一峰 http://www.ruanyifeng.com/blog/2019/08/xargs-tutorial.html 仅供个人交流学习 xargs是 Unix 系统的一个很有用的命令,但是 ...

  6. zabbix监控ESXI主机

    ESXI6.0默认SSH关闭的,打开SSH的方法如下图: SSH打开后,主机会有警报,关闭警报的方法如下图 esxcli system  snmp  set  --communities  publi ...

  7. 假如 Redis Cluster 模式用在 T-io 上

    前言   前几天在学习Redis Cluster 模式的时候,突然想到如果把它的集群模式应用在T-io上也是挺有意思的一件事情. Redis 集群简介    Redis Cluster 中有 N 台实 ...

  8. Android如何屏蔽home键和recent键

    最近在做一个项目的时候,进入一个 Activity后需要暂时屏蔽掉home键和recent键(back键可以在onKeyDown里面处理),网上找了半天,都是针对旧版本android的方法,andro ...

  9. CentOS7下NFS服务安装及配置固定端口

    CentOS7下NFS服务安装及配置 系统环境:CentOS Linux release 7.4.1708 (Core) 3.10.0-693.el7.x86_64 软件版本:nfs-utils-1. ...

  10. dlib-android

    https://travis-ci.org/tzutalin/dlib-android https://github.com/tzutalin/dlib-android-app https://git ...