欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

记一次 kubeflow notebook-srever not ready

程序员文章站 2024-03-11 10:50:01
...

环境: kubeflow 1.1.0, kubernetes 1.15.3, centos7.6
问题: 通过 kubeflow dashboard 部署应用,发现应用 not ready。
1、查看 pod 日志, 发现 Envoy proxy is NOT ready

kb logs -f x-0 -c istio-proxy -n nvidia-gpu
...
info Envoy proxy is NOT ready: config not received from Pilot (is Pilot running?): cds updates: 0 successful, 0 rejected; lds updates: 0 successful, 0 rejected
...

2、查看 pilot 服务正常。多次部署 app,发现只要 app pod 落在一个节点 node1 上,就会出现 ilstio-proxy not ready 问题。
3、查看 node1 节点上的 istio-nodeagent 日志,发现无法获取 secret

kubectl logs -f istio-nodeagent-br5j5 -n istio-system
...
error  sdsServiceLog  CONNECTION ID: sidecar~10.253.12.32~x-0.nvidia-gpu.svc.cluster.local-7538, RESOURCE NAME: ROOTCA,EVENT:close connection. Failed to get secret for proxy "sidecar~10.253.12.32~x-0.nvidia-gpu.svc.cluster.loca" from secret cache: failed to get root cert.
...

4、网上搜索,未找到解决方法。去 github 官方提问,官方说目前不支持 istio1.3 版本了,不会修复。istio 确实更新很快,而且从 1.5 版本起又有大的结构变动。至于说 kubeflow1.1.0 还采用 istio1.3,这个就很恼火了,或许是自定义更方便吧。
5、上 istio 官网查看 istio1.3 的 sds 文档,发现每个节点的 istio-nodeagent 向 citadel 请求证书签名。查看 citadel 日志,内容大概如下

invalid bearer token, token has expired.

6、重启 citadel,问题解决

kubectl delete po istio-citadel-*** -n istio-system