首页 文章

无法通过令牌访问kubernetes仪表板

提问于
浏览
1
  • 我使用kubeadm v1.8.5设置了kubernetes

  • 使用以下方法设置仪表板:

wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.8.0/src/deploy/recommended/kubernetes-dashboard.yaml

kubectl create -f kubernetes-dashboard.yaml \

kubectl create -f kubernetes-dashboard-admin.rbac.yaml

kubectl -n kube-system得到秘密| grep -i dashboard-admin | awk'{print $ 1}'| xargs -I {} kubectl -n kube-system描述秘密{}

Here comes my problem: I CANT access the dashboard via token, when I paste the token and click "Signin" botton, nothing happened. And I get nothing in my log[using tail -f /var/log/messages and journalctl -xeu kubelet]. I am a newbee on k8s, maybe someone could tell me where the log is?

enter image description here

这是我的k8s集群信息:

[root @ k8s-1 pki] #kubectl cluster-info Kubernetes master运行在https://172.16.1.15:6443 KubeDNS正在运行https://172.16.1.15:6443/api/v1/namespaces/kube-system/services/kube-dns/proxy kubernetes-dashboard运行在https://172.16.1.15:6443/api/v1/namespaces/kube-system/services/kubernetes-dashboard/proxy

要进一步调试和诊断群集问题,请使用“kubectl cluster-info dump” .

[root @ k8s-1 pki] #kubectl get nodes名称状态ROLES AGE VERSION k8s-1 Ready master 4d v1.8.5 k8s-2 Ready 4d v1.8.5 k8s-3 Ready 4d v1.8.5

[root @ k8s-1 pki] #kubectl get pods --all-namespaces NAMESPACE NAME READY STATUS RESTARTS AGE kube-system etcd-k8s-1 1/1 Running 2 4d kube-system kube-apiserver-k8s-1 1/1运行2 4d kube-system kube-controller-manager-k8s-1 1/1运行1 4d kube-system kube-dns-545bc4bfd4-94vxx 3/3运行3 4d kube-system kube-flannel-ds-97frd 1/1运行2 4d kube-system kube-flannel-ds-bl9tp 1/1运行2 4d kube-system kube-flannel-ds-bn9hp 1/1运行1 4d kube-system kube-proxy-9ncdm 1/1运行0 4d kube -system kube-proxy-qjm9k 1/1运行1 4d kube-system kube-proxy-rknz4 1/1运行0 4d kube-system kube-scheduler-k8s-1 1/1运行2 4d kube-system kubernetes-dashboard- 7486b894c6-tszq9 1/1运行0 2h

kubernetes-dashboard-admin-rbac.yaml是:

[root @ k8s-1仪表板] #cat kubernetes-dashboard-admin.rbac.yaml

apiVersion:v1种类:ServiceAccount元数据:标签:k8s-app:kubernetes-dashboard kubernetes.io/cluster-service:“true”addonmanager.kubernetes.io/mode:协调名称:kubernetes-dashboard-admin namespace:kube-system


apiVersion:rbac.authorization.k8s.io/v1beta1种类:ClusterRoleBinding元数据:name:kubernetes-dashboard-admin annotations:rbac.authorization.kubernetes.io/autoupdate:“true”标签:k8s-app:kubernetes-dashboard roleRef:apiGroup :rbac.authorization.k8s.io kind:ClusterRole名称:cluster-admin主题: - kind:ServiceAccount名称:kubernetes-dashboard-admin名称空间:kube-system

有什么建议?谢谢!!!

5 回答

  • 0

    试试这个令牌(输出):

    kubectl -n kube-system get secret |grep  kubernetes-dashboard-token |cut -f1 -d ' ' |  xargs kubectl -n kube-system describe  secret
    

    如果不起作用使用此令牌尝试/测试登录(输出):

    kubectl -n kube-system get secret |grep  namespace-controller-token  |cut -f1 -d ' ' |  xargs kubectl -n kube-system describe  secret
    

    祝好运..

  • 0

    尝试连接https,我有同样的问题,这对我有用

    Kubernete手册:

    注意:不应使用kubectl proxy命令公开公开仪表板,因为它只允许HTTP连接 . 对于localhost和127.0.0.1以外的域,将无法登录 . 单击登录页面上的登录按钮后不会发生任何事情 . 登录仅在通过HTTPS访问仪表板或域为localhost或127.0.0.1时可用 . 出于安全原因,这样做了 . 关闭,因为这按预期工作 .

  • 0

    您应该能够从分配的群集IP地址访问并登录仪表板 . 要获取群集IP,只需执行即可

    kubectl get svc -n kube-system kubernetes-dashboard
    

    并将浏览器指向此地址(https) .

  • 2

    您应首先创建一个管理员用户,并将cluster-admin clusterrolebinding添加到其中:

    使用这些文件admin-user.yamladmin-user-clusterrolebinding.yaml创建具有cluster-admin clusterrolebinding的admin用户:

    [root@k8s-1 kubernetes-via-kubeadm]# kubectl create -f admin-user.yaml
    serviceaccount "admin-user" created
    
    [root@k8s-1 kubernetes-via-kubeadm]# kubectl create -f admin-user-clusterrolebinding.yaml 
    clusterrolebinding "admin-user" created
    

    要获取此admin-user的令牌:

    [root@k8s-1 kubernetes-via-kubeadm]# kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}') | grep ^token: | sed 's/token:[ ]*/Token:\n/'
    Token:
    eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLW1oNzIyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiIwNWM0ZDZmZC0yZjYyLTExZTgtYTMxNi1jMDNmZDU2MmJiNzciLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06YWRtaW4tdXNlciJ9.butKxegADx3JQvKpn9Prf7RL_SoxaEyi_scYOvXurm4BAwEj8zfC9a7djqQ9mBtd5cQHlljvMb-3qFc6UPOzAwR8fc5khk-nAkH-5XeahpT8WsyxMcKxqLuyAg8gh4ZtMKvBPk9kOWDtyRBzAeGkisbLxr43ecKO71F5G8D7HR2UGSm-x4Pvhq0uqj8GyIcHw902Ti92BPuBRf-SyTl8uDCQJSDkS5Tru5w0p82borNuVXd1mmDwuI87ApQrqXTY9rbJ61m8iTr0kKJBqw5bHAUAhxwAVtVEKQNNKT6cxWp1FlhHbNkM9bhcj1qj8bN1QCMjPWlWKj7NkPbbBAJthQ
    

    您可以使用令牌登录您的kubernetes-dashboard .

  • 1

    来自我的other answer

    获取服务令牌

    $ kubectl -o json get secret k8s-dashboard-sa-token-XXXXX | jq -r '.data.token' | base64 -d
    eyJhbGci    ... sjcuNA8w
    

相关问题