引用案例:
学习连接: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: NodePortports:- 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实例:
[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实例
方法一: 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)
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的实力历史
helm history release实例名 示例: helm history nginx-release