Mychart的部署以及升级和回滚

  • 1 部署mychart应用
  • 2 版本升级
  • 3 版本回滚


1 部署mychart应用

(1)创建helm包:helm create mychart

  • 编辑文件:vim mychart/values.yaml,app的版本v1

如何把helm chart上传的harbor helm更新chart_编辑文件

(2)编辑文件:vim mychart/Chart.yaml,app的版本v1

如何把helm chart上传的harbor helm更新chart_上传_02

(2)安装helm-push插

  • 获取插件目录: helm env
  • 创建push插件的目录: mkdir /root/.local/share/helm/plugins/push -p
  • 解压helm-push插件到指定目录:
tar zxf helm-push_0.9.0_linux_amd64.tar.gz -C   /root/.local/share/helm/plugins/push
  • 查看插件是否安装成功:helm push

如何把helm chart上传的harbor helm更新chart_编辑文件_03


(3)将helm包上传仓库

  • 将仓库证书复制到本地的认证目录:
cp /etc/docker/certs.d/reg.westos.org/ca.crt  /etc/pki/ca-trust/source/anchors/
  • 更新证书:update-ca-trust
  • 添加本地仓库:helm repo add westos https://reg.westos.org/chartrepo/chart

如何把helm chart上传的harbor helm更新chart_编辑文件_04

  • 将helm包上传至westos仓库:
helm  push mychart-0.1.0.tgz westos --insecure -u admin -p westos

如何把helm chart上传的harbor helm更新chart_上传_05

  • helm包上传成功

如何把helm chart上传的harbor helm更新chart_vim_06

  • 更新本机的仓库缓存:helm repo update
  • 在本地仓库查找mychart包:helm search repo mychart

如何把helm chart上传的harbor helm更新chart_vim_07

(3)部署mychart应用到k8s集群:

helm install demo mychart-0.1.0.tgz

如何把helm chart上传的harbor helm更新chart_上传_08

  • 查看部署参数:helm show values westos/mychart

如何把helm chart上传的harbor helm更新chart_编辑文件_09

  • 测试:
kubectl get all
kubectl get svc
curl 10.110.140.56/hostname.html

如何把helm chart上传的harbor helm更新chart_上传_10

2 版本升级

(1)通过--set的方式升级

helm upgrade demo mychart-0.1.0.tgz  --set replicaCount=2
##  副本的数量2

如何把helm chart上传的harbor helm更新chart_上传_11

  • 测试:部署后有两个pod副本
kubectl get all
curl  10.110.140.56/hostname.html

如何把helm chart上传的harbor helm更新chart_上传_12

  • 升级helm包mychart-0.1.0.tgz,副本数量为2,镜像的版本v2
helm upgrade demo mychart-0.1.0.tgz  --set replicaCount=2,image.tag=v2

如何把helm chart上传的harbor helm更新chart_上传_13

  • 测试:
kubectl get svc
curl 10.110.140.56/hostname.html

如何把helm chart上传的harbor helm更新chart_vim_14

  • 查看demo的历史版本:helm history demo

如何把helm chart上传的harbor helm更新chart_vim_15

(2)通过修改应用文件的方式升级

  • 编辑文件:vim mychart/values.yaml,修改副本的数目和镜像的版本

如何把helm chart上传的harbor helm更新chart_编辑文件_16

  • 开启ingress的服务方式,dns的域名为demo.westos.org

如何把helm chart上传的harbor helm更新chart_vim_17

  • 编辑文件:vim mychart/Chart.yaml,应用的版本0.2.0,app的版本为v2

如何把helm chart上传的harbor helm更新chart_编辑文件_18

  • 将修改后的文件打包:
helm package mychart
  • 上传helm包到westos仓库:
helm push mychart-0.2.0.tgz westos --insecure -u admin -p westos

如何把helm chart上传的harbor helm更新chart_上传_19

  • 更新本地的helm仓库资源:helm repo update
  • 列出本地仓库中mychart的helm包:
helm search repo mychart -l

如何把helm chart上传的harbor helm更新chart_vim_20

  • 升级:helm upgrade demo westos/mychart,默认更新为westos本地仓库的最新版本

如何把helm chart上传的harbor helm更新chart_上传_21

  • 查看ingress-nginx命名空间服务的信息,外部访问的ip172.25.12.102

如何把helm chart上传的harbor helm更新chart_编辑文件_22

  • 查看pod的信息:

如何把helm chart上传的harbor helm更新chart_编辑文件_23

测试:

  • 编辑真机的dns解析文件:vim /etc/hosts

如何把helm chart上传的harbor helm更新chart_vim_24

  • 测试:curl demo.westos.org/hostname.html

如何把helm chart上传的harbor helm更新chart_编辑文件_25

  • 查看demo的历史版本:helm history demo

如何把helm chart上传的harbor helm更新chart_vim_26

3 版本回滚

  • 回滚到1版本:helm rollback demo 1
  • 测试:

如何把helm chart上传的harbor helm更新chart_vim_27

  • 查看demo的历史版本: helm history demo

如何把helm chart上传的harbor helm更新chart_编辑文件_28