Helm是Kubernetes(K8S)的包管理工具,Helm主要是用来管理Chart包,类似于Python的pip、CentOS的yum、MacOS的brew等。Helm主要有三大基本概念,分别为:
Helm也提供了一个helm命令行工具,该工具可以基于Chartb包一键创建应用,在创建应用时,可以自定义Chart配置。应用发布者可以通过Helm打包应用、管理应用依赖管理,管理应用版本、并发布应用到软件仓库。
Helm Client(helm命令)和Helm Chart包时核心,helm命令可以从Chart Repository中下载Helm Chart包,读取kubeconfig文件,并构建kube-apiserver REST API 接口的HTTP请求,通过调用K8S提供的REST API 接口,将Chart包中包含的YAML格式定义的K8S资源,在K8S集群中创建, 这些资源以Release的形式存在与K8S集群中,每个Release 又包含多个K8S资源,如Deployment、Pod、Service等。
模板文件
text/template
模板文件,提供了强大的模板渲染能力。Helm可以将配置文件中的值渲染进模板文件中,最终生成一个可以部署的K8S YAML格式的资源定义文件。配置文件
总结:
安装
1 | $ wget https://get.helm.sh/helm-v3.15.4-linux-amd64.tar.gz |
安装helm命令自动补全脚本(非必须)
1 | helm completion bash > /etc/bash_completion.d/helm |
命令 | 描述 |
---|---|
completion | 生成指定Shell的自动补全脚本,比如bash、zsh等 |
create | 创建一个 Chart 并指定名字 |
dependency | 管理 Chart 依赖 |
env | 打印Helm客户端的环境变量信息,例如HELM_CACHE_HOME、HELM_NAMESPACE、HELM_REPOSITORY_CONFIG等 |
get | 下载一个 Release。可用子命令:all、hooks、manifest、notes、values |
help | 打印helm命令的帮助信息 |
history | 获取 Release历史 |
install | 安装一个 Chart |
lint | 检查一个Chart包,并打印潜在的问题 |
list | 列出 Release |
package | 将 Chart 目录打包到 Chart 存储文件中 |
plugin | Helm插件 |
pull | 从远程仓库中下载 Chart 并解压到本地,例如helm pull stable/redis –untar |
repo | 添加(add)、列出(list)、移除(remove)、更新(update)和索引(index)Chart 仓库 |
rollback | 从之前版本回滚 |
search | 根据关键字搜索 Charts,可用子命令:hub、repo |
show | 查看 Chart 详细信息。可用子命令:all、chart、readme、values |
status | 显示已命名版本的状态 |
template | 本地呈现模板 |
test | 在 Release 中运行 Helm 中的预定义测试 |
uninstall | 卸载一个 Release |
upgrade | 更新一个 Release |
verify | 验证给定路径的Chart是否已被签名且有效 |
version | 查看 Helm 客户端版本 |