helm的使用
Helm 是 Kubernetes 的包管理工具,类似于 Linux 系统中的 APT、YUM 或 Homebrew。它用于简化 Kubernetes 应用的部署、管理和升级。Helm 通过 Chart(一种打包格式)来定义、安装和升级 Kubernetes 应用。
核心概念
-
Chart
Helm 的打包格式,包含部署 Kubernetes 应用所需的所有资源定义(如 Deployment、Service、ConfigMap 等)。 类似于 Linux 系统中的软件包(如 .deb 或 .rpm)。 -
Repository
Chart 的存储库,类似于软件包仓库。可以从公共或私有的 Helm 仓库中下载 Chart。 -
Release
在 Kubernetes 集群中运行的 Chart 实例。每次安装 Chart 都会创建一个新的 Release。 -
Values
用于配置 Chart 的参数。通过 values.yaml 文件或命令行参数传递。
主要功能
-
应用部署
通过 Chart 快速部署复杂的 Kubernetes 应用。支持一键安装和卸载。 -
版本管理
支持应用的版本控制和回滚。 -
依赖管理
Chart 可以依赖其他 Chart,简化复杂应用的部署。 -
配置管理
通过 values.yaml 文件动态配置应用。 -
模板化
使用 Go 模板语言动态生成 Kubernetes 资源文件。
安装helm-cli
-
访问github网站,如果网络访问受限,访问备用网址 选择符合操作系统的合适版本,直接下载或者点击右键复制链接地址,如下图:
-
如果复制链接地址,可以通过如下方式下载:
- linux/macos
- windows cmd/powershell
curl -LO 链接地址
如果系统安装了curl工具,可以通过curl下载
# 打开命令行工具
curl.exe -LO 链接地址
如果没有crul工具,也可以直接点击文件链接,下载到本地
- 解压下载的压缩包
tar -xf 压缩包
- 设置路径
- linux-macos
- windows
# 进入解压后的目录下
chmod +x helm
mv helm /usr/local/bin
setx PATH "%PATH%;D:\\helm"
其中 D:\\helm 替换成解压后的helm.exe文件所在目录
设置环境变量后,可能需要打开新的CMD/powershell窗口,设置才生效
也可以使用窗口设置系统环境变量
- 查看结果
helm version
常用命令
基本命令
查看版本
helm verison
环境信息
helm env
帮助信息
helm help
Chart 管理
搜索Chart
- 从 Artifact Hub 或已添加的仓库中搜索 Chart:
helm search hub <keyword>
例如,搜索mysql
helm search hub mysql
- 从本地仓库搜索 Chart:
helm search repo <keyword>
例如,搜索本地仓库中的mysql:
helm search repo mysql
添加Chart仓库
添加一个 Helm 仓库:
helm repo add <repo-name> <repo-url>
例如,添加 Bitnami 仓库:
helm repo add bitnami https://charts.bitnami.com/bitnami
更新 Chart 仓库
helm repo update
列出已添加的仓库
helm repo list
移除Chart仓库
helm repo remove <repo-name>
查看Chart信息
helm show chart <chart-name>
下载Chart
helm pull <chart-name>
安装与升级
安装Chart
helm install <release-name> <chart-name>
指定命名空间安装Chart
helm install <release-name> <chart-name> -n <namespace>
使用自定义values文件安装Chart
helm install <release-name> <chart-name> -n <namespace> -f values.yaml
升级Release
helm upgrade <release-name> <chart-name>
回滚Release
helm rollback <release-name> <revision>
查看与删除
列出已安装的Release
helm list
指定命名空间
helm list -n <namespace>
查看Release状态
helm status <release-name>
查看Release历史
helm history <release-name>
删除Release
helm uninstall <release-name>
Chart开发与打包
创建一个新的 Char
helm create <chart-name>
打包 Chart
helm package <chart-directory>
验证 Chart
helm lint <chart-directory>
推送 Chart 到仓库
helm push <chart-package> <repo-name>
其他常用命令
查看 Helm 模板渲染结果
helm template <release-name> <chart-name>
导出 Release 的 Values
helm get values <release-name>
导出 Release 的 Manifest
helm get manifest <release-name>
清理未使用的 Chart
helm repo remove --purge <repo-name>
总结
Helm 是 Kubernetes 生态中不可或缺的工具,极大地简化了应用的部署和管理。通过 Chart 的模板化和版本控制,Helm 提供了灵活、可重用的解决方案,适用于各种规模和复杂度的 Kubernetes 环境。论是个人开发者还是企业团队,Helm 都能显著提升工作效率和应用的可维护性。
学习更多helm知识,请参考helm官网
更多Kubenertes知识,参考k8s官方文档