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

相关推荐
2601_962218905 小时前
物联网对接技术视角下万象生鲜配送系统配送效率优势
其他
kuroomi7 小时前
Ingress-Nginx与kubernetes 网络
linux·运维·网络·kubernetes
闲云自留地7 小时前
Containerd 进阶教程:命名空间 Namespace、私有仓库 Harbor、容器管理全流程
容器
闲云自留地10 小时前
Containerd 是什么?架构、插件与安装实践一次讲清
容器
运维开发王义杰12 小时前
跨项目直连数据库:是架构反模式,还是现实的工程妥协?
云原生
奇逍科技圈12 小时前
智能补货是怎么实现的?安全库存与补货建议
其他
闲云野鹤在人间12 小时前
docker 入门 | 第7章 容器监控 和 第8章 容器日志 详解
运维·docker·容器·架构·云计算
闲云自留地13 小时前
告别敲命令!DockerUI 与 Portainer 可视化容器管理实战
docker·容器
GXYY124314 小时前
心力衰竭治疗费用与医保报销的系统分析:2026年最新政策解读
其他
wdfk_prog14 小时前
ROS教程10:从 gtest 到 rostest——Unit Test、Node 集成测试、rosbag 与 rqt 验证闭环
运维·缓存·docker·容器·ros