Skip to main content
エンタープライズ版のプラグイン管理機能が正式リリースされる前は、Web インターフェースからプラグインを削除しても、データベースのマーカーが変更されるだけで、K8s クラスタからプラグインリソースが実際に削除されることはありません。この記事では、プラグイン CRD リソースの関連概念と、K8s で実行されているプラグインを完全に削除する方法を紹介します。
以下の文章では、「プラグイン」、「Dify Plugin」、「DP」はすべてエンタープライズ版にインストールされた Dify プラグインを指します。

プラグインインストールがクラスタに与える影響

プラグインが正常にインストールされると、K8s クラスタ内で Runner Pod が実行されます。Pod 名はランダムに生成されたハッシュ値です。pluginName フィールドから具体的なプラグイン名とバージョンを確認できます。 例えば、bfb86f037071c05d3ce1d63c2f4f1e30--6 のサフィックス --6 は、これが6回目のインストール試行であることを示しています。プラグインのインストールが失敗した場合、次回の再インストール時にサフィックスの数字が自動的にインクリメントされ、以前失敗した CR は Failed 状態のまま保持されます。 以下のコマンドですべてのプラグイン CRD を確認できます: kubectl get dp 出力例

プラグインの削除

完全な削除プロセスには2つのステップがあります:データベースレコードのクリーンアップ + K8s リソースの削除。

データベースのクリーンアップ

現在、データベースをクリーンアップする最も簡単な方法は、Web インターフェースで「プラグインを削除」をクリックすることです。
⚠️ 重要:K8s リソースを削除する前に、必ず Web インターフェースで「プラグインを削除」をクリックしてください。 この操作により、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 コマンドによるプラグイン移行

以下のコマンドを使用して、プラグインの一括エクスポートとインストールを行うことができます:
以下のコマンドはプラグインの診断とクリーンアップに使用します: