文档中心>实践教程>容器服务>AI>基于 TKE 部署 Dify 最佳实践

基于 TKE 部署 Dify 最佳实践

最近更新时间:2025-05-26 17:00:01

我的收藏

Dify 简介

Dify 是一款开源的大语言模型(LLM)应用开发平台。平台内置了构建 LLM 应用所需的关键技术栈,包括对数百个模型的支持、直观的 Prompt 编排界面、高质量的 RAG 引擎、稳健的 Agent 框架、灵活的流程编排。同时,Dify 提供易用的界面和 API,使得开发者可以聚焦于创造应用的核心价值。

本文将详细介绍如何在腾讯云容器服务 (TKE) 上部署 Dify 平台,帮助企业和用户快速搭建自己的大模型应用开发平台。

整体架构

与单机部署相比,腾讯云 TKE 的部署提供了高可用、灵活弹性等特点,可以满足企业的生产部署需求,整体架构如下图。
部署方案全面涵盖了 Dify 平台的核心组件以及基础组件。其中,核心组件包括 api、web、worker 和 sandbox 等,是 Dify 平台正常运行的关键部分;基础组件包含向量数据库、db、redis、proxy、ssrf_proxy(专门用于防范 SSRF 攻击的安全代理)等服务,为 Dify 平台的稳定运行提供基础支撑。
在数据库选型上,可根据实际业务需求,选用腾讯云上对应的云服务替换默认的社区版数据库,如云数据库 Redis 、云数据库 PostgreSQL 和腾讯云向量数据库等,保障业务数据的安全稳定。


一键部署

腾讯云 TKE 应用市场已上架 tke-dify 应用,用户可通过应用市场实现一键部署,极大简化了部署流程。


实践步骤

存储准备

Dify 的关键组件 API 和 Work 需要共享存储,推荐在 TKE 集群中使用腾讯云 CFS 文件存储:
1. 在组件管理页面启用 CFS 文件存储。操作详情请参见 安装并设置 CFS 扩展组件

2. 组件创建完成后,在 StorageClass 中创建命名为 cfs 的 Storageclass 对象,操作详情请参见 创建 CFS 类型 StorageClass。创建后的效果如下:


Dify 部署

TKE 的应用市场已经支持 tke-dify 应用的快速部署。
1. 登录 容器服务控制台,选择左侧导航栏中的应用市场
2. 在应用管理中单击新建
3. 新建应用页面,填写应用信息。
应用名:可自定义命名,本文示例为 dify
应用场景:选择 AI,并选择 tke-dify 应用。

4. 单击完成,进行应用创建。

高可用保障

为确保 Dify 服务的高可用性,建议从多副本部署和健康检查两方面进行配置。
1. 多副本和反亲和性
以 api 组件为例(其他组件:worker、web、sandbox 均支持):
api:
replicas: 2
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: component
operator: In
values:
- api
topologyKey: topology.kubernetes.io/zone
2. 健康检测机制
api:
## @param api.livenessProbe.enabled Enable livenessProbe on API nodes
livenessProbe:
enabled: true
initialDelaySeconds: 30
periodSeconds: 30
timeoutSeconds: 5
failureThreshold: 5
successThreshold: 1
## @param api.readinessProbe.enabled Enable readinessProbe on API nodes
readinessProbe:
enabled: true
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 5
successThreshold: 1

弹性伸缩

Dify 作为 AI 服务平台,可能会面临突发流量增长。建议基于 HPA 配置弹性伸缩能力。
以 api 组件为例(其他组件:worker、web、sandbox 均支持),配置基于 CPU 使用率进行自动弹性:
api:
autoscaling:
enabled: true
minReplicas: 1
maxReplicas: 100
targetCPUUtilizationPercentage: 80

请求入口

在 TKE 集群中,可以通过 Ingress 和 CLB 负载均衡将 Dify 服务暴露出来,并提供安全的访问方式。
service:
type: NodePort
port: 80

ingress:
enabled: true
className: ""
annotations: {}
# kubernetes.io/ingress.class: qcloud
hosts:
- host: dify-example.local
paths:
- path: /
pathType: ImplementationSpecific
# - host: dify-example2.local
# paths:
# - path: /
# pathType: Prefix
tls: []
# - secretName: chart-example-tls
# hosts:
# - dify-example.local
更多 Ingress 能力请参见 CLB 类型 Ingress
部署完成后,在浏览器输入配置的域名(如 dify-example.local)即可访问 Dify 应用。首次访问需先配置管理员账号。登入界面如下图所示:


云产品集成

可以通过如下配置方式切换到相应云服务。
1. 腾讯云 Redis
redis:
enabled: false
externalRedis:
enabled: true
host: "redis.example"
port: 6379
username: ""
password: "difyai123456"
useSSL: false
2. 腾讯云 PostgreSQL
postgresql:
enabled: false
externalPostgres:
enabled: true
username: "postgres"
password: "difyai123456"
address: localhost
port: 5432
database:
api: "dify"
pluginDaemon: "dify_plugin"
maxOpenConns: 20
maxIdleConns: 5
3. 腾讯云向量数据库
weaviate:
enabled: false
externalTencentVectorDB:
enabled: true
url: "your-tencent-vector-db-url"
apiKey: "your-tencent-vector-db-api-key"
timeout: 30
username: "root"
database: "dify"
shard: 1
replicas: 2

聊天助手

接下来,演示在 Dify 平台中创建聊天助手,并验证 AI 模型接入的使用效果。
1. 在 Dify 平台首页,进入用户设置,添加所需的 AI 模型,本文以腾讯混元为例。

2. 在腾讯混元插件的 API-KEY 配置页面,单击从腾讯混元获取 API Key,获取 SecretID 和 SecretKey,并填写到对应输入框。

3. 确认信息无误后单击保存,完成配置。
4. 完成上述配置后,返回 Dify 平台首页,通过首页空白应用的窗口,依照系统提示逐步创建聊天助手。

5. 进入聊天助手页面,可通过与聊天助手互动交流,输入各类问题并查看回复,以此验证聊天助手效果,确保 AI 模型接入正常且运行稳定。


总结

腾讯云 TKE 为 Dify 平台提供了生产级的容器化部署方案,从资源调度到维护管理全面赋能,助力企业快速落地 AI 应用,充分释放云原生技术的价值。