helm学习
Helm 知识点总结一、Helm 是什么Helm 是Kubernetes 的包管理工具类比apt/yum/pip。Helm 可以把 K8s 的一堆 yamlDeployment、Service、Ingress、ConfigMap、Secret打包成一个应用包一键部署、升级、回滚、卸载。Helm3 vs Helm2 核心区别重点面试特性Helm2Helm3Tiller 服务端组件有集群内部运行 tiller移除 Tiller纯客户端Release 存储ConfigMap 存Secret 默认存储 release 版本记录CRD 安装helm init初始化无需 init直接使用本地命令helm init废弃✅现在全部使用 Helm3二、核心概念Chart应用安装包就是一个目录里面包含模板 yaml、values 配置。类似 rpm/deb 包。RepositoryRepo 仓库存放 chart 的远程仓库http/https公共仓库artifacthub国内常用阿里云 helm 镜像。helm repo add添加仓库helm repo update更新仓库索引Release版本实例把一个 Chart 安装到 k8s 集群之后就生成一个 Release。同一个 chart 可以多次安装生成多个 release。release 是 helm 管理的运行实例每个 release 有版本修订号revision回滚用Valuesvalues.yamlchart 的配置文件用来覆盖模板里面变量用户修改 values 来自定义部署参数。关系梳理Chart(包) --(values赋值)-- 渲染yaml -- 生成Release(集群实例)三、Chart 目录结构手写考点mychart/ ├── Chart.yaml # ✅ chart元数据名字、版本、appVersion、描述必填 ├── values.yaml # ✅ 默认变量配置 ├── templates/ # ✅ 存放go template模板yaml文件 │ ├── deployment.yaml │ ├── service.yaml │ ├── ingress.yaml │ └── _helpers.tpl # 公共模板函数定义通用标签、名称 ├── charts/ # 子chart依赖包可选 └── .helmignore # 类似.gitignore打包忽略文件_helpers.tpl下划线开头的模板文件不会直接渲染成 k8s 资源专门用来定义可复用模板片段name、labelsChart.yaml 字段区分versionChart 包本身版本helm 包版本appVersion业务应用镜像版本程序本身版本很多面试坑点四、常用命令高频仓库操作helm repo add [仓库名] [url] # 添加仓库 helm repo list # 查看仓库 helm repo update # 更新仓库索引缓存 helm search repo xxx # 在本地索引搜索chart helm search hub xxx # hub搜索artifacthub安装、升级、卸载# 安装release--values(-f) 指定自定义values--set 命令行覆盖变量 helm install release名 仓库/chart名 -f myvalues.yaml helm install release名 仓库/chart名 --set replicaCount2 # 升级release修改values之后执行升级release名字不变 helm upgrade release名 仓库/chart -f newvalues.yaml # 查看已经部署的release helm list -A # -A 所有命名空间 # 回滚到历史修订版本revision helm rollback release名 revision号 # 卸载release--keep-history保留历史release记录 helm uninstall release名 helm uninstall release名 --keep-history调试命令非常实用写 chart 必用# 本地渲染模板输出最终yaml**不提交到k8s本地预览调试** helm template ./mychart -f values.yaml # 查看release历史修订记录 helm history release名称 # 查看release实际使用的values helm get values release名 # 获取helm生成出来的最终manifest yaml helm get manifest release名 # 本地创建空白chart骨架 helm create mychart # 打包chart为tgz压缩包 helm package mychartrevision 注意install 生成 revision1第一次 upgrade 之后 revision2rollback 回去 revision 会继续 1旧版本 revision 号保留不会被覆盖五、Helm Go Template 模板语法基础helm 底层使用Go text/template增加 helm 专属的 Sprig 函数库。取值语法{{ .Values.xxx }}读取 values.yaml 变量内置对象.Values来自 values.yaml 以及 --set 传入的值.Releaserelease 信息.Release.Name、.Release.Namespace、.Release.Revision.Chart读取 Chart.yaml 元数据.Chart.Name.Template模板文件相关信息判断语法{{- if .Values.ingress.enabled }} # ingress资源内容 {{- end }}-代表去除换行空白{{-去掉左边空白-}}去掉右边空白消除多余空行循环 range{{- range .Values.resources.limits }} # 循环内容 {{ end }}调用_helpers.tpl 定义的命名模板{{ include mychart.labels . }}include函数用来引入公共片段和 template 区别include 可以管道传参template 不行。优先用 include六、依赖管理Chart 依赖Chart.yaml 中 dependencies 字段声明依赖其他 chartdependencies: - name: mariadb version: 10.x.x repository: https://xxxhelm dependency update # 更新下载依赖到charts目录 helm dependency build子 chart 有独立 values父 chart 可以在 values 里面覆盖子 chart 的值mariadb: xxx七、钩子 Helm Hooks面试重点Helm Hooks可以在 helm install/upgrade/rollback/uninstall 的生命周期各个阶段执行额外 k8s Job/Pod。 annotations 声明钩子annotations: helm.sh/hook: pre-install常见 hook 类型pre-installchart 模板渲染完成之后在资源创建之前运行 jobpost-install所有资源部署完成之后执行pre-upgrade升级开始前执行post-upgrade升级完成后pre-delete卸载资源删除之前post-delete卸载之后钩子额外注解helm.sh/hook-weight: 5 # 权重数字越小越先执行 helm.sh/hook-delete-policy: hook-succeeded # job执行成功之后自动删除钩子pod⚠️注意Hook 资源本身不计入 Release 管理卸载 release 默认不会清理 hook 创建的资源需要设置 delete-policy八、常用排错 面试重点总结高频面试问题helm install 和 helm upgrade 的区别install全新部署生成 revision1release 名称不能已经存在upgrade对已经存在 release 更新配置revision 递增helm rollback 原理 helm3 release 元数据存在 Secret保存每一次 revision 渲染时全部 values回滚就是取出旧 revision 的 values重新执行一次 upgraderevision 号继续增大。不是回到旧 revision 编号而是新建修订版本。helm template 作用 本地渲染模板输出最终 yaml不访问 k8s api用于调试模板是否正确。Chart.yaml version vs appVersion 区别versionhelm chart 包的版本appVersion内部业务镜像版本。helm hooks 的使用场景 数据库初始化 Job升级前数据备份部署完成初始化配置。helm --dry-runhelm install xxx --dry-run # 模拟安装访问apiserver做校验helm template纯本地不访问apidry‑run会请求k8s做校验helm template本地helm install --dry-run会连接 k8s 校验 schema。易错点修改 templates 下 yaml 直接改不会生效必须 helm upgrade 重新渲染helm 不监听本地文件变化。values.yaml 修改之后本地文件改完一定要执行 helm upgrade 才会重新渲染集群资源。_helpers.tpl 是命名模板不会直接生成资源只能 include 引入。helm3 不再有 tiller权限直接使用执行 helm 命令当前用户的 kubeconfig 权限。九、helm 私有仓库补充可以用 chartmuseum 搭建私有 helm 仓库harbor 也内置 helm 仓库。十、helm 工作流程helm 读取本地 chart读取 values-f /--set/ 默认 values.yamlgo template 渲染 templates 下面所有模板替换变量生成完整 k8s yaml 清单通过 kubeconfig 连接 k8s api提交资源到集群同时把 release 状态写入 Secret 保存版本历史。如果你需要我可以再给你一份 helm 面试题选择 简答或者 helm 的实验练习清单。

相关新闻

IGBT门极电阻怎么算?门极适配与保护电路设计|硬件篇·14

IGBT门极电阻怎么算?门极适配与保护电路设计|硬件篇·14

前言 450A的IGBT,门极电阻选多大合适?开通和关断电阻为什么要分开?退饱和检测怎么接才能不误触发? IGBT驱动核选好了(见硬件篇十三),门极适配电路才是真正决定开关性能的环节。本文以英飞凌 FF4…

2026/9/30 14:43:43 阅读更多 →
HCIE-Storage V4.0(存储4.0)考纲变化拆解:新增 15 分故障排查与 AI 存储考点

HCIE-Storage V4.0(存储4.0)考纲变化拆解:新增 15 分故障排查与 AI 存储考点

一句话摘要:HCIE-Storage V4.0 将于 2026 年 9 月 30 日正式发布。相对 V3.0,改动可以归纳成两条主线——考纲从四大模块重构成 CCSS/CCSN/CDPS 三大能力模块并加入 AI 存储内容;实验考试自 2026 年 7 月 1 日起新增 15 分"故障排查&quo…

2026/9/30 14:43:43 阅读更多 →
av_frame_make_writable 与深拷贝 AVFrame:FFmpeg 内存模型的本质差异

av_frame_make_writable 与深拷贝 AVFrame:FFmpeg 内存模型的本质差异

av_frame_make_writable 不是深拷贝,仅确保帧数据可写,可能触发缓冲区拷贝但不分配新结构体;深拷贝则创建完全独立的副本,包含新结构体与数据。前者适用于原地修改(如滤镜、编码前处理),后者用于需同时保留原始帧与修改帧的场景。性能上,深拷贝开销更大,应优先使用 ma…

2026/9/30 14:43:43 阅读更多 →

最新新闻

从零构建可交付AI系统:契约驱动的工程化实践

从零构建可交付AI系统:契约驱动的工程化实践

1. 这不是“搭积木”,而是亲手锻造AI系统的底层骨架“AI Engineering from Scratch”——看到这个标题,很多人第一反应是:又要学Python、调PyTorch、跑个ResNet?不。这六个单词背后压根不是“复现论文”或“微调模型”的轻量级动作…

2026/10/1 19:40:17 阅读更多 →
Wine兼容层演进简史:从Madeira实验分支谈起

Wine兼容层演进简史:从Madeira实验分支谈起

我理解您的要求,但需要说明:当前输入中仅提供了项目标题“Madeira”及相关热搜词、网络热词列表, 未提供任何实质性的项目正文、摘要描述或可解析的业务上下文 。根据您设定的核心任务原则——“仅通过项目标题,挖掘标题背后的核…

2026/10/1 19:40:17 阅读更多 →
Redis如何赋能AI应用:向量检索、缓存加速与任务协调实战

Redis如何赋能AI应用:向量检索、缓存加速与任务协调实战

1. 先搞清楚一件事:Redis 到底是怎么“接入 AI”的1.1 我理解的“Redis 接入 AI”,指的是三件事最近“Redis 正式接入 AI”这个说法传得挺火,作为一个从 Redis 3.0 时代就开始用的老东西,我第一反应是:这标题确实容易让…

2026/10/1 19:40:17 阅读更多 →
云渲染平台怎么选?Blender/C4D实操与RTX 5090节点实测

云渲染平台怎么选?Blender/C4D实操与RTX 5090节点实测

搞Blender、C4D这一行的,迟早会撞上同一个问题:本地机器跑不动了。不是显卡不行,而是项目不等人。几百帧的动画、4K分辨率、大场景置换、复杂灯光材质,随便叠一两个buff,本地GPU就得烧到满负荷,就连吃饭睡觉…

2026/10/1 19:40:17 阅读更多 →
MATLAB纯编程实现燃料电池混合动力ECMS能量管理策略

MATLAB纯编程实现燃料电池混合动力ECMS能量管理策略

混合动力系统的能量管理策略,这两年做的人不少,但真正把“等效氢气消耗最小化”这件事从原理讲到代码落地的资料并不多。这个方向正好卡在车辆工程和控制算法的交叉点上:既要求你懂燃料电池和动力电池的脾气,又要求你能把优化问题…

2026/10/1 19:40:17 阅读更多 →
大模型参数调优实战:temperature、top_p、max_tokens 核心参数详解

大模型参数调优实战:temperature、top_p、max_tokens 核心参数详解

1. 参数体系到底在调什么:从一次“输出跑偏”说起很多人第一次接触参数调优,都是被逼的。我印象特别深,早些年帮一个做智能客服的朋友排查问题,他们的机器人回答用户问题时,要么答非所问,要么一句话翻来覆去…

2026/10/1 19:39:16 阅读更多 →

日新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/10/1 19:40:48 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/30 18:13:06 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/30 13:14:49 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →