chart编写
图片.pngchart开发技巧和窍门:https://helm.sh/docs/howto/charts_tips_and_tricks/
注册中心:https://helm.sh/zh/docs/topics/registries/
内置对象: https://helm.sh/zh/docs/chart_template_guide/builtin_objects/
chart管理
创建
helm create chartapp
helm create --starter mychart
指定入门chart
打包
helm package chartapp
查看 chart信息
helm lint chartapp
下载char
helm pull chartrepo/chartname
查看helm 发现名称 上传到kubernetes的所有资源
helm get manifest full-coral
测试模板渲染而又没有真正安装任何东西,编写chart时,调试看模板渲染后的效果,不做真正的部署处理
helm install --debug --dry-run goodly-guppy ./mychart
处理yaml缩减的方式
方式1, -
去头去尾的空格,注意也包括换行符 {{- .values.test }}
方式2,使用缩减函数实现 {{ indent 4 $lots_of_text }}
在模块中定义变量等类似没有输出操作的行时,用{{- test := .values.test -}}
在希望当前输出行同上一行同一缩进时,用{{- $test }}
官网文档内容索引
- topics: 主题:介绍chart
- charts 介绍charts
- chart的目录结构
- 多chart的依赖
- 预定义的变量
- charts Hooks 在安装,更新,回滚,创建,删除等等时,在操作前后,设置chart拉钩处理动作
- charts test
helm install quirky-walrus wordpress --namespace default
helm test quirky-walrus
测试已安装chats POD的运行情况 - library charts 创建charts的简单步骤
- Helm provenance and integrity helm出处和完整性 验证helm charts完整性方式介绍
- the chart repository guide chart存储仓库指南,说明仓库文件目录结构,打包chart,生成新的index文件,把新的chart加入到现有的chart仓库中。
-
helm repo index --help
构建仓库索引相关参数
-
- registries 注册 helm3开始之初OCI进行远程分发,通用支持helm的docker镜像仓库,目前是实验性功能
- helm architecture helm架构
- helm 目的 用于管理kubernetes软件包工具
- 组件
- 客户端:本地helm开发,管理存储库,管理发布,与helm库节点对接
- helm库:执行所有helm操作逻辑,与kubernetes API连接,结合helm配置已经构建发布,按应用安装到kubernetes并提供后续发行,通过与k8s交换来升级和卸载应用
- advanced helm techniques 先进的Helm技术 提供GO通过SDK开发示范
- kubernetes distribution guide k8s发行指南,介绍怎样同各种不同部署方式的k8s结合
- role-based access control k8s 角色访问控制介绍
- the helm plugins guide helm插件指南 介绍插件安装,组成,helm环境变量,自动补全
- migrating helm V2 to V3 helm从V2迁移到V3的改变,
- deprecated kubernetes APIs 不推荐使用的k8s API;不要使用apiVersion: apps/v1beta1,更新发布清单的api版本
- helm version support policy helm与k8s的版本支持政策,n-3策略,3版本对应k8s 1.16.2,那么共支持1.16-1.13的k8s
- permissions management for sql storage backend SQL存储后端的权限管理;默认helm是利用k8s的RBAC功能;使用sql存储后端时,不能与k8s的角色累确定用户是否可以访问给定的资源。
- release schedule policy 发布时间政策,同k8s一样,每4个月发布一次版本
- charts 介绍charts
- best practices: 最佳实践
- general conventions 一般惯例
- chart 名称必须小写字母和数字,单词可以用
-
隔开 - 版本尽可能使用SemVer2表示版本号,版本号中不允许有
+
符号 - 格式化yaml 两个空格缩减
- Chart.yaml中c必须大写,
- chart 名称必须小写字母和数字,单词可以用
- values 值 values.yaml
- 变量名称必须小写字母开头,字词应该已驼峰分隔
- 建议使用平面方式定义变量,如果有大量一类变量时,嵌套定义变量,提供可读性
- 类型转换, foo: !!string 123 (强制为字符串类型),如果双引号,也是字符串类型,引用时, {{ int $value }}转换为int型
- values.yaml的值可以通过 helm install -f 或者 --set 覆盖
- values.yaml中的每个变量前面,添加描述信息
- templates 模板
- .yaml文件产生YAML输出,.tlp用于其他模板文件,模板名称用-分隔单词,不使用驼峰格式,模板名称应在名称中放映资源种类
- 定义模板名称 {{- define "nginx.fullname" }}{{/* ... */}}{{ end -}}
- 格式化模板,两个空格缩进,左右括号前有空格,注意缩进{{- print "foo" -}}
- 模板中空行尽量保证最小,可加逻辑部分之间的空行,增加可读性
- yaml模板注释,#开头, 多行注释 {{- /* test */ -}}
- yaml模板中可以使用json数据
- dependencies 依赖关系
- 版本号: version: -1.2.3 semver版本规范
- 存储库地址
https://
file://
- labels and annotations 标签和注释
- 标准标签 kubernetes特许标签列表
- pods and podTemplates
- image,imagepullpolicy,podtemplates
- custom resource definitions
- Role-based access control
- general conventions 一般惯例
- chart template guide: chart模板指南,介绍模板相关内容,使用值,使用模板技巧
- getting started: 入门
- build-in objects 内建对象
- values files 值文件
- template function and piplines 模板函数和管道
- template function list 模板函数列表
- flow contral 流控制
- variables 变量
- named templates 命名模板:
-
define
定义命名模板,template
,include
引用; -
include
支持管道,能动态引用模板(变量);template 只能接收字符串; - 在模板有多行需要缩进时,只能用
include
,
-
- accessing files inside templates 访问模板中的文件 chart必须小于1M,
{{ .Files.Get . }}
,{{ .Files.Glob "bar/*" }}
,{{ .Files.Get "config.toml" |b64enc }}
- creating A NOTES.txt file 建NOTES.txt文件,在helm install/upgrade时,为用户打印有用信息,推荐构建此文件,
- subsharts and global values
- 子chart是独立的,不能访问父级的值;父chart能覆盖子chart的值;
- chart有全局变量概念;在父chart/values.yaml中定义子chart名称字段,字段里面的值会被传递或覆盖子chart
- .values.global.testvalue 定义全局变量
- the .Helmignore file 指定不想在helm中包含的文件,如果.Helmignore中指定文件存在,在helm package 打包命令时会忽略匹配的所有文件
- debugging templates 测试模板
-
helm lint
验证chart是否遵循最佳做法 -
helm install --dry-run --debug
或helm temple --dubug
让服务器呈现模板,返回生成的清单文件 -
helm get manifest [已安装的chart name]
查看服务器上安装了哪些模板
-
- text 给出指南为涉及到的内容资料地址
- appendix: yaml techniques 介绍yaml的一些编写规则,
-
age: !!str 21
默认双引号表示str,也可!!
声明值类型
-
- appendix: go data types and template
网友评论