Kubernetes仪表板不通过HTTP接受服务帐户的令牌:身份验证失败。请再试一遍

时间:2019-03-27 12:46:48

标签: kubernetes kubernetes-dashboard

我已经按照here所述在Kubernetes 1.13集群上安装了Kubernetes Dashboard:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml

我还配置了仪表板以不安全地提供其内容,因为我想通过Ingress上的https://my-cluster/dashboard公开它,而TLS连接将在入口控制器处终止。

  • 我已经在命名空间{{1}中编辑了service/kubernetes-dashboard,并将kube-systemports更改为{port:443, targetPort:8443}
  • 我已经在命名空间{port:80, protocol:TCP, targetPort:9090}中编辑了deployment/kubernetes-dashboard,并进行了更改 kube-systemports{containerPort: 8443, protocol:TCP}(和{containerPort: 9090, protocol:TCP}相似)。我也将livenessProbeargs更改为[ --auto-generate-certificates ]

这使我可以通过HTTP在服务的群集IP地址和端口80(尚未配置[ --enable-insecure-login ]上)从群集节点与仪表板联系。

我还按照here的说明创建了一个示例用户,并提取了其令牌。令牌的工作原理例如在Ingress中,因此它显然拥有kubectl --token $token get pod --all-namespaces特权。但是,如果我在仪表板的登录屏幕中输入相同的令牌,则会显示“身份验证失败。请重试。”。

可能是什么原因?如何进一步诊断和解决问题? (仪表板的日志目前无法提供任何帮助。)

更新,如果我保留仪表板的标准配置(即用于通过HTTPS进行安全访问),则接受相同的令牌。

0 个答案:

没有答案