目录
为什么用Helm
它使Kubernetes应用程序的配置、部署和维护变得更加简单、可控和可重复。
优势 | 描述 |
---|---|
模板化配置 | Helm 将应用程序的配置参数化,并使用模板引擎将这些参数嵌入到配置文件中。这使得配置更加灵活和可重用。 |
简化部署 | Helm Charts(Helm包的描述文件)将应用程序及其所有依赖关系打包到一个单独的包中,从而简化了应用程序的部署和升级过程。 |
版本控制 | Helm 支持版本控制,在不同环境中轻松部署不同版本的应用程序。这对于开发、测试和生产环境之间的一致性非常重要。 |
集成便捷 | Helm 可与Kubernetes中的其他工具和流程集成,例如持续集成/持续部署(CI/CD)流水线。 |
可扩展性 | Helm可以 创建自定义 Charts 和插件,以满足特定的部署需求。 |
Helm是什么
简介
Helm是k8s的包管理工具,用于配置和部署复杂的应用程序、微服务和资源。
设计目标
Helm 的设计目标是使Kubernetes应用程序的配置和部署变得更加简单、可控和可重复,同时提供了一种标准的方法来管理和共享应用程序配置。
架构
Image from: https://developer.ibm.com/blogs/kubernetes-helm-3/
核心概念
核心概念 | 描述 |
---|---|
Chart | 一个 Helm 包,包含了用于部署一个应用程序的所有文件、模板和默认配置。Chart 是 Helm 的基本构建块,它可以被分享和重用。 |
Release | 表示一个特定 Chart 的实例,即一个正在运行的应用程序的部署。每个 Release 具有独立的配置和状态,允许同时部署多个相同的 Chart 的不同实例。 |
Repository | 存储 Charts 的仓库,允许用户分享和获取 Charts。Helm 社区维护了官方的 Chart 仓库,同时您也可以创建和维护自己的仓库来分享自定义的 Charts。 |
Values | 用于配置和自定义 Charts 的参数。Values 允许用户将配置值传递给模板,并可以根据不同的环境或需求进行更改,以定制化应用程序的部署。 |
如何使用
客户端命令使用
# 查看helm帮助命令
$ helm -h
The Kubernetes package manager
Common actions for Helm:
- helm search: search for charts
- helm pull: download a chart to your local directory to view
- helm install: upload the chart to Kubernetes
- helm list: list releases of charts
...
Usage:
helm [command]
Available Commands:
completion generate autocompletion scripts for the specified shell
create create a new chart with the given name
dependency manage a chart's dependencies
env helm client environment information
get download extended information of a named release
help Help about any command
history fetch release history
install install a chart
lint examine a chart for possible issues
list list releases
package package a chart directory into a chart archive
plugin install, list, or uninstall Helm plugins
pull download a chart from a repository and (optionally) unpack it in local directory
repo add, list, remove, update, and index chart repositories
rollback roll back a release to a previous revision
search search for a keyword in charts
show show information of a chart
status display the status of the named release
template locally render templates
test run tests for a release
uninstall uninstall a release
upgrade upgrade a release
verify verify that a chart at the given path has been signed and is valid
version print the client version information
Flags:
--debug enable verbose output
-h, --help help for helm
...
# 添加helm仓库
helm repo add --username $HELM_REPO_USERNAME --password $HELM_REPO_PASSWORD helm_publish_test $HELM_REPO_ADDR
# 更新本地repo信息
helm repo update
# 推送chart包
curl -F "chart=nginx" -u $HELM_REPO_USERNAME:$HELM_REPO_PASSWORD $HELM_REPO_PUSH_DIR
# 安装chart包
helm install myapp helm_publish_test/<PACKAGE_NAME>
# 创建chart包
helm create mychart
# 搜索chart包
helm search repo nginx
# 列出chart包的所有版本
helm search repo bcs-webhook-server -l --devel # 包含开发包
# 查看release情况,-v 9用于打印调试日志信息(包含具体的API调用情况)
helm list -v 9
# 拉取chart包到本地
helm pull bitnami/nginx
# 查看本地或仓库中chart包的信息
helm show all bitnami/nginx | less
# 查看chart模版渲染后的内容
helm template my-release ./my-chart --values my-values.yaml
# 查看chart release
helm ls
# 获取已安装chart release的信息
helm get all my-nginx|less
# 打包chart,指定版本
helm package mychart --version 3.10.5
# 安装chart包
helm install -f nginx_values.yaml helm_publish_test/nginx
标签:nginx,实践,应用程序,chart,Helm,helm,原理,release
From: https://www.cnblogs.com/fireyun/p/18377065