heml学习笔记

仓库的管理和维护方法请参考官网文档 https://docs.helm.sh

 

注意在YAML中有一个空行,为什么?当模板引擎运行时,它 移除了 {{ 和 }} 里面的内容,但是留下的空白完全保持原样。

YAML认为空白是有意义的,因此管理空白变得很重要。幸运的是,Helm模板有些工具可以处理此类问题。

首先,模板声明的大括号语法可以通过特殊的字符修改,并通知模板引擎取消空白。{{- (包括添加的横杠和空格)表示向左删除空白, 而 -}}表示右边的空格应该被去掉。 一定注意空格就是换行

 

 

|-标识在YAML中是指多行字符串。这在清单列表中嵌入大块数据是很有用的技术

 

命名以下划线(_)开始的文件则假定 没有 包含清单内容。这些文件不会渲染为Kubernetes对象定义,但在其他chart模板中都可用。

Helm模板中使用include而不是template被认为是更好的方式 只是为了更好地处理YAML文档的输出格式Helm模板中使用include而不是template被认为是更好的方式 只是为了更好地处理YAML文档的输出格式

mychart现在是mysubchart的 。这种关系是基于mysubchartmychart/charts中这一事实

 

 

 

  

运行 Helm 的节点也应该是可以正常使用 kubectl 命令的主机

示例:helm install minideploy_chart --name minideploy-dev --namespace quickai-dev

运行“ helm version ,,命令即可显示客户端和服务端的版本号,若两者均显示正常,则表示安装成功

Tiller 将数据存储于 ConfigMap 资源中,

更新仓库元信息:helm repo update

列出仓库中Charts的列表: helm search (helm search redis)

打印出指定的 Charts 的详细信息: helm inspect

列出已经安装生成的 Release : helm list

删除release:helm delete redis

升级或回滚应用,要分别使用“ helm upgrade 和“ helm rollback

helm install 命令支持基于多种安装源进行应用部署,这包括 Charts 仓库、本地的 Charts 压缩包 、本地 Charts 目录,甚至是指定某个 Charts 的 URL 。

修改了依赖关系后需要执行“ helm dependency update ”命令,执行后会自动下载被依赖的 Charts 至 charts/ 目录中 。

生成一个空 Charts:helm create mychart

确认修改后的 Charts 是否格式良好: helm lint

用helm install 调试运行以查看由 Charts 定义的容器化应用是否能够正确部署 : helm install --name myapp --dry run debug . /mychart set service . type =NodePort
移除命令 中的“一dry-run ”选项后再次运行命令即可完成应用的部署:

通过“ helm package 命令将其打包为 tar 格式后分享给团队 :helm package ./mychart

仓库的管理需要使用“ helm repo”命令进行,如添加仓库:helm repo add incubator http : //storage.googleapis.com/kubernetes - charts-incubator
所有可用的仓库列表 : helm repo list

使用“ helm repo update ”命令获取最新的仓库元数据信息

删除指定的仓库配置: helm repo remove <REPO_NAME>

 

==========

查看可安装的 chart: helm search

查看 Helm 仓库:helm repo list
NAME URL
stable http://ai-image.jd.com/chartrepo/chart
local http://127.0.0.1:8879/charts
Helm 安装时已经默认配置好了两个仓库:stable 和 local。stable 是官方仓库,local 是用户存放自己开发的 chart 的本地仓库。

可以通过 helm repo add 添加更多的仓库

安装 chart 也很简单,执行如下命令可以安装 MySQL:
helm install stable/mysql

显示已经部署的 release: helm list
删除 release: helm delete

查看chart的状态:helm status my

release 发布后可以执行 helm upgrade 对其升级,通过 --values 或 --set应用新的配置,如:
helm upgrade --set imageTag=5.7.15 my stable/mysql

helm history 可以查看 release 所有的版本。通过 helm rollback 可以回滚到任何版本

 

指定自己的 values 文件:
helm install --values=myvalues.yaml mysql

执行 helm create mychart 的命令创建 chart mychart

Helm 提供了 debug 的工具:helm lint 和 helm install --dry-run --debug。
helm lint 会检测 chart 的语法,报告错误以及给出建议。
如:helm lint mychart
helm install --dry-run --debug 会模拟安装 chart,并输出每个模板生成的 YAML 内容,如:
helm install --dry-run mychart --debug

Helm 采用了 Go 语言的模板来编写 chart

randAlphaNum、b64enc、quote 都是 Go 模板语言支持的函数,函数之间可以通过管道 | 连接。
{{ randAlphaNum 10 | b64enc | quote }} 的作用是首先随机产生一个长度为 10 的字符串,然后将其 base64 编码,最后两边加上双引号。


Chart 和 Release 是 Helm 预定义的对象,每个对象都有自己的属性,可以在模板中使用

Values 也是预定义的对象,代表的是 values.yaml 文件

========

有时在执行helm uninstall时有些资源不应该被卸载。Chart的开发者可以在资源中添加额外的说明避免被卸载。

kind: Secret
metadata:
  annotations:
    "helm.sh/resource-policy": keep
[...]

 

posted on 2020-08-03 18:49  我和你并没有不同  阅读(429)  评论(0编辑  收藏  举报