k8s~helm镜像版本永远不要用latest

栏目: IT技术 · 发布时间: 4年前

内容简介:对于容器编排工具k8s来说,你可以使用它规定的yaml格式的脚本,使用客户端kubectl来与k8s进行通讯,将你定义好的yaml部署脚本应用到k8s集群上,而这对yaml脚本一般来说都是很像的,就是说,你需要反复的使用同样结构的代码,这对于开发人员来说不是一个好的信号,所以helm出现了,它是一种模板化的部署工具,你定义好模板之后,把变量的对象放在values.yaml里就可以了。在使用helm进行部署时出现了一个问题,使用镜像时习惯的使用了latest这个版本,也就是最新版本,在使用helm进行部署时,

对于容器编排工具k8s来说,你可以使用它规定的yaml格式的脚本,使用客户端kubectl来与k8s进行通讯,将你定义好的yaml部署脚本应用到k8s集群上,而这对yaml脚本一般来说都是很像的,就是说,你需要反复的使用同样结构的代码,这对于开发人员来说不是一个好的信号,所以helm出现了,它是一种模板化的部署工具,你定义好模板之后,把变量的对象放在values.yaml里就可以了。

引起的问题

在使用helm进行部署时出现了一个问题,使用镜像时习惯的使用了latest这个版本,也就是最新版本,在使用helm进行部署时,对于相同版本号的镜像来说,它对于的pod居然没有从新编排,这个问题直接影响了整个部署的方式,在jenkins项目部署之后,还需要手动进行pod的部署,这显然是不能接受的,最后在helm里打算使用 docker 具体的镜像版本号。

使用步骤

  1. jenkins从gitlab上拉取项目源代码
  2. 编译项目,测试项目
  3. 打包项目成为镜像,镜像版本使用jenkins的TagId,它是当前任务的版本,我们可以直接用
  4. 上传镜像到私有仓库harbor里
  5. 拉取Helm Chart仓库代码,这个仓库里存储所有服务需要的Charts信息
  6. 使用sed命令将当前TagId写入Charts到values.yaml文件的对应服务镜像版本的位置,使用了yaml的锚点和引用功能
  7. 使用helm package打包你的服务
  8. 使用helm upgrade升级你的现有服务
  9. 将charts仓库的变化保存,然后提交到gitlab里
  10. 整个部署过程完毕!

sed命令小技巧

使用sed命令可以在文档中查找某些字符,并且在这些字符所在行的下一行去插入新的内容

sh """
  sed -i "/${config.imageName}-imageTag/{n;d}"  ${WORKSPACE}/charts/${config.namespace}/values.yaml        
  sed -i "/${config.imageName}-imageTag/a \\ imageTag: $config.tagId"   ${WORKSPACE}/charts/${config.namespace}/values.yaml
"""

上面代码中,我们对values.yaml里的某个服务名后缀是-imageTag的内容的下一行进行删除;并且在它的下一行插入新的内容imageTag:版本号;这一行请注意,我们使用了两个\,它是一个转义付符号,它会在imageTag前面插入一些空格。

yaml里的锚点和引用

你可以为values.yaml里添加一个引用片断,然后在values.yaml其它位置使用它们,即它类似于先定义一些内容,然后在一些位置插入它们。

hello-world-imageTag: &helloworldImageTagId
  imageTag: 1
appList:
- name: hello-world
  port: 9001
  hasVM: true
  <<: *helloworldImageTagId

上面的代码,在hasVM这行下面,就里引用我们的imageTag: 1这行的内容,而 helloworldImageTagId 是我们定义的别名,在引用的位置需要使用这个别名。

这篇文章对于正在使用jenkins,k8s部署你的微服务的同事来说,是非常不错的文章!


以上所述就是小编给大家介绍的《k8s~helm镜像版本永远不要用latest》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Head First HTML与CSS(第2版)

Head First HTML与CSS(第2版)

Elisabeth Robson、Eric Freeman / 徐阳、丁小峰 / 中国电力出版社 / 2013-9 / 98.00元

是不是已经厌倦了那些深奥的HTML书?你可能在抱怨,只有成为专家之后才能读懂那些书。那么,找一本新修订的《Head First HTML与CSS(第2版)》吧,来真正学习HTML。你可能希望学会HTML和CSS来创建你想要的Web页面,从而能与朋友、家人、粉丝和狂热的顾客更有效地交流。你还希望使用最新的HTML5标准,能够保证随时间维护和扩展你的Web页面,使它们在所有浏览器和移动设备中都能正常工......一起来看看 《Head First HTML与CSS(第2版)》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具