当前位置: 首页 > news >正文

helm介绍

Helm 是 Kubernetes 的官方包管理工具,核心作用是将 Kubernetes 应用的所有资源(Deployment、Service、ConfigMap 等)打包成一个可分发的单元(称为 Chart),实现应用的一键安装、升级、回滚、卸载,解决了 K8s 资源配置零散、版本管理复杂的痛点。

简单类比:

  • Helm ≈ Kubernetes 中的 yum/apt(Linux 包管理器)
  • Chart ≈ 软件安装包(如 .rpm/.deb
  • Release ≈ 应用的一次部署实例(同一 Chart 可多次部署生成不同 Release)

Helm 核心组件与架构

Helm 分为 Helm Client(客户端)Helm Chart Repository(仓库) 两大核心部分(Helm 3 移除了 Helm 2 的 Tiller 服务端,架构更简洁)。

组件 作用 核心功能
Helm Client 运行在本地的命令行工具 1. Chart 的创建、打包、上传
2. 发送部署指令到 K8s API Server
3. 管理 Release 的生命周期(安装 / 升级 / 回滚)
Chart Repository 存储 Chart 的远程仓库(支持 HTTP/HTTPS) 1. 托管 Chart 包和索引文件(index.yaml
2. 提供 Chart 版本管理和检索
3. 官方仓库:Artifact Hub
Chart Helm 应用打包格式 包含应用的所有 K8s 资源配置、依赖、参数模板
Release Chart 在 K8s 集群中的一次部署实例 同一 Chart 可在集群中部署多次,生成多个独立 Release

Helm版本

Helm 3 核心改进(对比 Helm 2)

  1. 移除 Tiller 服务端:直接通过 K8s API Server 交互,降低安全风险和部署复杂度。
  2. Release 信息存储:Release 元数据存储在 K8s 的 Secret/ConfigMap 中(默认 Secret)。
  3. 更完善的权限控制:基于 K8s RBAC 实现细粒度权限管理,用户仅能操作自己有权限的资源。
  4. 支持 OCI 镜像仓库:可将 Chart 推送到 Docker Registry 等 OCI 兼容仓库。

Helm 核心概念

Chart:K8s 应用的打包单元

一个 Chart 是一个目录结构标准化的文件夹,包含应用的所有资源定义和配置模板。

典型 Chart 目录结构

myapp-chart/
├── Chart.yaml          # Chart 元数据(名称、版本、描述、依赖等)
├── values.yaml         # 配置默认参数(如镜像版本、副本数、服务端口)
├── charts/             # 子 Chart 依赖目录(存放依赖的其他 Chart)
├── templates/          # K8s 资源模板文件(基于 Go Template 渲染)
│   ├── deployment.yaml # Deployment 模板
│   ├── service.yaml    # Service 模板
│   ├── configmap.yaml  # ConfigMap 模板
│   └── _helpers.tpl    # 模板辅助函数(可复用的变量/函数)
└── README.md           # 说明文档(可选)

Release:Chart 的部署实例

  • 当使用 helm install 部署一个 Chart 时,Helm 会在 K8s 集群中创建一个 Release
  • 同一 Chart 可多次安装,生成不同 Release(如 myapp-devmyapp-prod),彼此独立。
  • Release 有自己的版本号(如 myapp-1myapp-2),支持升级和回滚。

Repository:Chart 仓库

  • 仓库是用于存储和分发 Chart 的远程服务器,包含 index.yaml(Chart 索引,记录所有 Chart 的版本、下载地址)和 Chart 压缩包。
  • 用户可通过 helm repo add 添加仓库,helm search repo 检索 Chart。
http://www.jsqmd.com/news/557202/

相关文章:

  • 2026年3月消防电缆生产厂家推荐:涵耐火、防火、阻燃、阻燃B1级等电缆生产厂家 - 品牌2026
  • 亚马逊Listing避坑指南:为什么你的主图CTR总不达标?5个被忽略的A/B测试细节
  • GSM-Playground:面向SIM800L硬件深度优化的Arduino蜂窝通信库
  • 嵌入式系统开发全流程:从芯片到应用
  • 【Unity实战】利用Preserve特性解决代码裁剪导致的反射调用失效问题
  • OpenClaw性能测试:GLM-4.7-Flash在不同任务下的响应速度
  • STORM:当人工智能成为你的研究伙伴与写作导师
  • 知网/维普/万方降AI率效果实测对比:哪款工具三大平台都能过? - 我要发一区
  • 如何高效使用FF14插件框架:提升游戏体验的5个实用技巧
  • BiliBili-UWP第三方客户端:Windows平台上的完整B站观影体验终极指南
  • SCANeR studio新手避坑指南:从安装到第一个自动驾驶仿真场景的全流程
  • 解锁7大开源音频宝藏:从技术落地到商业价值的声音数据资源库
  • 水泥制管机的使用寿命有多长?
  • Figma栅格系统深度解析:从基础设置到高级布局技巧
  • 知网AIGC检测过不了?专治知网的降AI率攻略,实测有效 - 我要发一区
  • 从机械臂拖动到精密装配:深度解析阻抗控制中的MBK参数调参指南(附Python仿真代码)
  • 嘎嘎降AI vs 比话降AI vs 率零:三款降论文AI率工具横评对比2026 - 我要发一区
  • G-Helper:开源硬件控制工具的技术哲学与实战应用
  • Pi0 Robot Control Center作品集:多任务自然语言指令下的机器人动作预测
  • 2026成都真发假发优质推荐榜自然逼真适配多场景:四川真人假发/四川补发/成都假发/成都增发/成都女士假发/成都男士假发/选择指南 - 优质品牌商家
  • loadWorkspaceBootstrapFiles 函数分析
  • 5种高效方法使用CVAT:计算机视觉数据标注的实用操作手册
  • 5步快速掌握FreeCAD:从零到精通的3D参数化建模完整指南
  • 今天真是破防的一天,Ant design Pro V6做ProList调试的时候直接崩溃
  • CTF实战:LCG算法破解与逆向分析
  • YimMenu实战指南:从入门到精通的GTA5体验增强
  • 普通数组——缺失的第一个正数
  • 【JAVA】Spring3.x中的swagger配置基础教程
  • 文明狭义论与广义论
  • QWEN-AUDIO性能优化指南:让语音合成速度提升50%的实用技巧