# RAGFlow 组件交互说明 - 前端 nginx 仅负责静态资源与入口转发,所有动态请求通过 Ingress 进入 Ragflow API。 - Ragflow API 在接到任务时写入 Redis Stream,由 Worker 消费并回写进度;任务相关数据保存在共享存储(数据库、向量库、对象存储)。 - Admin 只对 Ragflow API 发起少量 HTTP 调用(如健康检查、后台管理),不会直接访问其他组件。 - MCP Server 通过 HTTP/SSE 调用 Ragflow API 暴露的检索与工具接口,本身不直接访问底层存储。 - API、Admin、Worker 共同依赖外部的数据库、Redis、向量库与对象存储。 ``` Browser Ingress Frontend Ragflow API Redis Queue Worker Admin MCP Server Shared Stores (DB/Vector/MinIO) | | | | | | | | | 1. |--GET /-->|--/------->| | | | | | | |<--HTML---|<--static--| | | | | | | | | | | | | | | | | | | | | | | | | 2. |--/api--> |----------/api---------->| | | | | | | | | |-------------read/write------------------------------------------------->| |<--resp---|<------HTTP resp --------| | | | | | | | | | | | | | | | | | | | | | | | 3. |--task--> |----------/api---------->|--write msg-->| | | | | | | | | |--consume-->| | | | | | | |<--progress---| |------------------read/write---------------->| |<--resp---|<------HTTP resp --------| | | | | | | | | | | | | | | | | | | | | | | | 4. | | | |<--HTTP/SSE (MCP tools & calls)------------------>| | | | | |----------------HTTP/SSE resp---------------------| | | | | | | | | | | | | | | | | | | | 5. |----req-->|------/api/v1/admin----->|---------/api/v1/admin-------------->| | | | | | | |-------------read/write----------->| |<--resp---|<------HTTP resp --------|<------------HTTP resp --------------| | | | | | |<--------/v1/system/ping ------------| | | | | | |---------HTTP resp------------------>| | | ``` ### 主要配置项列表 下表按照作用域汇总 Helm `values.yaml` 支持的键及默认值;除非特别说明,`null` 表示该字段缺省时不会被渲染,`[]`/`{}` 表示空集合,可按需覆写。 #### 全局与环境 | 参数 | 默认值 | 说明 | |---|---|---| | `nameOverride` | `null` | 覆盖 Chart 名称用于生成 Kubernetes 资源名前缀。 | | `fullnameOverride` | `null` | 直接指定完整资源名前缀。 | | `imagePullSecrets` | `[]` | 追加到所有工作负载的 `imagePullSecrets`。 | | `env.DOC_ENGINE` | `infinity` | 选择文档/向量引擎:`infinity`、`elasticsearch` 或 `opensearch`。 | | `env.STACK_VERSION` | `8.11.3` | 默认 Elastic Stack 版本。 | | `env.TZ` | `Asia/Shanghai` | 设置容器时区。 | | `env.DOC_BULK_SIZE` | `4` | 文档批量写入大小。 | | `env.EMBEDDING_BATCH_SIZE` | `16` | 向量嵌入批次大小。 | | `env.*` | *(自定义)* | 追加任意环境变量,写入 `*-env-config` Secret 并被所有组件加载。 | #### externalServices.* | 参数 | 默认值 | 说明 | |---|---|---| | `externalServices.redis.enabled` | `false` | 复用外部 Redis 时开启,禁用内置 Redis 部署。 | | `externalServices.redis.host` | `redis:6379` | 外部 Redis 连接地址。 | | `externalServices.redis.password` | `password` | 外部 Redis 密码。 | | `externalServices.redis.db` | `1` | 外部 Redis 数据库序号。 | | `externalServices.mysql.enabled` | `false` | 复用外部 MySQL 时开启,禁用内置 MySQL。 | | `externalServices.mysql.host` | `mysql` | 外部 MySQL 主机名。 | | `externalServices.mysql.port` | `3306` | 外部 MySQL 端口。 | | `externalServices.mysql.name` | `rag_flow` | 外部 MySQL 数据库名。 | | `externalServices.mysql.user` | `root` | 外部 MySQL 用户名。 | | `externalServices.mysql.password` | `password` | 外部 MySQL 密码。 | | `externalServices.mysql.max_connections` | `900` | 可选,覆盖最大连接数。 | | `externalServices.mysql.stale_timeout` | `300` | 可选,连接超时时间(秒)。 | | `externalServices.mysql.max_allowed_packet` | `1073741824` | 可选,MySQL `max_allowed_packet`。 | | `externalServices.s3.enabled` | `false` | 使用外部 S3 兼容存储时开启,禁用内置 MinIO。 | | `externalServices.s3.access_key` | `""` | S3 访问 key。 | | `externalServices.s3.secret_key` | `""` | S3 密钥。 | | `externalServices.s3.session_token` | `""` | 临时凭证 token。 | | `externalServices.s3.region_name` | `""` | S3 Region(若留空,可结合 `region`/`endpoint_url`)。 | | `externalServices.s3.endpoint_url` | `""` | S3 Endpoint。 | | `externalServices.s3.bucket` | `""` | 目标桶名称。 | | `externalServices.s3.prefix_path` | `""` | 上传前缀。 | | `externalServices.s3.signature_version` | `""` | 自定义签名版本,如 `s3v4`。 | | `externalServices.s3.addressing_style` | `""` | 自定义桶寻址方式:`virtual`/`path`/`auto`。 | | `externalServices.elasticsearch.enabled` | `false` | 使用外部 Elasticsearch 时开启,禁用内置 ES。 | | `externalServices.elasticsearch.host` | `http://elasticsearch:9200` | 示例默认值;仅为向后兼容,占位使用。 | | `externalServices.elasticsearch.hosts` | `null` | 启用外部 ES 时必须提供的地址(可为字符串或字符串数组)。 | | `externalServices.elasticsearch.username` | `elastic` | 外部 Elasticsearch 用户名。 | | `externalServices.elasticsearch.password` | `password` | 外部 Elasticsearch 密码。 | #### ragflow 通用配置 | 参数 | 默认值 | 说明 | |---|---|---| | `ragflow.image.repository` | `infiniflow/ragflow` | 默认镜像仓库,所有组件继承。 | | `ragflow.image.tag` | `v0.21.1-slim` | 默认镜像标签。 | | `ragflow.image.pullPolicy` | `IfNotPresent` | 默认镜像拉取策略。 | | `ragflow.image.pullSecrets` | `[]` | 全局镜像拉取凭据。 | | `ragflow.service_conf` | `null` | 追加到 `local.service_conf.yaml` 的自定义内容。 | | `ragflow.llm_factories` | `null` | 渲染至 `llm_factories.json` 的自定义配置。 | #### ragflow.frontend | 参数 | 默认值 | 说明 | |---|---|---| | `ragflow.frontend.replicaCount` | `2` | 前端 Deployment 副本数。 | | `ragflow.frontend.deployment.strategy` | `null` | 自定义 Deployment strategy。 | | `ragflow.frontend.deployment.resources` | `limits: {cpu: 500m, memory: 500Mi}; requests: {cpu: 200m, memory: 200Mi}` | Pod 资源请求与限制。 | | `ragflow.frontend.podAnnotations` | `{}` | 额外 Pod 注解。 | | `ragflow.frontend.probes` | `{}` | 可自定义 liveness/readiness/startup 探针,留空时使用内置默认值。 | | `ragflow.frontend.extraEnv` | `[]` | 追加前端容器环境变量。 | | `ragflow.frontend.image.*` | `null` | 可按需覆盖仓库/tag/pullPolicy/pullSecrets,缺省继承全局设置。 | | `ragflow.frontend.service.type` | `ClusterIP` | Service 类型。 | | `ragflow.frontend.service.port` | `80` | Service 端口。 | #### ragflow.api | 参数 | 默认值 | 说明 | |---|---|---| | `ragflow.api.replicaCount` | `2` | API Deployment 副本数。 | | `ragflow.api.deployment.strategy` | `null` | 自定义 Deployment strategy。 | | `ragflow.api.deployment.resources` | `limits: {cpu: "1", memory: 2Gi}; requests: {cpu: 500m, memory: 1Gi}` | Pod 资源请求与限制。 | | `ragflow.api.podAnnotations` | `{}` | 额外 Pod 注解。 | | `ragflow.api.debug` | `false` | 启用 Flask 调试/自动重载。 | | `ragflow.api.extraEnv` | `[]` | 追加 API 环境变量。 | | `ragflow.api.extraArgs` | `[]` | 追加启动参数(写到 `python3 api/ragflow_server.py` 命令后)。 | | `ragflow.api.probes` | `{}` | 自定义探针,留空时使用 HTTP `/v1/system/healthz` 默认配置。 | | `ragflow.api.image.*` | `null` | 按需覆盖镜像配置,缺省继承全局。 | | `ragflow.api.service.type` | `ClusterIP` | Service 类型。 | | `ragflow.api.service.port` | `80` | Service 端口(Pod 监听 9380)。 | #### ragflow.worker | 参数 | 默认值 | 说明 | |---|---|---| | `ragflow.worker.replicaCount` | `2` | Worker Deployment 副本数。 | | `ragflow.worker.deployment.strategy` | `null` | 自定义 Deployment strategy。 | | `ragflow.worker.deployment.resources` | `limits: {cpu: "2", memory: 4Gi}; requests: {cpu: "1", memory: 2Gi}` | Worker 资源请求与限制。 | | `ragflow.worker.podAnnotations` | `{}` | 额外 Pod 注解。 | | `ragflow.worker.consumerRange.enabled` | `false` | 启用消费者编号区间。 | | `ragflow.worker.consumerRange.begin` | `0` | 区间起始编号,与 `enabled` 联动使用。 | | `ragflow.worker.extraArgs` | `[]` | 追加 Task Executor 启动参数。 | | `ragflow.worker.extraEnv` | `[]` | 追加 Worker 环境变量。 | | `ragflow.worker.probes` | `{}` | 自定义探针,留空时使用内置命令行探活。 | | `ragflow.worker.image.*` | `null` | 覆盖 Worker 镜像配置,缺省继承全局。 | #### ragflow.admin | 参数 | 默认值 | 说明 | |---|---|---| | `ragflow.admin.enabled` | `false` | 是否部署 Admin 服务。 | | `ragflow.admin.replicaCount` | `1` | Admin Deployment 副本数。 | | `ragflow.admin.deployment.strategy` | `null` | 自定义 Deployment strategy。 | | `ragflow.admin.deployment.resources` | `limits: {cpu: "1", memory: 2Gi}; requests: {cpu: 500m, memory: 1Gi}` | Admin 资源请求与限制。 | | `ragflow.admin.podAnnotations` | `{}` | 额外 Pod 注解。 | | `ragflow.admin.debug` | `false` | 启用 Flask 调试模式。 | | `ragflow.admin.extraArgs` | `[]` | 追加 Admin 启动参数。 | | `ragflow.admin.extraEnv` | `[]` | 追加 Admin 环境变量。 | | `ragflow.admin.probes` | `{}` | 自定义探针,留空时使用内置 HTTP 健康检查。 | | `ragflow.admin.image.*` | `null` | 覆盖 Admin 镜像配置。 | | `ragflow.admin.service.type` | `ClusterIP` | Service 类型。 | | `ragflow.admin.service.port` | `80` | Service 端口(Pod 监听 9381)。 | #### ragflow.mcp | 参数 | 默认值 | 说明 | |---|---|---| | `ragflow.mcp.enabled` | `false` | 是否部署 MCP Server。 | | `ragflow.mcp.replicaCount` | `1` | MCP Deployment 副本数。 | | `ragflow.mcp.deployment.strategy` | `null` | 自定义 Deployment strategy。 | | `ragflow.mcp.deployment.resources` | `limits: {cpu: "1", memory: 1Gi}; requests: {cpu: "1", memory: 1Gi}` | MCP 资源请求与限制。 | | `ragflow.mcp.podAnnotations` | `{}` | 额外 Pod 注解。 | | `ragflow.mcp.mode` | `self-host` | MCP 运行模式。 | | `ragflow.mcp.hostApiKey` | `""` | 以 self-host 模式调用 API 时使用的 key。 | | `ragflow.mcp.transport.sse` | `true` | 是否启用 SSE 传输。 | | `ragflow.mcp.transport.streamableHttp` | `true` | 是否启用 Streamable HTTP。 | | `ragflow.mcp.transport.jsonResponse` | `true` | Streamable HTTP 是否使用 JSON 响应。 | | `ragflow.mcp.extraArgs` | `[]` | 追加 MCP 启动参数。 | | `ragflow.mcp.extraEnv` | `[]` | 追加 MCP 环境变量。 | | `ragflow.mcp.probes` | `{}` | 自定义探针,留空时使用 TCP 探活。 | | `ragflow.mcp.image.*` | `null` | 覆盖 MCP 镜像配置。 | | `ragflow.mcp.port` | `9382` | MCP 容器监听端口,模板内置默认值,需时可显式覆写。 | | `ragflow.mcp.service.type` | `ClusterIP` | Service 类型。 | | `ragflow.mcp.service.port` | `80` | Service 端口(Pod 监听 9382)。 | #### 内置中间件(按需启用) | 参数 | 默认值 | 说明 | |---|---|---| | `infinity.image.repository` | `infiniflow/infinity` | Infinity 镜像仓库(`env.DOC_ENGINE=infinity` 时部署)。 | | `infinity.image.tag` | `v0.6.1` | Infinity 镜像标签。 | | `infinity.image.pullPolicy` | `IfNotPresent` | 镜像拉取策略。 | | `infinity.image.pullSecrets` | `[]` | 镜像凭据。 | | `infinity.storage.className` | `null` | 挂载使用的 StorageClass。 | | `infinity.storage.capacity` | `5Gi` | PVC 容量。 | | `infinity.deployment.strategy` | `null` | Deployment strategy。 | | `infinity.deployment.resources` | `null` | 资源请求/限制(缺省未设置)。 | | `infinity.service.type` | `ClusterIP` | Service 类型。 | | `elasticsearch.credentials.username` | `elastic` | 内置 Elasticsearch 默认用户名。 | | `elasticsearch.credentials.password` | `infini_rag_flow_helm` | 内置 Elasticsearch 默认密码。 | | `elasticsearch.image.repository` | `elasticsearch` | Elasticsearch 镜像仓库。 | | `elasticsearch.image.tag` | `8.11.3` | Elasticsearch 镜像标签。 | | `elasticsearch.image.pullPolicy` | `IfNotPresent` | 镜像拉取策略。 | | `elasticsearch.image.pullSecrets` | `[]` | 镜像凭据。 | | `elasticsearch.initContainers.alpine.repository` | `alpine` | 初始化容器镜像。 | | `elasticsearch.initContainers.alpine.tag` | `latest` | 初始化容器标签。 | | `elasticsearch.initContainers.busybox.repository` | `busybox` | 初始化容器镜像。 | | `elasticsearch.initContainers.busybox.tag` | `latest` | 初始化容器标签。 | | `elasticsearch.storage.className` | `null` | ElasticSearch PVC 的 StorageClass。 | | `elasticsearch.storage.capacity` | `20Gi` | Elasticsearch 数据卷容量。 | | `elasticsearch.deployment.strategy` | `null` | Deployment strategy。 | | `elasticsearch.deployment.resources.requests.cpu` | `"4"` | CPU 请求。 | | `elasticsearch.deployment.resources.requests.memory` | `16Gi` | 内存请求。 | | `elasticsearch.service.type` | `ClusterIP` | Service 类型。 | | `opensearch.image.repository` | `opensearchproject/opensearch` | Opensearch 镜像仓库。 | | `opensearch.image.tag` | `2.19.1` | Opensearch 镜像标签。 | | `opensearch.image.pullPolicy` | `IfNotPresent` | 镜像拉取策略。 | | `opensearch.image.pullSecrets` | `[]` | 镜像凭据。 | | `opensearch.initContainers.alpine.repository` | `alpine` | 初始化容器镜像。 | | `opensearch.initContainers.alpine.tag` | `latest` | 初始化容器标签。 | | `opensearch.initContainers.busybox.repository` | `busybox` | 初始化容器镜像。 | | `opensearch.initContainers.busybox.tag` | `latest` | 初始化容器标签。 | | `opensearch.storage.className` | `null` | Opensearch PVC 的 StorageClass。 | | `opensearch.storage.capacity` | `20Gi` | Opensearch 数据卷容量。 | | `opensearch.deployment.strategy` | `null` | Deployment strategy。 | | `opensearch.deployment.resources.requests.cpu` | `"4"` | CPU 请求。 | | `opensearch.deployment.resources.requests.memory` | `16Gi` | 内存请求。 | | `opensearch.service.type` | `ClusterIP` | Service 类型。 | | `minio.credentials.user` | `rag_flow` | 内置 MinIO 用户名。 | | `minio.credentials.password` | `infini_rag_flow_helm` | MinIO 密码。 | | `minio.image.repository` | `quay.io/minio/minio` | MinIO 镜像仓库。 | | `minio.image.tag` | `RELEASE.2023-12-20T01-00-02Z` | MinIO 镜像标签。 | | `minio.image.pullPolicy` | `IfNotPresent` | 镜像拉取策略。 | | `minio.image.pullSecrets` | `[]` | 镜像凭据。 | | `minio.storage.className` | `null` | MinIO PVC 的 StorageClass。 | | `minio.storage.capacity` | `5Gi` | MinIO 数据卷容量。 | | `minio.deployment.strategy` | `null` | Deployment strategy。 | | `minio.deployment.resources` | `null` | 资源请求/限制(缺省未设置)。 | | `minio.service.type` | `ClusterIP` | Service 类型。 | | `mysql.credentials.name` | `rag_flow` | 内置 MySQL 默认数据库。 | | `mysql.credentials.user` | `root` | MySQL 默认用户。 | | `mysql.credentials.password` | `infini_rag_flow_helm` | MySQL 用户密码。 | | `mysql.image.repository` | `mysql` | MySQL 镜像仓库。 | | `mysql.image.tag` | `8.0.39` | MySQL 镜像标签。 | | `mysql.image.pullPolicy` | `IfNotPresent` | 镜像拉取策略。 | | `mysql.image.pullSecrets` | `[]` | 镜像凭据。 | | `mysql.storage.className` | `null` | MySQL PVC 的 StorageClass。 | | `mysql.storage.capacity` | `5Gi` | MySQL 数据卷容量。 | | `mysql.deployment.strategy` | `null` | Deployment strategy。 | | `mysql.deployment.resources` | `null` | 资源请求/限制(缺省未设置)。 | | `mysql.service.type` | `ClusterIP` | Service 类型。 | | `redis.credentials.password` | `infini_rag_flow_helm` | 内置 Redis 密码。 | | `redis.credentials.db` | `1` | 内置 Redis 默认数据库。 | | `redis.image.repository` | `valkey/valkey` | Redis (Valkey) 镜像仓库。 | | `redis.image.tag` | `8` | Redis 镜像标签。 | | `redis.image.pullPolicy` | `IfNotPresent` | 镜像拉取策略。 | | `redis.image.pullSecrets` | `[]` | 镜像凭据。 | | `redis.storage.className` | `null` | Redis PVC 的 StorageClass。 | | `redis.storage.capacity` | `5Gi` | Redis 数据卷容量。 | | `redis.persistence.enabled` | `true` | 是否启用有状态持久化 (StatefulSet+PVC)。 | | `redis.persistence.retentionPolicy.whenDeleted` | `null` | 可选,自定义 PVC 删除行为。 | | `redis.persistence.retentionPolicy.whenScaled` | `null` | 可选,自定义缩容时的 PVC 保留策略。 | | `redis.deployment.strategy` | `null` | StatefulSet updateStrategy(缺省未设置)。 | | `redis.deployment.resources` | `null` | 资源请求/限制(缺省未设置)。 | | `redis.service.type` | `ClusterIP` | Service 类型。 | #### Ingress | 参数 | 默认值 | 说明 | |---|---|---| | `ingress.enabled` | `false` | 是否创建 Ingress。 | | `ingress.className` | `""` | 绑定的 IngressClass,留空时使用集群默认。 | | `ingress.annotations` | `{}` | 自定义 Ingress 注解。 | | `ingress.hosts` | `[{"host":"chart-example.local","paths":[{path:"/",component:"frontend"},{path:"/api",component:"api"},{path:"/v1",component:"api"}]}]` | 路由规则配置,可按组件映射到不同 Service/端口。 | | `ingress.tls` | `[]` | TLS 配置列表。 |