Jump to section

什么是 Helm?

复制 URL

Kubernetes 中的应用开发比较复杂。无论对哪个应用,都可能需要安装、管理和更新成百上千种配置。 

Helm 可通过 Helm 图表这种打包格式来实现应用的自动分发,从而简化这一过程。与 yum红帽® 企业 Linux® 中对 RPM 软件包的管理方式非常相似,helm 用于在 Kubernetes 中管理 Helm 图表。图表可保持跨容器的一致性,还决定着如何满足应用的特定要求。

Helm 是 Kubernetes 的软件包管理器,您可以完全基于对特定配置最重要的方面,通过变量覆盖将同一配置框架应用于多个实例。 

Helm logo

趣味知识Helm 是一个源自云原生计算基金会(CNCF)的开源项目。它于 2015 年在首届 KubeCon 上初次亮相,后来与 Kubernetes 一起迁移到 CNCF。

Helm 会在 Helm 图表来描述应用从定义到升级的方方面面,作用与模板类似。然后借助 Kubernetes API 将用图表资源传递给 Kubernetes 集群。 

Helm 使用名为 helm 的命令行界面(CLI)工具来管理 Helm 图表,还有一些简单的命令可供您用于创建、管理和配置应用。 

Helm 图表是一个包含多个文件的集合,用于描述 Kubernetes 集群资源并将它们一起打包为一个应用。Helm 图表由三个基本组成部分构成:

  • 图表 - Chart.yaml,定义应用的元数据,如名称、版本和依赖项等。 
  • - values.yaml,设置不同的值,也就是规定如何设定变量替换来重复利用您的图表。
    • 您还可以通过值 JSON 模式来描述值文件的结构,这样做有助于创建动态表单以及对值参数进行验证。
  • 模板目录 - templates/,存放您的模板,并将它们与 values.yaml 文件中所设的值相结合来创建清单。
  • 图表目录 - charts/,存储您在 Chart.yaml 中定义的所有图表依赖项,并通过 helm dependency buildhelm dependency update 进行重建。

每次安装 Helm 图表时,您也会创建它的一个实例,称为发布版本。Helm 图表通过各个新发布版本进行维护,您也可以轻松地使用以前版本的图表来回滚到您喜欢的配置。

如需了解 Helm 图表的实际应用,请观看《Ask a Product Manager Office Hours》这期节目,其中探讨了如何将 Helm 与红帽 OpenShift® 结合使用。

安装 Helm CLI 后,您有两种选择:使用带有预定义资源和值的现有图表;或者创建自定义图表以将您自己的应用资源打包。

使用现有图表

如要使用现有图表,您需要先将 Helm 存储库添加到 Helm 客户端,然后在安装时在值文件中设置特定的配置参数。

值文件是将 Helm 图表重复用于各种配置的关键。您可以替换 values.yaml 中声明的任何变量,Helm 会创建 .values 结构将这些变量存放在模板中。这样,后续配置中就可以替换这些变量了。您可以根据需要,向图表传递任意数量的值文件;Helm 会将它们组合起来一同呈现,从而实现对变量文件的重复利用。

提交或推送值配置后,便可以通过常用的 helm 命令更新、升级和管理应用的生命周期。

创建自定义图表

如要在整个企业或特定工作负载中重复使用应用,您需要创建自定义图表以将应用打包。其中包括在图表的 templates/ 目录下定义应用的资源,通过值文件设置配置参数,并将所有元数据和文档添加到 Chart.yaml 文件中。

接下来,您可以使用 helm package 对图表进行打包,然后将其上传到公共或私有 Helm 存储库,或者直接分发。

红帽的有效验证模式是现有 Helm 图表的实用示例,您还可以对其进行自定义。有效验证模式是一些 Helm 图表,其中描述了已在客户站点上部署且满足一系列测试和维护要求的完整工作负载。可直接使用,也可根据您的配置需求对其进行修改。

作为 GitOps 整体战略的组成部分,Helm 是一款功能强大的工具,可提供跨多个环境的敏捷性、安全性和一致性。与红帽服务互联等多云通信工具搭配使用时,尤其能体现出 Helm 对跨多个云提供商使用多个微服务的复杂部署的用处。

对于 Kubernetes 开发人员来说,Helm 图表是一种简单、快速、便利的方法,可以启动应用并在以后重复利用或与他人共享。  

对于系统管理员和其他 IT 运维专业人员而言,Helm 提供了一个统一的工具,可用于在他们的应用管道中实施并简化持续集成和持续开发(CI/CD)。这一工具可以同时提供敏捷性和一致性。

要尝试从创建图表到配置值和部署图表的整个过程,请查阅红帽® 开发人员网站上提供的如下教程。

继续阅读

文章

什么是 DevSecOps?

如果您想要充分发挥出 DevOps 的敏捷性和响应力,则必须在应用的整个生命周期内兼顾 IT 安全性。

文章

什么是 CI/CD?

CI/CD 可让持续自动化和持续监控贯穿于应用的整个生命周期(从集成和测试阶段,到交付和部署)。

文章

什么是 DevOps 工程师?

DevOps 工程师身怀独特的技能和专业知识,可以在组织内实现协作、创新和文化转变。  

详细了解 DevOps

产品

在红帽专家的指导下参与高强度、富有针对性的驻留培训。帮助您的团队借助敏捷开发方法和开源工具,快速、高效解决当前业务难题。

红帽的战略顾问将从大局出发,以战略性视角审视企业发展,分析您当前面临的业务挑战,并提供全面、低成本、高效益的解决方案,帮助您轻松应对各项挑战。

相关资源