美文网首页Kubernetesk8s原理
helm-charts官网索引

helm-charts官网索引

作者: 肖金光xjg | 来源:发表于2020-10-30 20:54 被阅读0次

chart编写

官网文档

图片.png

chart开发技巧和窍门: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个月发布一次版本
  • best practices: 最佳实践
    • general conventions 一般惯例
      • chart 名称必须小写字母和数字,单词可以用-隔开
      • 版本尽可能使用SemVer2表示版本号,版本号中不允许有+符号
      • 格式化yaml 两个空格缩减
      • Chart.yaml中c必须大写,
    • 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 依赖关系
    • labels and annotations 标签和注释
      • 标准标签 kubernetes特许标签列表
    • pods and podTemplates
      • image,imagepullpolicy,podtemplates
    • custom resource definitions
    • Role-based access control
  • 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 --debughelm temple --dubug 让服务器呈现模板,返回生成的清单文件
      • helm get manifest [已安装的chart name] 查看服务器上安装了哪些模板
    • text 给出指南为涉及到的内容资料地址
    • appendix: yaml techniques 介绍yaml的一些编写规则,
      • age: !!str 21 默认双引号表示str,也可!!声明值类型
    • appendix: go data types and template

相关文章

网友评论

    本文标题:helm-charts官网索引

    本文链接:https://www.haomeiwen.com/subject/sgqjvktx.html