kubernetes学习-Helm 包管理器(十二)

时间:2025-02-12 21:56:31

一、Helm解释

Helm:Kubernetes 的软件包管理器

Helm 被誉为查找、分享及使用 Kubernetes 软件组件的最佳途径。作为 Kubernetes 包的管理工具,Helm 专注于管理名为 chart 的软件包。以下是 Helm 所具备的核心功能:

  1. 创建新 chart:Helm 能够从头开始构建全新的 Kubernetes 应用 chart。
  2. 打包 chart:将已创建的 chart 打包为归档(tgz)文件,便于分发和存储。
  3. 与 chart 仓库交互:Helm 支持与存储 chart 的仓库进行无缝交互,方便用户搜索、下载和上传 chart。
  4. 安装与卸载 chart:在现有的 Kubernetes 集群中,Helm 能够轻松安装和卸载 chart,实现应用的快速部署与移除。
  5. 管理发布周期:对于通过 Helm 安装的 chart,Helm 能够全面管理其发布周期,包括版本更新、回滚等操作。

在 Helm 的生态系统中,存在三个至关重要的概念:

  • chart:chart 是创建 Kubernetes 应用程序所必需的一组预定义模板和配置文件的集合。它定义了应用的结构、依赖关系以及部署方式。
  • config:config 包含了可以合并到打包的 chart 中的自定义配置信息。这些配置信息用于根据特定需求调整 chart,从而创建一个可部署的对象。
  • release:release 是 chart 与特定配置相结合的实例化表示。在 Kubernetes 集群中,一个 release 对应一个正在运行的应用实例,它包含了应用的所有状态和配置信息。

通过 Helm,用户可以更加高效、灵活地管理 Kubernetes 应用,实现应用的快速迭代和持续交付。

二、Helm 的常用命令

1. 仓库管理命令
helm repo list:列出当前配置的 chart 仓库
helm repo add:添加一个新的 chart 仓库。例如,helm repo add stable https://charts.helm.sh/stable
helm repo remove:移除一个已配置的 chart 仓库。例如,helm repo remove stable
helm repo update:更新所有已配置的 chart 仓库的索引信息
helm search repo:在配置的仓库中搜索 chart。例如,helm search repo mysql
helm search hub:在hub仓库中搜索 chart。例如,helm search hub mysql

2. Chart 管理命令
helm create:创建一个新的 chart。例如,helm create mychart。
helm inspect:查看 chart 的详细信息。例如,helm inspect values mychart 查看 chart 的 values.yaml 文件。
helm fetch:从远程仓库下载 chart 到本地,但不解压。例如,helm fetch stable/mysql。
helm pull:从远程仓库下载并解压 chart 到本地。例如,helm pull stable/mysql --untar。
helm package:将 chart 打包成 tar.gz 文件。例如,helm package mychart。
helm lint:校验 chart 的格式是否正确。例如,helm lint mychart。

3. Release 管理命令
helm install:安装一个新的 chart,创建一个新的 release。例如,helm install myrelease mychart。
--values 或 -f:指定一个包含配置值的 YAML 文件。
--set:直接在命令行上设置配置值。
--dry-run --debug:模拟安装过程,不实际部署到 Kubernetes 集群,同时输出详细的调试信息。
helm upgrade:升级一个已存在的 release。例如,helm upgrade myrelease mychart。
可以使用与 helm install 相同的选项来指定配置值。
helm uninstall:卸载一个 release。例如,helm uninstall myrelease。
--keep-history:卸载时保留 release 的历史记录,以便后续可以回滚。
helm rollback:将 release 回滚到之前的版本。例如,helm rollback myrelease 1。其中 1 是要回滚到的版本号。
helm status:显示一个 release 的状态信息。例如,helm status myrelease。
helm history:显示一个 release 的历史版本记录。例如,helm history myrelease。

4. 其他常用命令
helm get:获取关于一个 release 的详细信息。例如,helm get myrelease。
--all:获取所有相关的资源信息。
--hooks:获取与 release 相关的钩子信息。
--manifest:获取 release 的清单文件。
--notes:获取 release 的备注信息。
--values:获取 release 的配置值。
helm version:显示 Helm 客户端和服务器(Tiller,如已安装)的版本信息。
helm list -n ingress-nginx