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

相关推荐
风曦Kisaki1 小时前
# Kubernetes(K8s)笔记Day12 :K8s 七层代理(Ingress 和 Ingress Controller)
linux·笔记·云原生·容器·kubernetes
雨辰AI6 小时前
达梦 DM9 K8s 密评合规部署|等保三级 + 密评双标准安全加固(金融级实测通过)
安全·云原生·容器·金融·kubernetes·政务
雨辰AI6 小时前
K8s 数据库 Secret 加密实战|密码明文漏洞彻底修复,等保密评双合规(金仓 / 达梦双库适配)
数据库·容器·kubernetes
人间凡尔赛6 小时前
Kubernetes十周年:从Cloud Native到AI Native的架构范式跃迁
后端·云原生·架构
Elastic 中国社区官方博客7 小时前
一个字段,覆盖所有模态:Elasticsearch 的 semantic 字段如何自动索引和搜索图像、音频、视频和 PDF
大数据·数据库·elasticsearch·ai·云原生·pdf·全文检索
Chasing__Dreams7 小时前
Go 语言学习笔记
云原生·容器·kubernetes
聚搜云——JuSouClouD8 小时前
深圳阿里云代理商:K8s Pod OOM智能排查修复指南
阿里云·kubernetes·云计算
明王明王8 小时前
从零搭建一个单节点 K8S 可观测实验室(六):安装 Tempo + OpenTelemetry,构建链路追踪链路
云原生·容器·kubernetes
wsad05328 小时前
Docker 网络故障排查记:当 bridge 模式失效时,host 模式如何救场
运维·docker·容器
张毅2004-10-109 小时前
docker详解:安装docker,docker架构,docker镜像、容器、网络、存储,容器监控,容器日志,综合实验
linux·运维·docker·云原生·云计算