首页 > 解决方案 > 无法登录 Kubernetes 仪表板?

问题描述

在此处输入图像描述按照所有步骤创建服务帐户和角色绑定后无法登录

kubectl create serviceaccount dashboard -n default

kubectl create clusterrolebinding dashboard-admin -n default --clusterrole=cluster-admin --serviceaccount=default:dashboard

并应用 yml 文件

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kube-system

--------
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kube-system

当我单击登录以获取配置服务时出现以下错误

[![{
 "status": 401,
 "plugins": \[\],
 "errors": \[
  {
   "ErrStatus": {
    "metadata": {},
    "status": "Failure",
    "message": "MSG_LOGIN_UNAUTHORIZED_ERROR",
    "reason": "Unauthorized",
    "code": 401
   }
  }][1]][1] 

标签: kubernetes-dashboard

解决方案


Roman Marusyk 是在正确的道路上。这是你必须做的。

$ kubectl get secret -n kubernetes-dashboard
NAME                               TYPE                                  DATA   AGE
default-token-rqw2l                kubernetes.io/service-account-token   3      9m8s
kubernetes-dashboard-certs         Opaque                                0      9m8s
kubernetes-dashboard-csrf          Opaque                                1      9m8s
kubernetes-dashboard-key-holder    Opaque                                2      9m8s
kubernetes-dashboard-token-5tqvd   kubernetes.io/service-account-token   3      9m8s

从这里您将获得kubernetes-dashboard-token-5tqvd,这是持有令牌以访问仪表板的秘密。

$ kubectl get secret kubernetes-dashboard-token-5tqvd -n kubernetes-dashboard -oyaml | grep -m 1 token | awk -F : '{print $2}'
 ZXlK...

现在您需要对其进行解码:

echo -n ZXlK... | base64 -d
eyJhb...

在登录页面引入token:

在此处输入图像描述

而你在。

更新

您也可以合二为一来获取秘密并对其进行解码:

$ kubectl get secret kubernetes-dashboard-token-5tqvd -n kubernetes-dashboard -oyaml | grep -m 1 token | awk -F ' ' '{print $2}' | base64 -d

推荐阅读