专属
文档
插件
助手
邀请
顶部
快速返回页面顶部
收起
收起工具栏
轩辕镜像 官方专业版
轩辕镜像
专业版
轩辕镜像 官方专业版
轩辕镜像
专业版
首页个人中心搜索镜像

交易
充值流量我的订单
工具
提交工单页面收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题轩辕镜像免费版
其他
关于我们网站地图
热门搜索:
ghcr.io/kserve/models-web-app

ghcr.io/kserve/models-web-app:sha-c36b56a

ghcr.iolinux/amd64sha-c36b56a大小: 未知更新于 2026年6月6日
让 AI 帮你使用轩辕镜像? · 展开查看说明

如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。

只需在 AI 对话中先发送下面这句话即可:

请先完整阅读并严格遵守以下文档中的全部规则与要求:

https://xuanyuan.cloud/agents.md

在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。

查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。

模型Web应用

此Web应用负责允许用户在Kubeflow集群中管理KServe推理资源。它提供了用户友好的方式来处理InferenceService和InferenceGraph自定义资源的生命周期。

支持的资源

  • InferenceService 资源(serving.kserve.io/v1beta1版本)
  • InferenceGraph 资源(serving.kserve.io/v1alpha1版本)

创建表单还支持多文档YAML,用于按顺序创建受支持的KServe资源。多文档创建目前接受InferenceService、InferenceGraph和TrainedModel资源。资源按文档顺序创建;如果创建失败,应用会报告失败的文档和已创建的资源,但不会回滚之前成功创建的资源。

当前范围

InferenceService和InferenceGraph均为应用中的一等资源,但目前它们的UI界面并不完全相同:

  • InferenceService仍是主要的模型服务器管理流程,包括主列表/详情体验和服务特定的操作视图。
  • InferenceGraph通过专用的列表、创建、编辑和详情路由提供。
  • InferenceGraph详情目前侧重于图概述、事件和YAML,而非InferenceService的完整操作视图集。

文档

  • 测试指南 - 使用Jest和Cypress进行单元测试和端到端测试的综合指南

连接应用

Web应用与其他KServe组件一起安装,位于kserve或kubeflow命名空间中。存在一个VirtualService,通过Istio Ingress Gateway公开应用。根据安装环境,将使用以下Ingress Gateway:

安装模式Ingress网关
Standalone KServeknative-ingress-gateway.knative-serving
Kubeflowkubeflow-gateway.kubeflow

要访问应用,需在浏览器中导航至:

${INGRESS_IP}/models/

或者,可通过kubectl port-forward访问应用。在此情况下,需将应用配置为:

  • 不执行任何授权检查(因为没有登录用户)
  • 在/前缀下工作
  • 禁用安全Cookie(因为应用将通过纯HTTP公开)

可通过以下命令应用上述配置:

# 编辑配置映射
# CONFIG=manifests/kustomize/overlays/kubeflow/kustomization.yaml
CONFIG=manifests/kustomize/base/kustomization.yaml
vim ${CONFIG}

# 向configMapGenerator的literals添加以下环境变量
# 针对kserve-models-web-app-config
- APP_PREFIX=/
- APP_DISABLE_AUTH="True"
- APP_SECURE_COOKIES="False"

# 重新应用kustomization
# kustomize build manifests/kustomize/overlays/kubeflow | kubectl apply -f -
kustomize build manifests/kustomize/base | kubectl apply -f -

配置

以下是可为此基础应用的任何Web应用设置的环境变量列表:

环境变量默认值描述
APP_PREFIX/models通过设置base-url元素控制应用的前缀
APP_DISABLE_AUTHFalse控制应用是否应使用SubjectAccessReviews确保用户有权执行操作
APP_SECURE_COOKIESTrue控制应用是否应使用安全CSRF Cookie。默认情况下,应用期望通过HTTPS公开
CSRF_SAMESITEStrict控制CSRF Cookie的SameSite值
USERID_HEADERkubeflow-userid每个请求中包含登录用户名的头字段
USERID_PREFIX""从USERID_HEADER值中移除的前缀,用于提取登录用户名
GRAFANA_PREFIX/grafana指标仪表板的Grafana端点前缀
GRAFANA_CPU_MEMORY_DBdb/knative-serving-revision-cpu-and-memory-usageCPU和内存指标的Grafana仪表板名称
GRAFANA_HTTP_REQUESTS_DBdb/knative-serving-revision-http-requestsHTTP请求指标的Grafana仪表板名称
ALLOWED_NAMESPACES""允许访问的命名空间逗号分隔列表。若为空,可访问所有命名空间。单个命名空间会自动选择并隐藏下拉菜单

命名空间过滤配置

对于独立部署,使用ALLOWED_NAMESPACES配置用户可访问的命名空间:

  • 空值/未设置(默认):可访问所有集群命名空间
  • 单个命名空间:ALLOWED_NAMESPACES="kubeflow-user" - 自动选择,隐藏下拉菜单
  • 多个命名空间:ALLOWED_NAMESPACES="ns1,ns2,ns3" - 过滤下拉菜单

无效命名空间将被忽略;若没有有效命名空间,将回退到所有命名空间。

示例

# 仅允许访问一个命名空间(自动选择,隐藏下拉菜单)
export ALLOWED_NAMESPACES="kubeflow-user"

# 允许访问多个特定命名空间
export ALLOWED_NAMESPACES="kubeflow-user,kubeflow-admin,ml-team"

# 默认行为 - 可访问所有命名空间
unset ALLOWED_NAMESPACES

Kubernetes部署

将环境变量添加到部署配置中:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: kserve-models-web-application
spec:
  template:
    spec:
      containers:
      - name: kserve-models-web-application
        env:
        - name: ALLOWED_NAMESPACES
          value: "kubeflow-user,kubeflow-admin"

Grafana配置

应用支持Grafana端点和仪表板名称的运行时配置,允许使用自定义Grafana实例和仪表板配置,无需重新构建应用。

若使用Kustomize在Kubernetes上部署,可通过编辑manifests/kustomize/base/kustomization.yaml(或覆盖层)中kserve-models-web-app-config的configMapGenerator,在应用的ConfigMap中设置这些值。根据需要更新以下字面量:

  • GRAFANA_PREFIX(例如,/grafana或/custom-grafana)
  • GRAFANA_CPU_MEMORY_DB(例如,db/custom-cpu-memory-dashboard)
  • GRAFANA_HTTP_REQUESTS_DB(例如,db/custom-http-requests-dashboard)

编辑后,重新应用清单,例如:

kustomize build manifests/kustomize/base | kubectl apply -f -

配置API

可通过访问/api/config端点验证Grafana配置:

curl http://your-app-url/api/config

预期响应:

{
  "grafanaPrefix": "/custom-grafana",
  "grafanaCpuMemoryDb": "db/custom-cpu-memory-dashboard",
  "grafanaHttpRequestsDb": "db/custom-http-requests-dashboard"
}

开发

前端使用Angular构建,后端使用Python Flask框架编写。

此Web应用利用kubeflow/notebooks代码库中的通用代码。我们希望在不同的Kubeflow Web应用中保持相同的用户体验,并使它们处于相同的开发状态。为此,应用将使用此共享通用代码。

这要求在本地构建应用或构建OCI容器镜像时获取此通用代码。

要在本地运行应用,需:

  • 以监视模式构建前端
  • 运行后端

npm run build:watch命令会将前端制品构建到后端的static文件夹中以进行服务。因此,要查看应用,需启动后端并连接到localhost:5000。

依赖要求

  • node 22.0.0
  • python 3.12

前端

选项1:使用Makefile(推荐)

cd $KSERVE_MODELS_WEB_APPLICATION_REPOSITORY/frontend

# 设置依赖并构建通用库
make setup

# 可选:指定自定义Kubeflow代码库路径。默认:`../../notebooks`(相对于frontend目录)
# make setup KF_REPO=/path/to/notebooks
# 清理命令:提供make clean目标以移除node_modules
# make clean

# 构建并监视更改
npm run build:watch

选项2:手动设置

# 构建通用库
COMMIT=$(cat ./frontend/COMMIT)
cd $KUBEFLOW_REPOSITORY/components/crud-web-apps/common/frontend/kubeflow-common-lib
git checkout $COMMIT

npm i
npm run build
cd dist/kubeflow
npm link

# 运行应用前端
cd $KSERVE_MODELS_WEB_APPLICATION_REPOSITORY/frontend
npm i
npm link kubeflow
npm run build:watch

后端

本地运行

# 创建虚拟环境并安装依赖
# https://packaging.python.org/guides/installing-using-pip-and-virtual-environments/
cd $KSERVE_MODELS_WEB_APPLICATION_REPOSITORY/backend
python3.12 -m pip install --user virtualenv
python3.12 -m venv web-application-development
source web-application-development/bin/activate

# 在激活的虚拟环境中安装依赖
KUBEFLOW_REPOSITORY="/path/to/kubeflow/notebooks" make -C backend install-deps

# 运行后端
make -C backend run-dev

已知问题

使用oauth2-proxy时的大型JWT令牌

具有大型JWT令牌的用户(常见于Azure AD和广泛的组成员身份)可能会遇到请求失败。部署包含Gunicorn配置(GUNICORN_CMD_ARGS=--limit-request-field_size 32000)以处理更大的请求头。

有关更多详细信息,请参阅oauth2-proxy已知问题。

轩辕镜像配置手册

按平台快速找到配置文档

Docker

登录仓库拉取

登录认证 · 私有仓库

专属域名拉取

免登录 · 高速拉取

Linux

Docker 镜像配置

Windows / Mac

Docker Desktop 配置

MacOS OrbStack

OrbStack 容器

Docker Compose

Compose 项目配置

NAS

群晖

Synology 配置

飞牛

fnOS 镜像配置

绿联

绿联 NAS

威联通

QNAP 配置

极空间

极空间 NAS

企业仓库

其他仓库

ghcr · Quay · nvcr

Harbor 镜像源

Proxy Repository 对接

Portainer 镜像源

Registries 配置

Nexus 镜像源

Docker Proxy 缓存

开发工具

Dev Containers

VS Code 开发容器

Podman

Podman 配置指南

Singularity / Apptainer

HPC 科学计算容器

Kubernetes

K8s Containerd

Kubernetes · Containerd

K3s

轻量级集群

面板 / 网络

爱快路由

iKuai 镜像加速

宝塔面板

一键配置镜像源

AI

用 AI 使用轩辕镜像

agents.md · AI 对话 · 提示词

需要其他帮助?请查看我们的 常见问题 Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

功能

免费版与专业版区别

功能对比 · 版本选择

支持的镜像仓库

Docker Hub · GCR · GHCR

新手拉取配置

登录 · 专属域名 · 配置

docker search 限制

专属域名 · Hub 搜索

不支持 push

仅支持 pull · 不支持

拉取速度原因

带宽 · 缓存 · 冷热镜像

排错

402 与流量用尽

402 · 流量包 · 充值

401 认证失败

401 · docker login

manifest unknown

标签错误 · 镜像不存在

410 Gone 排查

410 · Docker 升级

429 限流

免费版 · 请求频率

DNS 超时

DNS 解析 · 网络超时

账号

失败是否计费

manifest · blob · 计费

申请开发票(企业 / 个人)

企业 · 个人 · 工单

修改登录密码

网站 · 仓库 · 重置

注销账户

工单 · 数据 · 注销

原理

mirrors 不生效

daemon.json · 重启

去掉域名前缀

docker tag · 重命名

指定架构拉取

ARM64 · AMD64 · 多架构

latest 与「最新」

digest · 版本号 · 标签

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
ghcr.io/kserve/models-web-app
博客Docker 镜像公告与技术博客
热门查看热门 Docker 镜像推荐
教程轩辕镜像功能与使用教程
安装一键安装 Docker 并配置镜像源
官方公众号:源码跳动|官方技术交流群:13763429
官方公众号:源码跳动|官方技术交流群:|问题咨询请:提交工单
商务合作:点击复制邮箱
©2024-2026 源码跳动
商务合作:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.