jenkins自动化回滚阿里云k8s应用版本
jenkins 服务器需先保留着原先构建的不同版本的应用镜像
[root@jenkins sh]# docker images|grep "maintain"
registry-vpc.cn-hangzhou.aliyuncs.com/******-ui-maintain 20190719 849ed46fa462 31 minutes ago 293 MB
registry-vpc.cn-hangzhou.aliyuncs.com/*******-ui-maintain latest 849ed46fa462 31 minutes ago 293 MB
d*****-maintain latest 849ed46fa462 31 minutes ago 293 MB
registry-vpc.cn-hangzhou.aliyuncs.com/******-ui-maintain 3.0.1 e2b4887b3db4 2 weeks ago 293 MB
registry-vpc.cn-hangzhou.aliyuncs.com/******-maintain 2.0.1 af427b4858d3 2 weeks ago 293 MB
registry-vpc.cn-hangzhou.aliyuncs.com/******-maintain 1.0.1 79bba8b2c438 2 weeks ago 293 MB
registry-vpc.cn-hangzhou.aliyuncs.com/********-maintain <none> 5055d71b89ef 2 weeks ago 293 MB
jenkins 构建配置参数化构建过程

配置下自定义的工作空间

无需源码管理

构建 执行 shell , 将版本号参数传入 脚本

脚本 重新tag 自定义的版本号到镜像的latest , 再push 本地的latest到远程的阿里云镜像仓库
#!/bin/bash #获取参数
while getopts "n:" opt; do
case $opt in
n)
version=$OPTARG
;;
\?)
;;
esac
done source /etc/profile sudo docker tag registry-vpc.cn-hangzhou.aliyuncs.com/z*****m/da*****-ui-maintain:$version d*****e-ui-maintain sudo docker login --username=***** -p Z*******dk registry-vpc.cn-hangzhou.aliyuncs.com sudo docker tag d*****e-ui-maintain registry-vpc.cn-hangzhou.aliyuncs.com/z*****em/d*****e-ui-maintain sudo docker push registry-vpc.cn-hangzhou.aliyuncs.com/z******m/d****e-ui-maintain curl https://cs.console.aliyun.com/hook/trigger?*******WfQv3D0 if [ $? -eq 0 ]; then
echo -e "\033[32m[ the application d*****e-ui-maintain successfully Rollbacked ]\033[0m" else
echo -e "\033[31m\033[01m[ the application d*****e-ui-maintain Rollback failed ]\033[0m" fi
执行回滚构建操作

回滚构建后 web 恢复到相应的版本

查看 jenkins 服务器 images 信息 , 本地镜像latest 的image id 跟 2.0.1 tag的是一致的
[root@jenkins sh]# docker images|grep "maintain"
registry-vpc.cn-hangzhou.aliyuncs.com/******-ui-maintain 20190719 849ed46fa462 51 minutes ago 293 MB
registry-vpc.cn-hangzhou.aliyuncs.com/*******-ui-maintain 3.0.1 e2b4887b3db4 2 weeks ago 293 MB
registry-vpc.cn-hangzhou.aliyuncs.com/*****-ui-maintain 2.0.1 af427b4858d3 2 weeks ago 293 MB
registry-vpc.cn-hangzhou.aliyuncs.com/******-ui-maintain latest af427b4858d3 2 weeks ago 293 MB
dataline-ui-maintain latest af427b4858d3 2 weeks ago 293 MB
registry-vpc.cn-hangzhou.aliyuncs.com/*****-ui-maintain 1.0.1 79bba8b2c438 2 weeks ago 293 MB
registry-vpc.cn-hangzhou.aliyuncs.com/*****-ui-maintain <none> 5055d71b89ef 2 weeks ago 293 MB
第二种方式:
如果阿里云镜像仓库已经保存了 应用各个版本的镜像版本

参数化构建传入tag 版本号

用 kubectl set image 命令 更新原先版本镜像的应用 , 实现版本的回滚功能
jenkins自动化回滚阿里云k8s应用版本的更多相关文章
- 阿里云k8s应用最新日志采集不到的问题
问题描述: 阿里云k8s应用日志之前一直都是可以正常的采集, 先出现一问题, 通过kibana 和阿里云的日志服务都没法展示最新的k8s应用的日志, 部分应用的最新日志有被采集到,但大部分应用日志没有 ...
- 使用Gitlab-CI 实现NetCore项目Docker化并部署到阿里云K8S
使用Gitlab-CI 实现NetCore项目Docker化并部署到阿里云K8S 先行条件: 1.了解NetCore项目基础命令,如dotnet publish 等几个常用命令. 2.了解Dock ...
- 朱晔和你聊Spring系列S1E11:小测Spring Cloud Kubernetes @ 阿里云K8S
有关Spring Cloud Kubernates(以下简称SCK)详见https://github.com/spring-cloud/spring-cloud-kubernetes,在本文中我们主要 ...
- 阿里云k8s部署zookeeper集群
1. 阿里云k8s创建有状态应用 StatefulSet , 选择使用模板创建 可以创建自定义模板 apiVersion: apps/v1 kind: StatefulSet metadata: c ...
- 阿里云K8S下玩.NET CORE 3.1
1. 创建阿里云K8S集群,本文以标准托管集群为例 1.1 创建一个 2台 centos 2core 4G的 k8s 集群 1.2 创建成功的模样 2. 创建 asp.net core webapi项 ...
- 阿里云k8s构建镜像时设置版本号用于版本回滚
jenkins 构建配置参数化构建过程 构建 执行 shell , 将版本号参数传入 脚本 脚本push 带版本号的镜像到阿里云镜像仓库 #!/bin/bash #获取参数 while geto ...
- 自动化部署-Jenkins备份回滚
1.备份 备份可以使用批处理命令解决,实际就是复制当前发布文件 ::备份文件夹名,使用当前时间 set foldername=%date:~0,4%%date:~5,2%%date:~8,2%%tim ...
- 阿里云k8s服务springboot项目应用升级时出现502错误
背景 随着小步快跑.快速迭代的开发模式被越来越多的互联网企业认同和采用,应用的变更.升级频率变得越来越频繁.为了应对不同的升级需求,保证升级过程平稳顺利地进行,诞生了一系列的部署发布模式. 停机发布 ...
- Jenkins发布回滚方案
Jenkins回滚可以通过每次发布从主干打tag,然后发布的时候发tag,比如tag, v1, v2,v3 如果我发布了v3,想要回滚回v2,直接在Jenkins中选择v2的tag地址重新构建就可以回 ...
随机推荐
- 树莓派安装C#运行环境
一. 安装mono ARMv6(一代 Raspberry Pi B+) : http://yunpan.cn/cw6NYzXkD9kHq 访问密码 63ae ARMv7(二代 Raspberry Pi ...
- Mybatis框架-Delete节点元素的使用
这个就也比较简单,需求:将我们最新插入的那条数据删除掉,从用户表中. UserMapper.xml UserMapper.java 编写测试方法: @Test public void testDele ...
- 转发: JS中的call()和apply()方法和区别 --小白变色记
一.方法定义: apply:调用一个对象的一个方法,用另一个对象替换当前对象.例如:B.apply(A, arguments);即A对象应用B对象的方法. call:调用一个对象的一个方法,用另一个对 ...
- php+tcpdf如何把生成的pdf文件保存在服务端
tcpdf组件目前应用得非常广泛,但是对于如何把生成的pdf文件自动保存在服务端却很少有人提及.让我们先来看看标准输出代码: //服务器存档模式 $pdf->Output('output.p ...
- shell脚本 mysql主从
#!/bin/bash systemctl stop firewalld setenforce user="tom" password=" slave_ipaddr=&q ...
- WinDbg常用命令系列---显示加载的模块列表lm
lm (List Loaded Modules) lm命令显示指定的加载模块.输出包括模块的状态和路径. lmOptions [a Address] [m Pattern | M Pattern] 参 ...
- 使用for循环签到嵌套制作直角三角形
注意代码的运行顺序: for(i = 0 ; i<9 ; i++){ for(j = 0 ; j<i-1 ; j++){ document.write("*")//** ...
- fake_useragent 本地运行各种报错解决办法
- 1、kafka概述
一.关于消息队列 消息队列是一种应用间的通信方式,消息就是是指在应用之间传送的数据,它也是进程通信的一种重要的方式. 1.消息队列的基本架构 producer:消息生产者. broker:消息处理中心 ...
- P1099 树网的核——模拟+树形结构
P1099 树网的核 无根树,在直径上找到一条长度不超过s的路径,使得最远的点距离这条路径的距离最短: 首先两遍dfs找到直径(第二次找的时候一定要吧father[]清零) 在找到的直径下枚举长度不超 ...