Skip to main content
在企业版插件管理功能正式上线之前,通过 Web 界面删除插件只会修改数据库标记,并不会真正从 K8s 集群中移除插件资源。本文介绍插件 CRD 资源的相关概念,以及如何彻底移除 K8s 中运行的插件。
下文中的”插件”、“Dify Plugin”、“DP”均指企业版安装的 Dify 插件。

插件安装对集群的影响

插件安装成功后,K8s 集群中会运行一个 Runner Pod,Pod 名称为随机生成的哈希值。你可以通过 pluginName 字段查看具体的插件名称及版本。 例如 bfb86f037071c05d3ce1d63c2f4f1e30--6 中,后缀 --6 表示这是第六次安装尝试。如果插件安装失败,下次重新安装时会自动递增后缀数字,而之前失败的 CR 会以 Failed 状态保留。 使用以下命令查看所有插件 CRD: kubectl get dp 输出示例

删除插件

完整的删除流程包含两步:清理数据库记录 + 删除 K8s 资源。

清理数据库

目前清理数据库最简便的方法是在 Web 界面点击”删除插件”。
⚠️ 重要:请务必先在 Web 界面点击”删除插件”,再删除 K8s 资源。 此操作会从 dify-plugin 表中删除安装记录;如果跳过这一步,你需要手动清理以下数据库表中的相关记录。
数据库表结构

删除集群资源

删除特定插件

由于 DifyPlugin 是 Kubernetes 自定义资源定义(CRD)管理的资源,直接删除 Pod 无法彻底清除,必须从控制器层面进行删除。 以上面的插件为例,可以通过 Pod 名称删除指定插件。删除 DifyPlugin CR 后,Kubernetes 的垃圾回收机制会自动级联删除所有关联的子资源。
执行上述命令后,以下资源会被自动删除:
  • Deployment:bfb86f037071c05d3ce1d63c2f4f1e30--6
  • ReplicaSet:bfb86f037071c05d3ce1d63c2f4f1e30--6-67dbf9f9d5
  • Pod:bfb86f037071c05d3ce1d63c2f4f1e30--6-67dbf9f9d5-k8ktn
  • Service:svc-bfb86f037071c05d3ce1d63c2f4f1e30--6

删除所有插件

删除所有失败的插件

此外,失败的插件安装记录保存在 install_tasks 表中。 SQL 查询结果

通过 Flask 命令迁移插件

以下命令可用于插件的批量导出与安装:
以下命令用于插件诊断与清理: