文章目录
- 1. 创建chart
- 2 chart的结构
- 2.2 charts目录
- 2.3 Chart.yaml
- 2.4 templates和yaml文件
- 2.5 values.yaml和变量的使用
- 3 检查chart和查看
- 4 chart打包和上传
- 5. chart的使用
- 6 .官方的chart
1. 创建chart
在当前目录下创建了一个叫my-hello-world的 chart。
2 chart的结构
可见chart中包含如下目录和文件
总用量 16
drwxr-x--- 4 root 93 9月 22 17:54 .
drwxrwxrwt. 11 root 4096 9月 22 18:03 ..
drwxr-x--- 2 root 6 9月 22 17:54 charts
-rw-r----- 1 root 912 9月 22 17:54 Chart.yaml
-rw-r----- 1 root 342 9月 22 17:54 .helmignore
drwxr-x--- 3 root 146 9月 22 17:54 templates
-rw-r----- 1 root 1497 9月 22 17:54 values.yaml
说明:
charts
目录: [可选],该目录中放置当前Chart依赖的其它Chart
Chart.yaml
:用于描述Chart的基本信息,包括名称版本等
templates
目录: 部署文件模版目录
values.yaml
文件: 为templates目录中的yaml文件提供变量
2.2 charts目录
说明:放置当前Chart依赖的其它Chart,如:
安装 prometheus-operator ,需要在chart目录下创建chart目录放置它依赖的expoter、grafana的chart文件
2.3 Chart.yaml
apiVersion: v1
appVersion: "1.0"
description: A Helm chart for Kubernetes
name: my-hello-world
version: 0.1.0
2.4 templates和yaml文件
存放k8s中创建对象的yaml文件
刚才的hello-world只创建了deployment和service。如果我们愿意,可以放入任何对象的yaml文件,如pv,pvc,configmap,secret等
2.5 values.yaml和变量的使用
说明:
values.yaml中的变量会被 templates中的yaml文件中自动使用。
下边是一个简单的使用示例,我们会在进阶文档中展示更多用法
- 如 values.yaml中变量定义如下:
images:ApigwIot: registry.cn-zhangjiakou.aliyuncs.com/iot-xxx/svc.apigwApigwTag: 1.1.1ConsulIot: registry.cn-zhangjiakou.aliyuncs.com/iot-xxx/consulConsulTag: latest
spec:containers:- name: iot-apigwimage: {{ .Values.images.ApigwIot }}:{{ .Values.images.ApigwTag }}imagePullPolicy: Always
3 检查chart和查看
3.1语法检查
==> Linting /root/yml/my-hello-world/
[INFO] Chart.yaml: icon is recommended
1 chart(s) linted, no failures
3.2 查看最终yaml文件
执行下边命令可显示最终yml文件。
输出结果中变量已经被替换的最终yml文件。
如果有判断也会显示最后选择的结果。
4 chart打包和上传
Successfully packaged chart and saved it to: /tmp/my-hello-world-0.1.0.tgz
说明:会在当前目录生成一个压缩包
- 上传
以后会在harbor仓库的chart库中说明
5. chart的使用
说明:
my-hello-world
为创建的Release名
test
为安装到的namespace。
6 .官方的chart
- 旧地址:
https://github.com/helm/charts - 新地址
https://artifacthub.io/