使用 Helm 在 Kubernetes 上部署高可用的 Dify 系统
Dify 是一个功能强大的开源 LLMOps 平台,最近越来越流行,很多同学咨询高可用私有化部署方案,虽然官方提供了基于 docker-compose
的部署方式,但在生产环境中,我们通常需要具备可扩展性、高可用性和容错性,这些正是 Kubernetes 所擅长的,于是开源一个 dify-chart 项目,实现基于 Helm
在 Kubernetes 上的高可用部署。
dify-chart 项目是基于 Helm
,将 Dify 的 docker-compose.yaml
和 .env
配置转换成 Kubernetes 环境下的 templates
和 values.yaml
,项目结构保持简单清晰,方便后期扩展、或部署云服务,本文将提供完整部署步骤和访问测试方式。
🛠️ 前置要求
开始之前,请确保你已安装以下工具:
- Docker
- Minikube(用于本地 Kubernetes 测试)
- Helm
💡 本文以 Minikube 作为本地测试环境进行演示。若用于生产环境,请根据实际情况配置负载均衡器、Ingress 或云服务商提供的访问方式。
🚧 服务依赖说明
Dify 依赖以下服务:
- PostgreSQL(主数据库)
- Redis(用于缓存与队列)
- Weaviate(向量数据库)
在本 Helm Chart 中,这些依赖服务被外部化,未被直接包含在部署中。如果你仅进行测试,可以参考仓库中的 demo-dependent-docker.txt
中的命令启动本地单实例容器,Helm Chart 中默认配置为这些 docker 的访问地址。
若用于生产部署,建议将这些依赖服务部署为高可用集群,参考资料:
- 使用 Patroni 部署 PostgreSQL 高可用集群
- Redis Cluster 官方文档
- Weaviate 集群模式部署指南
🚀 使用 Helm 部署 Dify
- 克隆 Helm 仓库
git clone https://github.com/flower-trees/dify-chart.git
cd dify-chart
- 安装 Dify 到 Kubernetes 集群中
helm install dify ./ --namespace dify --create-namespace
- 检查 Pod 启动情况
kubectl get pods -n dify
你应该能看到类似输出:
dify-api-5c446f5dbf-r674x 1/1 Running
dify-api-5c446f5dbf-rxjw4 1/1 Running
dify-plugin-daemon-667b754cf-755zg 1/1 Running
dify-plugin-daemon-667b754cf-sl7zm 1/1 Running
dify-sandbox-9769bb9ff-dxcnm 1/1 Running
dify-sandbox-9769bb9ff-ml5lc 1/1 Running
dify-ssrf-proxy-b966c4bfb-m4c6q 1/1 Running
dify-ssrf-proxy-b966c4bfb-ptbbh 1/1 Running
dify-web-5d844944df-nq7d9 1/1 Running
dify-web-5d844944df-qrrdn 1/1 Running
dify-worker-7d9f77566-gxdjn 1/1 Running
dify-worker-7d9f77566-pcmcq 1/1 Running
🌐 访问 Dify Web 界面
若使用 Minikube,本地访问 Dify 的步骤如下:
- 启动 Minikube Tunnel:
minikube tunnel
- 修改本地
/etc/hosts
文件(需要 sudo 权限):
127.0.0.1 dify.local
- 打开浏览器访问安装页面:
http://dify.local/install
跟随界面指引,完成初始化配置。
⚙️ 配置与自定义
该 Helm Chart 尽可能兼容 Dify 原始 .env
文件的配置方式。你可以:
- 修改
values.yaml
来调整参数 - 使用 Kubernetes Secret 管理敏感信息
- 自定义副本数量、资源限制、调度策略等
- 接入 Ingress、添加存储卷、绑定监控系统等
更多高级配置可参考官方文档:Dify 文档
🧩 项目地址
完整的 Helm Chart 仓库地址:
👉 https://github.com/flower-trees/dify-chart
欢迎 star、fork,也欢迎提交 issue 与改进建议。
📝 总结
本 Helm 部署方案为在 Kubernetes 上运行 Dify 提供了一个高可用的基础框架,适用于希望从 docker-compose
升级至容器编排环境的开发者和团队。
你可以基于此方案进一步拓展功能,例如自动扩容、接入企业网关、配置持久化存储、集成监控与告警等,为生产部署打下良好基础。
如你在使用过程中有任何问题或建议,欢迎留言交流!