跳到主要内容

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

  1. 访问github网站,如果网络访问受限,访问备用网址 选择符合操作系统的合适版本,直接下载或者点击右键复制链接地址,如下图: image

  2. 如果复制链接地址,可以通过如下方式下载:

curl -LO 链接地址
  1. 解压下载的压缩包
tar -xf 压缩包
  1. 设置路径
# 进入解压后的目录下
chmod +x helm
mv helm /usr/local/bin
  1. 查看结果
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官方文档