参考资料

按照Dify官方推荐的有三个部署脚本。分别是:

豆瓣的chart

第一个是豆瓣的,之前在Notion中记录过,非常方便。但是很久没有更新。之前在本地服务器上部署过。过程比较顺畅,这里腾挪过来一些部署过程:

chart地址:charts | Helm charts from douban

安装

helm upgrade dify douban/dify -f values.yaml --install --namespace dify --debug

kubectl exec -it dify-worker-59649678df-rtc69 -n dify -- flask db upgrade

values.yaml:

global:
  host: "dify.local.definesys.cn"
  enableTLS: false

  image:
    tag: "0.6.16"
  extraBackendEnvs:
  - name: SECRET_KEY
    value: "misssecretkey"
  - name: LOG_LEVEL
    value: "DEBUG"
  - name: VECTOR_STORE
    value: "milvus"

ingress:
  enabled: true
  className: "nginx"

minio:
  embedded: true

升级版本

修改image.tag之后执行

helm upgrade dify douban/dify -f values.yaml --namespace dify --debug 

kubectl exec -it dify-pod-name -n dify -- flask db upgrade

dify-helm部署

第二个是helmChart,可以安装部署,过程中会有网络问题。可以下载到本地,从本地安装,具体步骤如下

  1. 下载 https://github.com/BorisPolonsky/dify-helm 压缩包到本地并解压

  2. 进入到 dify-helm-master/charts/dify 目录下,执行 helm dependency build 。因为依赖了一些数据库的其他chart,这里如果提示找不到repo,按照提示添加即可。例如

    helm repo add weaviate https://weaviate.github.io/weaviate-helm
    
  3. 执行安装命令,本地安装 helm install dify . -f values.yaml --namespace dify
    以上即可,不过这里有个问题,因为新版本的dify的 api服务和work服务需要同一个存储卷的读写。所以需要用 RWX 访问模式 的存储类。本地存储类不能满足,需要一些NFS,或者OSS相关的存储类支持。所以放弃了

dify-kubernetes 部署

这个是最终在服务器上部署起来的服务。使用也是非常简单。以下做个简单记录和后续ingress的修改记录
yaml如下:dify-kubernetes/dify-deployment.yaml at feature/pvc-volume · Winson-030/dify-kubernetes

这里记录下完整的。

  1. 主要修改存储路径,修改为自己的路径:三个数据库和plugin,api,总共有这么多处。
  2. 在k8s上新建ingress,直接指向dify-nginx的80端口即可