无法通过令牌

时间:2018-01-03 06:08:04

标签: dashboard kubeadm kubernetes

  1. 我使用kubeadm v1.8.5
  2. 设置了kubernetes
  3. 使用以下方式设置仪表板:

    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

  4. 然后按照建议使用http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/设置kubectl代理。

  5. 当我尝试使用kubernetes-dashboard-admin令牌登录时。使用以下命令接收令牌:

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

  6. 我的问题出现了:我无法通过令牌访问信息中心,当我粘贴令牌并点击"登录"波顿,什么都没发生。我的日志中没有任何内容[使用tail -f / var / log / messages和journalctl -xeu kubelet]。我是k8s的新手,也许有人可以告诉我日志在哪里?
    enter image description here

    以下是我的k8s cluster-info:

    [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 名称状态改变年龄版本 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 Running 2 4d kube-system kube-controller-manager-k8s-1 1/1 Running 1 4d kube-system kube-dns-545bc4bfd4-94vxx 3/3运行3 4d kube-system kube-flannel-ds-97frd 1/1 Running 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 Running 2 4d kube-system kubernetes-dashboard-7486b894c6-tszq9 1/1 Running 0 2h

    kubernetes-dashboard-admin-rbac.yaml是:

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

    apiVersion:v1 kind:ServiceAccount 元数据:   标签:     k8s-app:kubernetes-dashboard     kubernetes.io/cluster-service:" true"     addonmanager.kubernetes.io/mode:Reconcile   名称:kubernetes-dashboard-admin   namespace:kube-system

    apiVersion:rbac.authorization.k8s.io/v1beta1 kind:ClusterRoleBinding 元数据:   名称:kubernetes-dashboard-admin   注释:     rbac.authorization.kubernetes.io/autoupdate:" true"   标签:     k8s-app:kubernetes-dashboard roleRef:   apiGroup:rbac.authorization.k8s.io   kind:ClusterRole   name:cluster-admin 主题: - kind:ServiceAccount   名称:kubernetes-dashboard-admin   namespace:kube-system

    有什么建议吗?谢谢!!!

7 个答案:

答案 0 :(得分:2)

尝试此令牌(输出):

 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
祝你好运..

答案 1 :(得分:2)

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

Kubernete手册:

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

答案 2 :(得分:1)

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

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

[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。

答案 3 :(得分:1)

我最近将k8s版本升级到1.16后遇到了这个问题。通常,我无需登录即可访问本地仪表板,但是升级后,它首先开始打开登录页面,即使我使用了有效的令牌,也无法进入仪表板。 (没有响应,页面被卡住了)

为了解决该问题,我首先删除了与仪表板相关的资源。

kubectl delete clusterrolebinding kubernetes-dashboard

然后,我使用以下命令部署了最新的仪表板版本。

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml

完成上述步骤后,我再次运行proxy命令,这次,通过输入令牌,它进入了仪表板页面。

编辑:如果出现与群集角色有关的错误,并且无法打开任何实际内容,则可能需要运行以下命令:

kubectl delete clusterrolebinding kubernetes-dashboard
kubectl create clusterrolebinding kubernetes-dashboard --clusterrole=cluster-admin --serviceaccount=kube-system:kubernetes-dashboard --user=clusterUser

答案 4 :(得分:0)

运行以下两个命令:

sym @ symserver:〜/ Downloads $ token = $(microk8s.kubectl -n kube-system get secret | grep default-token | cut -d“” -f1)

sym @ symserver:〜/下载$ microk8s.kubectl -n kube-system描述秘密$ token

以上命令将为访问仪表板生成令牌

答案 5 :(得分:-1)

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

kubectl get svc -n kube-system kubernetes-dashboard

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

答案 6 :(得分:-1)

来自我的other answer

获取服务令牌

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