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

Kubeflow 1.6.1(GKE 1.23)UI添加贡献者触发切片越界运行时错误

问题描述
  • 环境:Kubeflow 1.6.1,GKE集群1.23版本
  • 预期:通过UI成功添加贡献者
  • 实际异常:操作时触发ProfileDeployment和centralDashboard错误,具体报错如下:
Error in ProfileDeployment and Error in centralDashboard 
http: panic serving 10.20.20.20:55448: runtime error: slice bounds out of range [20:0]
goroutine 207 [running]:
net/http.(*conn).serve.func1()
    /usr/local/go/src/net/http/server.go:1802 +0x13a
panic({0x1791a40, 0xc0003966a8})
    /usr/local/go/src/runtime/panic.go:1047 +0x262
github.com/kubeflow/kubeflow/components/access-management/kfam.(*KfamV1Alpha1Client).getUserEmail(0xc0001143c0, 0xc00031b380)
    /workspace/kfam/api_default.go:290 +0xac
github.com/kubeflow/kubeflow/components/access-management/kfam.(*KfamV1Alpha1Client).CreateBinding(0xc0001143c0, {0x193d8d8, 0xc0003ee1c0}, 0xc0003e6900)
    /workspace/kfam/api_default.go:116 +0x268
net/http.HandlerFunc.ServeHTTP(0xc000116720, {0x193d8d8, 0xc0003ee1c0}, 0xc0003e6900)
    /usr/local/go/src/net/http/server.go:2047 +0x43
github.com/kubeflow/kubeflow/components/access-management/kfam.Logger.func1({0x193d8d8, 0xc0003ee1c0}, 0xc0003e6900)
    /workspace/kfam/logger.go:23 +0xb2
net/http.HandlerFunc.ServeHTTP(0xc00012f3b0, {0x193d8d8, 0xc0003ee1c0}, 0xc0003e6900)
    /usr/local/go/src/net/http/server.go:2047 +0x43
github.com/gorilla/mux.(*Router).ServeHTTP(0xc0003e3a40, {0x193d8d8, 0xc0003ee1c0}, 0xc0003e6900)
    /go/pkg/mod/github.com/gorilla/mux@v1.7.2/mux.go:212 +0x26f
net/http.serverHandler.ServeHTTP({0xc0003d6000}, {0x193d8d8, 0xc0003ee1c0}, 0xc0003e6700)
    /usr/local/go/src/net/http/server.go:2879 +0x47a
net/http.(*conn).serve(0xc00040c140, {0x19417f0, 0xc000390300})
    /usr/local/go/src/net/http/server.go:1930 +0x18b8
created by net/http.(*Server).Serve
Unable to add new contributor for user-: Error: socket hang up
解决方案

1. 验证用户身份信息格式

  • 确认待添加的贡献者用户ID为完整邮箱格式(如xxx@your-domain.com),避免空值或格式不规范的情况。
  • 检查OIDC认证配置,确保用户身份信息中正确传递了邮箱字段给Kfam组件。

2. 临时修复Kfam的panic问题

报错源于Kfam的getUserEmail函数中切片操作[20:0]越界,属于代码逻辑bug。可通过以下方式临时修复:

  • 编辑Kfam的Deployment:
    kubectl edit deployment kfam -n kubeflow
    
  • 添加环境变量USERID_PREFIX(如果适用),或替换Kfam镜像为包含修复补丁的版本(如Kubeflow 1.6分支的后续修复镜像)。

3. 绕过UI,用CLI添加贡献者

直接通过kubectl命令创建角色绑定,完成贡献者添加:

kubectl create rolebinding <自定义绑定名称> --clusterrole=kubeflow-edit --user=<用户邮箱> --namespace=<目标Profile的命名空间>

替换命令中的占位符为实际值即可。

4. 升级Kubeflow版本

该切片越界问题在Kubeflow 1.7及以上版本中已被官方修复,若业务允许,可升级到稳定的新版本,同时确保GKE集群版本(1.23)与新版本Kubeflow兼容。

内容的提问来源于stack exchange,提问作者Avinash Vellineni

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 11:17:19