You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubeflow v1.4.1调用KServe创建InferenceService报403权限错误

问题概述

Kubeflow v1.4.1环境中,在Jupyter Notebook内通过KServe Python SDK执行以下代码创建推理服务时触发403 Forbidden报错:

KServe = KServeClient()
KServe.create(isvc)

报错核心信息:服务账号system:serviceaccount:kubeflow-user-example-com:default-editor无权在serving.kserve.io API组的kubeflow-user-example-com命名空间下创建inferenceservices资源。
此前尝试自行配置RBAC规则、绑定服务账号后问题仍未解决,且权限校验结果存在矛盾。

现有配置的核心遗漏与错误
  • RBAC资源命名空间不匹配:K8s中Role是命名空间级资源,生效范围严格限定在自身metadata.namespace指定的命名空间,且RoleBinding必须和绑定的Role处于同一命名空间才能建立有效授权关系。此前配置要么将Role部署在default命名空间,试图给其他命名空间的账号授权;要么RoleBinding未指定命名空间,默认部署到kubectl上下文的当前命名空间,未和kubeflow-user-example-com下的Role关联,授权完全不生效。
  • 权限校验命令存在参数错误:
    1. 校验default命名空间权限时,资源名误写为单数inferenceservice,实际KServe对应的资源名是复数inferenceservices,校验的是不存在的资源类型,结果无参考价值;
    2. 执行无参数的kubectl auth can-i create inferenceservices时,未指定--as模拟目标服务账号,也未通过-n指定目标命名空间,返回的yes是当前执行kubectl命令的高权限账号(通常为集群管理员)的权限结果,和Jupyter使用的default-editor服务账号权限无关。
  • RBAC规则缺失子资源权限:仅配置了inferenceservices主资源的操作权限,未覆盖KServe运行必需的inferenceservices/status、inferenceservices/finalizers子资源权限,就算主资源授权正确,后续服务运行过程中仍会触发权限报错。
正确修复步骤
  1. 编写如下RBAC配置清单,明确将Role、RoleBinding都部署到kubeflow-user-example-com命名空间,绑定到default-editor服务账号,补全所需的主、子资源权限:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: kserve-inferenceservice-manager
  namespace: kubeflow-user-example-com
rules:
- apiGroups: ["serving.kserve.io"]
  resources: 
  - "inferenceservices"
  - "inferenceservices/status"
  - "inferenceservices/finalizers"
  verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: kserve-inferenceservice-manager-binding
  namespace: kubeflow-user-example-com
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: kserve-inferenceservice-manager
subjects:
- kind: ServiceAccount
  name: default-editor
  namespace: kubeflow-user-example-com
  1. 执行命令应用配置:
    kubectl apply -f <上述yaml文件的本地存储路径>
  2. 用正确参数执行权限校验,确认配置生效:
    kubectl auth can-i create inferenceservices.serving.kserve.io --as=system:serviceaccount:kubeflow-user-example-com:default-editor -n kubeflow-user-example-com

命令返回yes即代表权限配置正确,返回Jupyter Notebook重新执行创建推理服务的代码即可正常运行。

内容的提问来源于stack exchange,提问作者HEM VATS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 03:06:29