2、helm chart基础使用

我们安装mysql的时候可以把chart包下载下来查看详情:

helm pull stable/mysql --untar

values yaml与set使用:
在这里插入图片描述

构建一个Helm Chart

helm create mychart
#Creating mychart
tree mychart/
mychart/
├── charts
├── Chart.yaml
├── templates
│   ├── deployment.yaml
│   ├── _helpers.tpl
│   ├── ingress.yaml
│   ├── NOTES.txt
│   └── service.yaml
└── values.yaml
  • Chart.yaml:用于描述这个 Chart的基本信息,包括名字、描述信息以及版本等。

  • values.yaml :用于存储 templates 目录中模板文件中用到变量的值。

  • Templates: 目录里面存放所有yaml模板文件。

  • charts:目录里存放这个chart依赖的所有子chart。

  • NOTES.txt :用于介绍Chart帮助信息, helm install 部署后展示给用户。例如:如何使用这个 Chart、列出缺省的设置等。

  • _helpers.tpl:放置模板助手的地方,可以在整个 chart 中重复使用

helm chart的基本使用

主要有三个命令:
chart install
chart update
chart rollback
创建Chart后,接下来就是将其部署:

 helm install web mychart/

查看部署的应用:

helm list

也可以打包推送的charts仓库共享别人使用。

[root@master demo]# helm package mychart/
Successfully packaged chart and saved it to: /opt/helm/demo/mychart-0.1.0.tgz

升级、回滚和删除

发布新版本的chart时,或者当您要更改发布的配置时,可以使用helm upgrade 命令。

自定义一个chart
1、我们可以先删掉chart默认的templates下面的文件:

cd templates/
rm -rf *

生成一个deployment文件

kubectl create deployment chaochart --image=nginx:1.16 -o yaml --dry-run >deployment.yaml

修改此deployment文件,将其会变化的数值改成变量

[root@master templates]# cat deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
  name: {{ .Values.name }}
spec:
  replicas: {{ .Values.replicas }}
  selector:
    matchLabels:
      app: chaochart
  strategy: {}
  template:
    metadata:
      labels:
        app: chaochart
    spec:
      containers:
      - image: {{ .Values.image }}:{{ .Values.imageTag }}
        name: nginx

更改上级定义的value.yaml,我们定义的变量,全在这里赋值

[root@master templates]# cd ..
[root@master chaochart]# cat values.yaml
name: web02
replicas: 2
image: nginx
imageTag: 1.17

创建应用:

helm install web02 chaochart/

此时我们观察

kubectl get pod -o wide

并且可以curl pod ip来确定是不是我们定义的nginx版本.
此时也可以观察实际的模板被渲染过后的资源文件:

[root@master demo]# helm get manifest web02
---
# Source: mychart/templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
  name: chao
spec:
  replicas: 2
  selector:
    matchLabels:
      app: chaochart
  strategy: {}
  template:
    metadata:
      labels:
        app: chaochart
    spec:
      containers:
      - image: nginx:1.17
        name: nginx

更新应用:
修改value.yaml中镜像版本, 我们将其改为nginx: 1.16,然后进行更新操作:

helm upgrade web02 chaochart/

回滚应用:

[root@master demo]# helm rollback web02
Rollback was a success! Happy Helming!

我们也可以查看历史版本

[root@master demo]# helm history web02
REVISION	UPDATED                 	STATUS    	CHART        	APP VERSION	DESCRIPTION
1       	Thu Jan  2 21:26:44 2020	superseded	mychart-0.1.0	1.16.0     	Install complete
2       	Thu Jan  2 22:07:34 2020	superseded	mychart-0.1.0	1.16.0     	Upgrade complete
3       	Thu Jan  2 22:13:43 2020	deployed  	mychart-0.1.0	1.16.0     	Rollback to 1

根据描述可以判断:
1版本是我们安装的版本,2版本是我们更新的版本,3版本是回滚的版本,我们也可以根据版本回滚:

helm rollback web02 2

卸载应用:

helm uninstall web02

打包一个chart

helm package chaochart
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值