在Kubernetes集群中进行Dify高可用分布式部署的完整步骤

落芳酱_1047

落芳酱_1047

2026-07-09

297人浏览

原创

kubernetes中dify高可用部署需api、数据库、缓存、向量库均多副本且持久化,使用nas共享存储(如sfs turbo),部署spilo+patroni postgresql三节点集群、redis哨兵、weaviate三副本集群及双副本api/worker服务,并配置ingress网关。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在kubernetes集群中进行dify高可用分布式部署的完整步骤

在Kubernetes集群中实现Dify高可用分布式部署,需确保API服务、数据库、缓存、向量库等核心组件全部具备多副本容错能力,且数据不因Pod重建而丢失,网络层支持自动故障转移与负载均衡。

准备高可用基础设施

先确认Kubernetes集群版本≥v1.23,工作节点不少于3台,全部位于同一VPC内;若使用华为云CCE,启用自动弹性伸缩并绑定至少两个可用区。

创建专用命名空间:kubectl create ns dify

【必须使用NAS类共享存储】块存储无法被多个Pod同时挂载,会导致PostgreSQL主从同步失败或Weaviate数据不一致;华为云SFS Turbo、阿里云NAS、腾讯云CFS均符合要求。

部署StorageClass,名称必须为nfs(大小写敏感),其provisioner字段需与云厂商CSI驱动匹配,例如华为云为everest-csi-provisioner;reclaimPolicy设为Retain,避免误删生产数据。

部署高可用PostgreSQL集群

采用Spilo+Patroni方案构建三节点HA集群,所有Pod挂载同一NAS PV,通过etcd或Kubernetes内置leader选举实现主从自动切换。

执行命令部署:kubectl apply -n dify -f https://raw.githubusercontent.com/Winson-030/dify-kubernetes/main/dify-database-HA-setup/postgres-statefulset.yaml

检查状态:kubectl -n dify get pods -l application=spilo,应看到3个Running状态的Pod,其中1个带role: master标签,其余为replica;若全部为replica,说明PVC未正确绑定或storageClassName填写错误。

验证连接:进入任意Pod执行psql -h dify-pg-ha -U postgres -d dify,能成功登录即表示集群通信正常。

部署Redis哨兵模式

方法一:使用Bitnami Helm Chart快速部署

helm repo add bitnami https://charts.bitnami.com/bitnamihelm install redis-sentinel bitnami/redis-sentinel -n dify --set architecture=replication,replica.replicaCount=2,sentinel.sentinelCount=3

方法二:直接应用YAML清单

下载dify/database/redis-sentinel.yaml,确认其中sentinelConfig节已配置quorum=2,且所有StatefulSet副本数≥2;应用前替换namespace为dify,再执行kubectl apply -f

Kubernetes Skills
Kubernetes Skills

针对 Kubernetes 仪表板和 Web UI 的浏览器自动化。适用于与 Kubernetes Dashboard、Grafana、ArgoCD UI 或其他 Web 界面交互。需要设置 MCP_BROWSER_ENABLED=true。

下载

哨兵模式下客户端必须连接Sentinel地址(如redis-sentinel:26379),而非直接连Redis Pod IP;否则故障转移时连接将中断。

部署Weaviate向量数据库集群

第一步:创建专用ServiceAccount与RBAC权限,Weaviate需访问Kubernetes API获取节点信息用于分片调度。

第二步:配置Weaviate StatefulSet,副本数设为3,volumeClaimTemplates引用前述nfs StorageClass,storage: 50Gi。

第三步:设置环境变量CLUSTER_DISCOVERY=statefulsetCLUSTER_HOSTNAME=weaviate,确保各Pod能通过DNS发现彼此。

第四步:应用清单:kubectl apply -n dify -f https://raw.githubusercontent.com/Winson-030/dify-kubernetes/main/dify-database-HA-setup/weaviate-statefulset.yaml

等待所有Pod Ready后,访问http://weaviate.dify.svc.cluster.local/v1/meta返回{"version":"1.24.0"}即表示集群就绪。

部署Dify核心服务与网关

① 应用API服务Deployment,副本数≥2,确保readinessProbe检测/healthz端点返回200;livenessProbe间隔设为30秒,避免频繁重启。

② 部署Worker服务,concurrency参数根据CPU核数设定(建议8~16),并通过envFrom挂载Redis哨兵地址与PostgreSQL连接串。

③ Web前端使用Nginx Deployment,静态资源由ConfigMap注入,index.html中API_BASE_URL必须指向内部Service名http://dify-api.dify.svc.cluster.local,不可写成NodePort或Ingress域名。

④ 配置Ingress资源,host字段填入企业域名(如ai.example.com),TLS secret需提前导入;backend service name必须与API Service一致,端口为80。

⑤ 若使用华为云ELB,需在Ingress annotation中添加nginx.ingress.kubernetes.io/service-upstream: "true",否则流量无法透传到Pod。

执行最终部署:kubectl apply -n dify -f https://raw.githubusercontent.com/Winson-030/dify-kubernetes/main/dify-deployment.yaml

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务

Golang云原生微服务Kubernetes (K8s) 是指 使用 Go 语言(Golang)编写的云原生微服务,并利用 Kubernetes 平台进行容器化部署、自动化管理、弹性伸缩和高效编排的一整套现代应用架构方案。

2025.12.22

96

5

Go云原生应用与Kubernetes服务部署实战
Go云原生应用与Kubernetes服务部署实战

本专题围绕 Go 语言在云原生环境中的应用展开,讲解容器化部署、Kubernetes 编排、服务发现、健康检查与弹性扩缩容机制。通过真实云端案例,帮助开发者构建可扩展的云原生微服务架构。

2026.06.29

148

19

Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务

Golang云原生微服务Kubernetes (K8s) 是指 使用 Go 语言(Golang)编写的云原生微服务,并利用 Kubernetes 平台进行容器化部署、自动化管理、弹性伸缩和高效编排的一整套现代应用架构方案。

2025.12.22

96

5

Go云原生应用与Kubernetes服务部署实战
Go云原生应用与Kubernetes服务部署实战

本专题围绕 Go 语言在云原生环境中的应用展开,讲解容器化部署、Kubernetes 编排、服务发现、健康检查与弹性扩缩容机制。通过真实云端案例,帮助开发者构建可扩展的云原生微服务架构。

2026.06.29

148

19

Dify 本地部署与企业配置
Dify 本地部署与企业配置

本专题系统讲解 Dify 从零开始的本地部署方法与企业环境配置实践,涵盖 Docker 安装、依赖准备、数据库初始化、反向代理、参数调优、安全加固与多用户开通,帮助开发者与企业团队快速搭建稳定可用的 Dify 平台。

2026.06.05

357

15

Dify Agent智能体开发实战教程
Dify Agent智能体开发实战教程

本专题聚焦 Dify Agent 智能体的设计与开发,涵盖 Agent 模式选择、工具集成、提示词设计、多步推理、上下文记忆与多 Agent 协作,帮助开发者构建可执行复杂业务任务的智能体应用。

2026.06.05

205

15

Dify RAG知识库构建实战教程
Dify RAG知识库构建实战教程

本专题围绕 Dify RAG 知识库的全流程实践展开,从文档导入、分段切片、向量化到混合检索、重排优化与召回评估,帮助你打造高准确率、低幻觉的企业知识问答应用。

2026.06.05

196

15

Vibeknow在线使用入口合集
Vibeknow在线使用入口合集

本专题汇总了Vibeknow在线创作视频的官方入口及网页版使用教程,涵盖PPT、PDF、Word等文档一键转讲解视频的核心操作,并整理了免费版水印规则与手机端浏览器访问指南,助你快速将知识内容视频化。

2026.09.21

0

20

NumPy随机数文件读写与dtype数据类型
NumPy随机数文件读写与dtype数据类型

本专题整理 NumPy 随机数、文件读写与 dtype 数据类型相关教程,覆盖 Generator/random、随机数种子、正态分布采样、npy/npz/CSV/TXT 保存读取、loadtxt/savetxt、memmap、大文件处理、astype 类型转换、结构化 dtype、整数溢出和精度丢失等场景。

2026.09.21

0

24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Kubernetes官方教程手册
Kubernetes官方教程手册

共0课时 | 0人学习

Kubernetes官方中文文档
Kubernetes官方中文文档

共0课时 | 0人学习