microk8s kubeflow 仪表板访问 - 无法与令牌交换授权代码:oauth2:无法获取令牌:401 未经授权

时间:2021-06-02 13:11:33

标签: kubernetes kubeflow microk8s openid-dex

安装 microk8s 并启用 kubeflow 后,我获得了用户名、密码和 Kubeflow 仪表板的链接。然后我按预期访问仪表板,一切都很好。但是在重新启动我的机器并执行 microk8s start 后,我​​无法再进入 kubeflow 仪表板。

所有 Pod 都开始正常,然后我去访问仪表板并获得:

Access to 10.64.140.44.nip.io was denied
You don't have authorisation to view this page.
HTTP ERROR 403

查看 pod/container oidc-gatekeeper-xxxxx / oidc-gatekeeper 的 kubernetes 日志:

level=error msg="Failed to exchange authorization code with token: oauth2: cannot fetch token: 401 Unauthorized\nResponse: {\"error\":\"invalid_client\",\"error_description\":\"Invalid client credentials.\"}" ip=10.1.252.88 request="/authservice/oidc/callback?code=ipcb55gymqsy5pcgjn7eaenad&state=MTYyMjYzNjE4OHxFd3dBRURoMVZtSm9Wak4yUXpWQlYxZ3pPVWs9fPTKezGok06ig6bjtYvWt9sqhzaCpO_xhSMeTUFDL81j"

对于 pod/容器 dex-auth-5d9bf87db9-rjtm8 / dex-auth:

level=info msg="invalid client_secret on token request for client: authservice-oidc"

只有完全删除 microk8s 并在每次重新启动机器时重新安装才能使其再次工作,这显然是行不通的。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

我已经设法解决了这个问题,但我不能 100% 确定哪个操作解决了它。

我尝试使用 Firefox 而不是 Chrome,并注意到一些文档使用 IP http://10.64.140.43.nip.io/ 而不是 http://10.64.140.44.nip.io/

由于 http://10.64.140.44.nip.io/ 的上述访问被拒绝,我发现 http://10.64.140.43.nip.io/ 将我直接带入了仪表板。

我重新启动了我的机器,看看它是否只是 IP(注意:检查“microk8s kubectl get services -n kubeflow”指定 10.64.150.44 作为外部 IP),但这次 http://10.64.140.44.nip.io/ 只是给了我dex 登录屏幕,登录后将我带到仪表板,没有问题。

也许我只是在某个地方做错了,我不确定,现在也无法检查它是否正常工作。如果您遇到此问题但没有帮助,请道歉。

答案 1 :(得分:0)

我也有类似的错误。我的解决方案是先启用 dns、istio 和存储。等待 Pod 运行,然后启用 Kubeflow。然后确保使用 istio-system 命名空间和 istio-ingressgateway pod 进行端口转发。 Kubeflow 还制作了一个 istio-ingressgateway pod,但连接到它会产生错误。每Kubeflow guide