devops学习(九) Helm工具--持续部署

网友投稿 754 2022-10-12

devops学习(九) Helm工具--持续部署

devops学习(九) Helm工具--持续部署

我们后续部署的程序可能包含很多个子程序,单一的yaml文件部署会让我们的启动脚本变的很繁琐,这里就直接改为使用helm去部署

一、部署helm工具

1、拉取软件包

//自己的小站101.43.4.210/helm-v3.5.1-linux-amd64.tar.gzwget -zxvf helm-v3.5.1-linux-amd64.tar.gz cp linux-amd64/helm /usr/bin/

2、查看版本

helm version

二、自定义Chart包

通常来说,我们这个Chart包是给集群master节点用的,大部分情况我们都不会频繁的修改Chart包,这里可以直接定义到master节点也可以用,这里为了演示就直接以CD的形式发送到节点上去部署

mkdir -p helm/mytest

1、指定Chart包的版本信息

vi Chart.yaml

apiVersion: v2name: mytestappVersion: "v1.0.1"version: "v1.0.1"

2、定义要使用的变量

vi values.yaml

name: "mytest"namespace: "devops"containers: name: "mytest" image: "mytest:v1.0.1" containerPort: "9999" nodePort: "30008"

3、定义Chart包中要部署的模板文件

vi templates/mytest-dev.yaml

apiVersion: apps/v1kind: Deploymentmetadata: name: {{ .Values.name }} namespace: {{ .Values.namespace }}spec: selector: matchLabels: app: {{ .Values.name }}-init template: metadata: labels: app: {{ .Values.name }}-init spec: containers: - name: {{ .Values.containers.name }} image: {{ .Values.containers.image }} ports: - name: containerPort: {{ .Values.containers.containerPort }}---apiVersion: v1kind: Servicemetadata: name: {{ .Values.name }}-svc namespace: {{ .Values.namespace }}spec: ports: - port: {{ .Values.containers.containerPort }} targetPort: nodePort: {{ .Values.containers.nodePort }} selector: app: {{ .Values.name }}-init type: NodePort

4、定义打包时要忽略的配置

vi ​​.helmignore​​

# Patterns to ignore when building packages.# This supports shell glob matching, relative path matching, and# negation (prefixed with !). Only one pattern per line..DS_Store# Common VCS dirs.git/.gitignore.bzr/.bzrignore.hg/.hgignore.svn/# Common backup files*.swp*.bak*.tmp*.orig*~# Various IDEs.project.idea/*.tmproj.vscode/

创建完之后要上传到gitlab仓库中使用

helm文档参考

helm/mytest/templates/*

2.2、指定EXEC程序

helm upgrade -i ${JOB_NAME} /usr/local/test/helm/mytest///这里helm upgrade 是代表更新的意思, -i 表示如果没有部署则会部署,如果部署了就会更新//这样一来,每次我们有变更下

如上,我们配置后直接构建V4版本会通过helm工具直接去部署/更新新的配置

2.3、添加helm指定使用镜像的版本

这里实际上就是通过修改helm的语句在更新的时候覆盖value.yaml的变量来实现的

添加覆盖的配置

helm upgrade -i ${JOB_NAME} --set containers.image=101.43.4.210:30007/repo/${JOB_NAME}:${tag} /usr/local/test/helm/mytest///我们原先value.yaml的配置是 mytest:v1.0.1//这里我们在启动的时候指定value.yaml下的镜像的变量进行覆盖使用//这个操作不会修改value.yaml的值,模板中其他变量还是用的value.yaml下的值

如此一来,我们从V4版本之后就可以通过helm快速进行版本更新了( •̀ ω •́ )y

存在的问题

1、步骤太长了,我们实现上面的步骤点了很多东西,如果那里出错了我们无法快速的排查问题 //pipline 流水线2、我们在任务中关于harbor仓库的地址是写死的,如果要修改就需要一步一步切进去很麻烦 //jenkinsfile

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:YrobotTouch,一个方便、轻量的小程序手势事件监听库
下一篇:ElasticSearch如何设置某个字段不分词浅析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~