Helm 入门:Kubernetes 包管理器介绍

文章目录

Helm 是 Kubernetes 最流行的包管理器,GitHub 星标超过 1.5 万,它让你把 Kubernetes 应用打包成 Chart,一键部署,方便管理版本和依赖,现在 Kubernetes 部署应用基本都用它。

我用 Helm 部署过很多服务,从 Elasticsearch 到 Prometheus,一句话就是省心,不用自己写一堆 YAML,今天聊聊它好用在哪,值得学吗。

Helm 解决了什么问题

Kubernetes 跑应用,要写一堆 YAML 文件,Deployment、Service、Ingress、ConfigMap,好几个文件放一起,管理起来麻烦。应用还有依赖,A 依赖 B,B 依赖 C,一个个手动装太费劲。版本更新回滚也麻烦,要一个个改文件,出问题回滚半天。

Helm 把一个应用所有 YAML 打包成一个 Chart,像压缩包一样,一键安装,版本对了依赖自动装,更新回滚一条命令搞定,太省心。

Artifact Hub 上有很多别人打包好的 Chart,热门软件比如 MySQL、Redis、Nginx,直接搜了就能装,不用自己写 YAML,真的省很多时间。

基础使用例子

安装 Helm,二进制下载就能用:

bash 复制代码
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

新建一个 Chart 自己用:

bash 复制代码
helm create myapp

会生成目录结构,里面有模板,改改 values.yaml 就能用。

添加一个 Helm 仓库,装个 nginx:

bash 复制代码
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install my-nginx bitnami/nginx

就装好了,一条命令,Deployment、Service 都给你创建好,访问就能用了。

看一下安装的版本:

bash 复制代码
helm list

更新版本:

bash 复制代码
helm upgrade my-nginx bitnami/nginx

回滚到上个版本:

bash 复制代码
helm rollback my-nginx 1

就是这么简单,一条龙服务,安装更新回滚都搞定。

核心特性

应用打包

把一个应用所有 Kubernetes 资源打包成 Chart,版本化管理,一个包就是一个版本,清晰。

依赖管理

Chart 可以声明依赖,安装的时候自动把依赖也装上,不用你一个个手动装。

配置模板

模板加 values.yaml,不同环境改改配置就能部署,不用复制粘贴改 YAML,干净。

版本管理和回滚

每次升级记录版本,出问题一键回滚,发布风险低很多,不用手忙脚乱改回去。

生态丰富

Artifact Hub 一大堆现成 Chart,热门软件基本都有,拿来就能用,不用自己造轮子。

哪些场景用 Helm

Kubernetes 上部署应用,不管是自己开发的应用还是第三方服务,用 Helm 都方便。部署中间件,Redis、MySQL、Elasticsearch,直接用现成 Chart,一键安装,配置都帮你写好了,改改参数就行。CI/CD 流程,打包应用 Chart,升级回滚自动化,发布流程顺畅很多。多环境部署,dev、test、prod 用不同 values 文件,同一个 Chart 部署不同环境,方便。

Helm 有哪些优缺点

优点,真的省心,不用写一堆 YAML,现成 Chart 拿来就用,版本管理回滚方便,Kubernetes 部署应用现在基本都用它。模板功能强大,同一个模板不同配置适配不同环境,灵活。生态好,热门软件都有,省很多功夫。

缺点,模板语法刚开始有点绕,Go 模板加 Helm 扩展,复杂逻辑写起来有点费劲。权限控制粒度粗,多租户管理不太方便,不过一般企业内部用也够了。Chart 质量参差不齐,第三方 Chart 有的配置不合理,拿到得自己改改。

现在 Helm 发展得怎么样

现在是 CNCF 项目,已经是 Kubernetes 包管理事实标准,版本 3 之后架构很干净,去掉了 Tiller,安全多了,一直稳定更新,用户越来越多,现在基本所有 Kubernetes 安装应用都推荐用 Helm,地位稳。

Artifact Hub 生态越来越大,更多开发者上传 Chart,找软件越来越方便,工具链也成熟,IDE 插件都有,用起来越来越顺。

现在学 Helm 值得吗

用 Kubernetes 开发部署,肯定值得学,现在找 Kubernetes 相关工作,基本都要求会 Helm,不会你还真没法干活。

常用操作不难,add repo、install、upgrade、rollback,一天就能学会常用命令,自己写简单 Chart 也不难,复杂模板慢慢学,够用先。

学会 Helm,部署应用省你半天时间,不用一个个复制 YAML 改,版本回滚一键搞定,工作效率提升太多,绝对值得。

项目地址:https://github.com/helm/helm

杂模板慢慢学,够用先。

学会 Helm,部署应用省你半天时间,不用一个个复制 YAML 改,版本回滚一键搞定,工作效率提升太多,绝对值得。

项目地址:https://github.com/helm/helm

相关推荐
小袁说公考14 分钟前
2026广东公考培训标杆深度解析:广东粉笔——科技赋能本土,领跑粤考赛道
大数据·人工智能·经验分享·笔记·科技·其他
星河耀银海15 分钟前
AI基础设施革命:云原生+云边端+算力的协同价值
人工智能·云原生
袁煦丞 cpolar内网穿透实验室1 小时前
出差路上,服务器在我手机里
运维·服务器·docker·容器·智能手机·远程工作·cpolar
9命怪猫14 小时前
[K8S小白问题集] - Calico好在哪里?
网络·云原生·容器·kubernetes
齐潇宇14 小时前
k8s-Helm管理器
linux·运维·云原生·容器·kubernetes
容器魔方14 小时前
让Skill从执行中生长:Cloud Agent Harness的三段式Skill自进化机制
云原生·开源·资讯
叶~小兮14 小时前
K8S进阶核心综合学习笔记(持久化存储+特殊容器+调度管理)
笔记·学习·kubernetes
Zhu75814 小时前
[软件部署]在k8s环境部署alist
云原生·容器·kubernetes
2401_8401922716 小时前
k8s的crd、operator、cr分别是什么?
运维·分布式·kubernetes·prometheus