跳到主要内容

Kubernetes 与 Helm

通过官方 OPL 数据空间 Helm Chart 部署到任意 Kubernetes 发行版,例如 EKS、AKS、GKE、OpenShift、Rancher 或自建 K8s。

前置条件

在开始之前,请确保已经准备好 共享基础设施要求

何时选择这种模式

  • 组织已经有 Kubernetes 平台与平台工程能力
  • 需要声明式 IaC 和 GitOps 工作流
  • 需要更高级的自动扩缩、滚动更新和 PDB
  • 面向数百到数千用户的关键业务场景

架构

Helm Chart 安装

helm repo add open-webui https://open-webui.github.io/helm-charts
helm repo update
helm install openwebui open-webui/open-webui -f values.yaml

你的 values.yaml 需要把默认值改成指向实际共享基础设施。常见关键配置包括:

  • replicaCount
  • databaseUrl
  • websocket
  • tika
  • ollama
  • persistence
  • ingress
  • extraEnvVars

Kubernetes 场景中,仍然要注意:

  • 使用统一的 WEBUI_SECRET_KEY
  • 使用 PostgreSQL 而不是 SQLite
  • 使用对象存储或 RWX 共享卷
  • 多副本时 Redis 必不可少
  • 数据库迁移只允许单实例执行

扩缩策略

  • HPA 依据 CPU 或内存扩缩
  • 每个 Pod 保持 UVICORN_WORKERS=1
  • 设置合理的 requests / limits
  • 配置 Pod Disruption Budget,保证维护期间最小可用实例数

更新流程

多副本更新的关键步骤

每次更新都应遵循:

  1. 先缩到 1 个副本
  2. 在这个副本上应用新镜像,并允许它执行迁移
  3. 等待 Pod 完全 ready
  4. 再扩回目标副本数,并关闭其余副本的迁移能力

否则存在并发迁移损坏数据库的风险。

关键考虑点

考虑项说明
存储多 Pod 需要 RWX 共享卷,或对象存储
密钥使用 K8s Secrets,并可结合 External Secrets / Sealed Secrets
数据库生产环境优先使用托管 PostgreSQL
Redis大多数部署一个 Redis 就足够,除非 Redis 本身也要求高可用
网络保持服务间低延迟,审计 NetworkPolicy

更多内容可参考:


联系企业销售 → sales@openwebui.com