首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【K8s】Kubernetes 包管理工具之 Helm 简介

【K8s】Kubernetes 包管理工具之 Helm 简介

作者头像
行者Sun
发布2025-02-19 23:33:06
发布2025-02-19 23:33:06
7390
举报

下内容均来自个人笔记并重新梳理,如有错误欢迎指正!

基本介绍

Helm 是 Kubernetes 的一种包管理工具,相当于 Ubuntu 中的 APT 包管理工具或 CentOS 中的 YUM 包管理工具,用于定义、安装、升级和配置 Kubernetes 应用程序。

在 Kubernetes 中,我们可以通过 YAML 资源清单实现简单应用程序的定义和安装。但是随着项目架构的微服务化,应用程序逐渐按功能被拆分为众多模块。如果每一个功能模块对应一个 YAML 资源清单,对其进行管理和维护将变得十分困难。

同时,Kubernetes 应用程序的不同服务模块之间,通常存在大量可复用的、或需要根据实际场景调整的配置,这种情况在实施交付领域十分常见。例如,不同的客户需要定制化安装不同的功能模块、配置不同的访问域名等。如果在安装时需要手动调整多个功能模块的 YAML 资源清单显然会降低效率,且容易出错。

Helm 通过 Values 配置以及资源清单模版机制,可以让用户在安装前只在一处修改配置,即可在安装时将资源清单模版自动渲染成 YAML 资源清单,从而提升应用程序的安装效率、配置管理能力,使得应用程序的部署和管理更加自动化、标准化。

Helm GitHub:https://github.com/helm/helm/

Helm 官方文档:https://helm.sh/docs/

Helm Chart 最佳实践:https://artifacthub.io/


主要作用

  • 简化安装:Helm 通过 Chart 的形式,将复杂的 Kubernetes 应用程序(每个功能模块涉及的 Deployment、Service、ConfigMap 等资源对象)打包,简化了安装过程。用户只需通过简单的命令即可完成应用程序等安装、升级或回滚
  • 版本管理:Helm 支持应用的版本管理,用户可以轻松地查看、回滚到之前的版本
  • 依赖管理:一个 Chart 可以依赖其他 Chart,Helm 会自动处理这些依赖关系,确保所有依赖的组件都被正确安装和配置
  • 配置管理:Helm 支持通过 values.yaml 文件进行配置管理,用户可以根据不同的环境(如开发、测试、生产)自定义应用的配置

主要特点

  • 声明式配置:Helm 使用 YAML 模版定义 Kubernetes 资源对象,支持声明式配置,使得配置更加清晰和易于管理
  • 可重用性:Chart 可以被重复使用,用户可以在不同的项目中复用相同的 Chart,减少重复劳动
  • 包存储和管理:Helm charts 可以存储在 Helm 仓库中,类似于软件包的存储库,可以被搜索、下载和管理
  • 社区支持:Helm 拥有活跃的社区,用户可以从 Helm Hub 或 Artifact Hub 中获取大量的官方和社区维护的 Chart
  • 安全性:Helm 支持 Chart 的签名和验证,确保 Chart 的完整性和安全性
  • 插件机制:Helm 支持插件机制,用户可以通过插件扩展 Helm 的功能,如添加新的命令或集成其他工具
  • 安全性和可维护性:Helm 已经被广泛使用,并形成大量的最佳实践,可以帮助用户安全地部署和管理 Kubernetes 应用程序

主要概念

  • Chart:Helm 软件安装包,包含了安装 Kubernetes 应用程序所需的资源清单模版,相当于APT 的 DEB 包或 YUM 的 RPM 包
  • Repository:Helm 的 Chart 仓库,用于存储和分发 Chart 文件,可以是本地仓库或远程仓库
  • Value:Helm 软件安装配置,包含了安装 Kubernetes 应用程序所需的配置信息
  • Template:Helm 软件安装包内的资源清单模版
  • Release:Helm 使用 Chart 包安装的一个应用程序实例

安装方法

Helm 安装非常简单,直接使用 GitHub 提供的二进制文件即可。

代码语言:javascript
复制
# 访问 Helm GitHub,下载某个版本
wget https://get.helm.sh/helm-v3.17.1-linux-amd64.tar.gz

# 解压安装
tar -xzf helm-v3.17.1-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/helm

# 验证安装
helm version

书籍推荐

最后推荐一本笔者从 Docker 进阶到 Kubernetes 自学过程中,受益较深的书籍。笔者经常复读,并结合工作实践不断加深理解和体会,可谓常读常新。希望这本书可以帮助到更多对 Kubernetes 感兴趣或刚开始学习的读者。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-02-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 实施运维知识交流 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档