このページは先行公開版です。内容は今後予告なく更新される可能性があります。

要件

この構成は、1日あたり最大 3000 人のアクティブユーザー に対応できます。さらに多くのユーザーがいる場合は、必要に応じてリソースをスケーリングしてください。

  • Kubernetes クラスター

    • ワーカーノード 6 台(各 8 CPU、32 GB RAM)
  • コンテナレジストリ

    • AWS ECR(AK/SK または IRSA)/ Azure ACR / Aliyun ACR / Tencent TCR / Dockerhub
  • 永続ストレージ

    • S3 / AWS S3(AK/SK または IRSA)/ Azure Blob / Aliyun OSS / Tencent COS
    • 512 GB ストレージ
  • PostgreSQL データベース

    • バージョン 14 以上
    • 4 CPU、8 GB RAM
    • 512 GB SSD ストレージ
  • Redis データベース

    • バージョン 6 以上
    • 2 GB RAM
  • ベクトルDB 仮想マシン - Qdrant クラスタ

    • 仮想マシン 3 台
    • 各 8 CPU、64 GB RAM
    • 各 100 GB ストレージ

Dify 各サービスのリソース上限(limits)

ServicesReplicasCPURAM - GBTotal CPUTotal RAM - GB
api3310930
worker3210630
web31133
sandbox31236
enterprise31236
enterpriseAudit31236
enterpriseFrontend31133
ssrfProxy31133
unstructured31236
plugin_daemon31339
plugin_controller31236
plugin_connector31236
gateway31236
minio11212
Total49122

デプロイ手順

1. Helm リポジトリ情報の取得

helm repo add dify https://langgenius.github.io/dify-helm
helm repo update

詳細は Dify Helm Chart をご確認ください。

2. values.yaml を保存・編集

  • Helm の設定ファイル values.yaml を作成し、必要な値を記入してください。
  • #REPLACE_ME# はすべて実際の値に置き換えてください。
  • "dify123456" などのプレースホルダーも独自の安全な値に変更してください。
###################################
# Please replace "dify123456" with your own value
###################################
global:
  appSecretKey: 'dify123456'
  consoleApiDomain: "console.dify.local"
  consoleWebDomain: "console.dify.local"
  serviceApiDomain: "api.dify.local"
  appApiDomain: "app.dify.local"
  appWebDomain: "app.dify.local"
  filesDomain: "upload.dify.local"
  enterpriseDomain: "enterprise.dify.local"

ingress:
  enabled: true
  className: "nginx"
  annotations: {
    # set file upload size limit
    nginx.ingress.kubernetes.io/proxy-body-size: "15m"
  }

api:
  replicas: 3
  serverWorkerAmount: 1
  innerApi:
    apiKey: "dify123456"
  resources:
    limits:
      cpu: 3000m
      memory: 10240Mi
    requests:
      cpu: 1500m
      memory: 5120Mi
worker:
  replicas: 3
  celeryWorkerAmount: 1
  resources:
    limits:
      cpu: 2000m
      memory: 10240Mi
    requests:
      cpu: 1000m
      memory: 5120Mi
web:
  replicas: 3
  resources:
    limits:
      cpu: 1000m
      memory: 1024Mi
    requests:
      cpu: 500m
      memory: 512Mi
sandbox:
  replicas: 3
  apiKey: "dify123456"
  resources:
    limits:
      cpu: 1000m
      memory: 2048Mi
    requests:
      cpu: 500m
      memory: 1024Mi
enterprise:
  replicas: 3
  appSecretKey: "dify123456"
  adminAPIsSecretKeySalt: "dify123456"
  innerApi:
    apiKey: "dify123456"
  resources:
    limits:
      cpu: 1000m
      memory: 2048Mi
    requests:
      cpu: 500m
      memory: 1024Mi
enterpriseAudit:
  replicas: 3
  resources:
    limits:
      cpu: 1000m
      memory: 2048Mi
    requests:
      cpu: 500m
      memory: 1024Mi
enterpriseFrontend:
  replicas: 3
  resources:
    limits:
      cpu: 1000m
      memory: 1024Mi
    requests:
      cpu: 500m
      memory: 512Mi
ssrfProxy:
  enabled: true
  replicas: 3
  resources:
    limits:
      cpu: 1000m
      memory: 1024Mi
    requests:
      cpu: 500m
      memory: 512Mi
unstructured:
  enabled: true
  replicas: 3
  resources:
    limits:
      cpu: 1000m
      memory: 2048Mi
    requests:
      cpu: 500m
      memory: 1024Mi
plugin_daemon:
  replicas: 3
  apiKey: "dify123456"
  resources:
    limits:
      cpu: 1000m
      memory: 3072Mi
    requests:
      cpu: 500m
      memory: 1536Mi
plugin_controller:
  replicas: 3
  resources:
    limits:
      cpu: 1000m
      memory: 2048Mi
    requests:
      cpu: 500m
      memory: 1024Mi
plugin_connector:
  replicas: 3
  apiKey: "dify123456"
  resources:
    limits:
      cpu: 1000m
      memory: 2048Mi
    requests:
      cpu: 500m
      memory: 1024Mi
gateway:
  replicas: 3
  resources:
    limits:
      cpu: 1000m
      memory: 2048Mi
    requests:
      cpu: 500m
      memory: 1024Mi
minio:
  replicas: 1
  resources:
    limits:
      cpu: 1000m
      memory: 2048Mi
    requests:
      cpu: 500m
      memory: 1024Mi

###################################
# Persistence Configration
###################################
persistence:
  type: "s3"
  s3:
    endpoint: "https://xxx.r2.cloudflarestorage.com"
    accessKey: "#REPLACE_ME#"
    secretKey: "#REPLACE_ME#"
    region: "us-east-1"
    bucketName: "your-bucket-name"
    addressType: ""
    useAwsManagedIam: false
    useAwsS3: true

###################################
# External postgres
###################################
externalPostgres:
  enabled: true
  address: "#REPLACE_ME#"
  port: 5432
  credentials:
    dify:
      database: "dify"
      username: "postgres"
      password: "#REPLACE_ME#"
      sslmode: "require"
    plugin_daemon:
      database: "dify_plugin_daemon"
      username: "postgres"
      password: "#REPLACE_ME#"
      sslmode: "require"
    enterprise:
      database: "enterprise"
      username: "postgres"
      password: "#REPLACE_ME#"
      sslmode: "require"
    audit:
      database: "audit"
      username: "postgres"
      password: "#REPLACE_ME#"
      sslmode: "require"

###################################
# External Redis
###################################
externalRedis:
  enabled: true
  host: "#REPLACE_ME#"
  port: 6379
  username: ""
  password: "#REPLACE_ME#"
  useSSL: false

###################################
# External Qdrant
###################################
vectorDB:
  useExternal: true
  externalType: "qdrant"
  externalQdrant:
    endpoint: "http://your-qdrant-cluster-url.qdrant.tech/"
    apiKey: "#REPLACE_ME#"

imagePullSecrets: []

その他の構成ステップ

3. Container Registry の設定

4. 永続ストレージ の設定

5. 外部 PostgreSQL の設定

6. 外部 Redis の設定

7. 外部 Qdrant(クラスタ) の設定

8. Ingress Controller の設定

9. Helm で Dify をインストール

helm upgrade -i dify -f values.yaml dify/dify

10. インストール確認

高度な設定項目

1. ドメインと SSL 証明書

2. メールプロバイダー設定

3. パフォーマンス最適化