华为云 CCE Helm 包管理:用 Chart 简化应用部署
华为云 CCE Helm 包管理:用 Chart 简化应用部署
前言
Helm 是 Kubernetes 的包管理工具,将一组 K8s 资源打包为 Chart,一键安装和管理。本文介绍在华为云 CCE 上使用 Helm 简化应用部署的实践。
Helm 核心概念
Chart
Chart 是 Helm 的安装包,包含一组 K8s 资源定义和配置模板。一个 Chart 可以描述一个完整应用:部署、服务、配置、密钥、路由等。
Release
Release 是 Chart 的一次安装实例。同一个 Chart 可以安装多次,每次生成不同的 Release,用名称区分。
Repository
Chart 仓库是存放 Chart 的服务。华为云 SWR 提供私有 Chart 仓库,也可以使用公共仓库如 Bitnami。
Chart 结构
一个标准 Chart 包含以下结构:
Chart 目录:Chart 的根目录。
Chart 配置文件:包含 Chart 名称、版本和描述信息。
values 配置文件:默认配置值,安装时可以覆盖。
templates 目录:K8s 资源模板文件,引用 values 中的值生成最终配置。
模板帮助文件:定义可复用的模板片段。
编写 Chart
模板语法
Helm 使用 Go template 语法,在模板中引用配置值:
引用变量:用双花括号包裹变量名。
条件判断:if else 判断是否渲染某段配置。
循环:range 遍历列表生成多个资源。
管道:将值传递给函数处理,如 default 设置默认值、quote 添加引号。
values 设计
values 设计要点:
分层设计:全局值、镜像值、资源值、服务值分组管理。
合理默认值:提供开箱即用的默认配置。
可覆盖:所有可变配置通过 values 暴露,安装时按需覆盖。
依赖管理
Chart 可以声明依赖其他 Chart。例如应用 Chart 依赖 Redis Chart,安装时自动安装依赖。在依赖配置文件中指定依赖的 Chart 名称、版本和仓库。
安装部署
安装
用 helm install 命令安装 Chart,指定 Release 名称和 Chart 路径。通过 values 参数覆盖默认配置。
升级
修改 values 后用 helm upgrade 命令升级 Release。Helm 计算差异只更新变化的部分,实现滚动升级。
回滚
升级出问题时用 helm rollback 回滚到之前的版本。Helm 保留历史版本记录,可以回滚到任意历史版本。
卸载
用 helm uninstall 命令卸载 Release,删除所有相关 K8s 资源。
在 CCE 上使用
配置 Helm
CCE 集群创建后默认安装 Helm。如果未安装,通过 CCE 控制台的插件管理安装 Helm 组件。
私有仓库
将 SWR 配置为 Helm Chart 仓库,存储和管理私有 Chart。推送 Chart 到 SWR 后,团队其他成员可以拉取安装。
CI/CD 集成
在 DevCloud 流水线中集成 Helm:
构建阶段:打包应用镜像推送到 SWR。
部署阶段:用 Helm 安装或升级 Chart,注入镜像版本。
回滚阶段:部署失败时自动 Helm rollback。
常见问题
问:Helm 和 Kustomize 有什么区别?
答:Helm 是包管理工具,支持模板和配置覆盖。Kustomize 是配置管理工具,通过叠加修改基础配置。Helm 适合分发和复用,Kustomize 适合定制已有配置。
问:如何管理敏感配置?
答:敏感信息不要写在 values 中。使用 K8s Secret 或外部密钥管理,在模板中引用 Secret 名称。
总结
Helm Chart 将 K8s 应用打包为可复用的安装包,简化部署和管理。编写清晰的 Chart 和 values 设计,配合 CCE 和 CI/CD 实现自动化部署。版本管理和一键回滚提升运维效率。
- 点赞
- 收藏
- 关注作者
评论(0)