惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

MyScale Blog
MyScale Blog
F
Fortinet All Blogs
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
D
Docker
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
爱范儿
爱范儿
V
Visual Studio Blog
Last Week in AI
Last Week in AI
WordPress大学
WordPress大学
aimingoo的专栏
aimingoo的专栏
小众软件
小众软件
L
LangChain Blog
Vercel News
Vercel News
阮一峰的网络日志
阮一峰的网络日志
IT之家
IT之家
P
Proofpoint News Feed
博客园_首页
D
DataBreaches.Net
T
The Blog of Author Tim Ferriss
The GitHub Blog
The GitHub Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
C
Check Point Blog
Engineering at Meta
Engineering at Meta
Microsoft Azure Blog
Microsoft Azure Blog

博客园 - dudu

test .NET CQRS 的实现中引入 ReadOnlyRepository 初试 .NET CQRS 开源库 LiteBus 什么是 Agentic ? 初试 Microsoft Agent Framework 初识 Microsoft Agent Framework:一句话介绍 ASP.NET Core 中读取 UserAgent 的正确姿势 记录一下对 ASP.NET Core Middleware 进行单元测试的代码 C# 实现通用的 IdEqualityComparer 用 Angular Signal Inputs 完成一个组件的重构 量子网络操作系统 QNodeOS 资料收集 在 Kubernetes 集群的 GPU 节点上部署 Ollama 尝试在 Kubernetes 集群上用阿里云 GPU 实例部署 Ollama + DeekSeek-R1 阿里云 GPU 实例云服务器本地部署 DeepSeek R1 尝试使用阿里云计算巢部署 DeepSeek-R1 Angular 中依赖注入问题造成 Observable 订阅不更新 园子博客后台 Angular 升级:手工迁移至 Standalone Component Angular 中使用 ChildContent 记录 园子博客后台升级至 angular 19 后 eslint 9 迁移记录 学习大模型(LLM)的英文好文收集
Kubernetes 集群上部署 Open WebUI
dudu · 2025-02-22 · via 博客园 - dudu

前一篇博文中记录了 k8s 集群上部署 ollama + deepseek-r1:7b,这篇博文记录一下 Open WebUI 的部署。

还是用 helm 部署,helm chart 用的是 https://github.com/open-webui/helm-charts

添加 open-webui 的 helm repo

helm repo add open-webui https://helm.openwebui.com/
helm repo update

准备 helm 清单文件 open-webui-values.yaml

ollamaUrls:
  - "http://ollama-deepseek.ai:11434"

extraEnvVars:
- name: "ENABLE_OPENAI_API"
  value: "False"

ollama:
  enabled: false

pipelines:
  enabled: false

persistence:
  storageClass: "cnblogs-default"

podLabels:
  app: open-webui

service:
  type: NodePort
  nodePort: "31116"

清单说明:

  • ollama-deepseek.ai 是在写前一篇博文时部署好的
  • 通过 extraEnvVars 设置环境变量禁用 openai,详见博问
  • storageClass 用的是集群上已有的
  • service 用的是 NodePort,通过 NodePort 在节点上暴露端口,然后通过阿里云负载均衡转发到这个端口
  • 没有使用 ingress,集群上部署了 ingress,但在不同的 namespace 下,ingress 不支持直接转发请求到不同 namespace 下的 service

通过下面的 helm 命令在 ai 命名空间下进行部署

helm upgrade --install --namespace ai open-webui open-webui/open-webui --values open-webui-values.yaml

查看 pod 运行情况

# kubectl get pods -l app=open-webui -n ai
NAME           READY   STATUS    RESTARTS   AGE
open-webui-0   1/1     Running   0          29s

pod 成功启动。

通过 kubectl logs 命令查看 open webui 的启动日志

# kubectl logs open-webui-0 -n ai

v0.5.14 - building the best open-source AI user interface.

https://github.com/open-webui/open-webui

INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit)

准备阿里云负载均衡,将请求转发到 k8s 节点的 31116 端口。

这时就可以通过浏览器访问 open-webui:

创建账号并登录,这时可以与通过 ollama 运行的 deepseek-r1:7b 模型对话了:

(7b模型的回答的确差很多)