Rancher通过API升级服务
最近的项目基本采用容器化部署, 由 Rancher 统一编排 . 在持续过程建设中 , 由于我们代码是托管在 腾讯开发者平台 不在 Rancher 默认支持范围内 , 在持续构建过程中 , 最后一步更新服务始终只能手动去 Rancher UI 点击升级 , 甚是繁琐 .
本篇将讲述如何通过API升级服务
如若环境支持 , 使用 Rancher 自身的流水线部署其实是很方便的 , 默认支持以下几种托管仓库 .
持续构建流程
首先说一下项目目前持续集成的整体流程
1. Jenkins 参数选择构建
然后 Jenkins 会去仓库拉取代码 , 编译 , 打包镜像然后上传到私有镜像仓库
2. 更新Rancher服务
目前是在 Jenkins 构建后手动去 Rancher UI 上点击升级服务 , 比较繁琐 , 因此要将此步骤自动化 , 通过调用 Rancher API 实现.
Rancher 4个主要 API 分别是
1 | # 1.获取一个服务的详细信息 |
我们这里用到的是 1 和 4
变量参数通过 Rancher 中查询获得 , 在实践中发现, 直接拿到获取的服务信息调用 4 更新服务的接口 , 偶尔服务不会更新 , 后面发现需要将参数中的时间戳进行自增 , 方可达到立即升级的效果 .
参考链接
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Halcyon Days!