helm
-
传统部署需要维护大量的 yaml 文件,且 yaml 文件中的参数需要手动修改。而且不方便管理应用的版本。Helms 是 kubernetes 的包管理工具,用于简化 kubernetes 应用的部署和管理。
-
helm: 一个命令行工具,用于创建和管理 chart。
-
Chart:用于创建 kubernetes 应用的模板,包含一组相关的资源定义文件。包括 Kubernetes 资源定义文件、默认参数定义文件、依赖定义文件、模板定义文件。chart 是应用部署的自包含逻辑单元。
-
Release:chart 的一个实例,chart 在 kubernetes 集群中运行的一个实例。release 包含了 chart 的版本、配置信息、状态信息等。

command
-
add repository: 添加 chart 仓库。
helm repo add stable https://charts.helm.sh/stable -
search repository: 搜索 chart 仓库。
helm search repo <chart_name> -
install chart: 安装 chart。
helm install <release_name> <chart_name> -
list release: 列出 release。
helm list -
upgrade release: 升级 release。
helm upgrade <release_name> <chart_name> -
rollback release: 回滚 release。
helm rollback <release_name> <revision> -
delete release: 删除 release。
helm delete <release_name> -
package chart: 打包 chart。
helm package <chart_name> -
install chart from package: 从本地安装 chart。
helm install <release_name> <chart_name>.tgz -
inspect chart: 查看 chart 的详细信息。
helm inspect chart_name -
status release: 查看 release 的状态。
helm status <release_name> -
create chart: 创建 chart。
helm create <chart_name> -
template chart: 生成 yaml 文件。
helm template <chart_name>
structure
- Chart.yaml: chart 的描述文件,包含 chart 的名称、版本、描述、依赖等信息。
- values.yaml: chart 的默认参数文件,包含 chart 的默认参数。
- templates: chart 的模板文件,包含 kubernetes 资源定义文件、默认参数定义文件、依赖定义文件、模板定义文件。
- 使用 helm 部署好后可以修改 service 的 type 为 LoadBalancer,然后通过
kubectl get svc查看外部 IP。 - template 中的
\{\{ .Release.Name \}\}表示 release 的名称。使用\{\{ .Values.xxx \}\}表示 values.yaml 中的参数。