helm学习
引用案例:
学习连接:https://www.bilibili.com/video/BV12D4y1Y7Z7/?p=7&vd_source=e03131cedc959fdee0d1ea092e73fb24 (时间:06:16)
helm新建一个chart,然后删除templates里面的文件,重新编写一个,最后完成发布,更新,回滚动作
1,创建一个模版的chart包,删除原来的内容,自定义成我们的需要的内容,后面我们自定义部署的yanm文件
heml create nginx-chart
cd nginx-chart
>values.yaml #清空所有默认定义的变量,后面我们根据需要自定义
rm -rf templates/* #删除原来所有默认的部署yaml文件,后面我们根据需要自定义
2,自定义的模版yaml文件

cat templates/nginx-deploy-service.yaml apiVersion: apps/v1 kind: Deployment metadata: name: {{ .Values.deployment_name }} spec: replicas: {{ .Values.replicas }} selector: matchLabels: app: {{ .Values.pod_label }} template: metadata: labels: app: {{ .Values.pod_label }} spec: containers: - name: {{ .Values.container_name }} image: "{{ .Values.image }}:{{.Values.imageTag }}" ports: - containerPort: {{ .Values.containerport }} --- apiVersion: v1 kind: Service metadata: name: {{ .Values.service_name }} namespace: {{ .Values.namespace }} spec: type: NodePort ports: - port: {{ .Values.port }} targetPort: {{ .Values.targetport}} nodePort: {{ .Values.nodeport }} selector: app: {{ .Values.pod_label }}

cat values.yaml deployment_name: nginx-deployment replicas: 2 pod_label: nginx-pod-label image: nginx imageTag: 1.17 container_name: nginx-container service_name: nginx-service namespace: default port: 80 targetport: 80 containerport: 80 nodeport: 30001
3 ##安装(新建)releae实例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | [root@master test]# helm install nginx-release ./nginx-chart/ NAME: nginx-release LAST DEPLOYED: Fri Oct 4 09:09:10 2024 NAMESPACE: default STATUS: deployed REVISION: 1 TEST SUITE: None 查看实例启动情况 helm list kubectl get pods 查看svc kubectl get pod,svc,ep ep是service后端匹配的pod的地址 浏览器访问通过nodeport映射出来的服务 比如我的地址是: http: //192.168.17.102:30001/ 查看并确认pod运行的版本 kubectl get pod nginx-deployment-5c8469b67f-cq959 -o yaml|grep image 输出结果包含: image: nginx:1.17 模拟修改代码,对版本进行升级 修改values.yml文件中的版本号 imageTag: 1.20.0 查看helm有哪些release helm release |
4. ## 升级release实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 方法一: helm upgrade release实例名 chart名 -- set imageTag=1.19 #通过传递命令的方式进行升级,指定release名和chart名进行相关 set 设置的升级 方法二: helm upgrade release实例名 chart名 -f /../mychart/values.yaml #通过指定yaml文件的方式进行升级,指定release名和chart名,相关的values.yaml文件进行升级 更新release实例 helm upgrade nginx-release nginx-chart -f nginx-chart/values.yaml Release "nginx-release" has been upgraded. Happy Helming! NAME: nginx-release LAST DEPLOYED: Fri Oct 4 10:37:11 2024 NAMESPACE: default STATUS: deployed REVISION: 2 TEST SUITE: None 更新以后显示版本变化的有两个地方,上面的REVISION会变化,还有就是pod适用的镜像的版本也会变化 查看重新生成的pod名称 kubectl get pods 查看pod的image kubectl get pod nginx-deployment-7dd78bf775-tz5mb -o yaml|grep image 输出结果包含: image: nginx:1.20.0 |
5. ##回滚release实例版本(将nginx的版本1.20.0回滚为1.17)
1 2 3 4 5 6 7 8 9 10 11 12 | helm rollback release实例名 #指定release实例名,回滚到上一个版本 helm rollback release实例名 版本号 #注意版本号是release的版本号,不是镜像版本号 回滚后查看 helm list release的版本是一个阿拉伯数字,不管是升级还是回滚,一直都是递增的 查看重新生成的pod名称 kubectl get pods 查看pod的image kubectl get pod nginx-deployment-7dd78bf775-tz5mb -o yaml|grep image 输出的结果是版本回滚到了1.17 image: nginx:1.17 |
6. ##获取release的实力历史
1 2 3 | helm history release实例名 示例: helm history nginx-release |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律