[英]unable to access kubernetes dashboard via token
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
然后按照建議使用http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
設置 kubectl 代理。
當我嘗試使用 kubernetes-dashboard-admin 令牌登錄時。 使用以下命令接收令牌:
kubectl -n kube-system get secret | grep -i dashboard-admin | awk '{print $1}' | xargs -I {}
kubectl -n kube-system describe secret {}
我的問題來了:我無法通過令牌訪問儀表板,當我粘貼令牌並單擊“登錄”按鈕時,什么也沒發生。 而且我的日志中什么也沒有[使用 tail -f /var/log/messages 和 journalctl -xeu kubelet]。 我是k8s的新手,也許有人可以告訴我日志在哪里?
這是我的 k8s 集群信息:
[root@k8s-1 pki]# kubectl cluster-info
Kubernetes master is running at https://172.16.1.15:6443
KubeDNS is running at https://172.16.1.15:6443/api/v1/namespaces/kube-system/services/kube-dns/proxy
kubernetes-dashboard is running at https://172.16.1.15:6443/api/v1/namespaces/kube-system/services/kubernetes-dashboard/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
[root@k8s-1 pki]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-1 Ready master 4d v1.8.5
k8s-2 Ready <none> 4d v1.8.5
k8s-3 Ready <none> 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 Running 3 4d
kube-system kube-flannel-ds-97frd 1/1 Running 2 4d
kube-system kube-flannel-ds-bl9tp 1/1 Running 2 4d
kube-system kube-flannel-ds-bn9hp 1/1 Running 1 4d
kube-system kube-proxy-9ncdm 1/1 Running 0 4d
kube-system kube-proxy-qjm9k 1/1 Running 1 4d
kube-system kube-proxy-rknz4 1/1 Running 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
metadata:
labels:
k8s-app: kubernetes-dashboard
kubernetes.io/cluster-service: "true"
addonmanager.kubernetes.io/mode: Reconcile
name: kubernetes-dashboard-admin
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: kubernetes-dashboard-admin
annotations:
rbac.authorization.kubernetes.io/autoupdate: "true"
labels:
k8s-app: kubernetes-dashboard
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: kubernetes-dashboard-admin
namespace: kube-system
有什么建議么? 謝謝!!!
嘗試使用 https 連接,我有同樣的問題,這對我有用
Kubernetes 手冊:
注意:儀表板不應使用 kubectl proxy 命令公開公開,因為它只允許 HTTP 連接。 對於 localhost 和 127.0.0.1 以外的域,將無法登錄。單擊登錄頁面上的登錄按鈕后不會發生任何事情。 僅當通過 HTTPS 訪問 Dashboard 或域為 localhost 或 127.0.0.1 時才能登錄。 出於安全原因,它是這樣做的。 按預期關閉。
試試這個令牌(輸出):
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
祝你好運..
您應該首先創建一個管理員用戶並將 cluster-admin clusterrolebinding 添加到它:
使用這些文件admin-user.yaml和admin-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
要獲取此管理員用戶的令牌:
[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。
我最近在將 k8s 版本升級到 1.16 后遇到了這個問題。 通常,我無需任何登錄即可在本地訪問儀表板,但升級后,它首先開始打開登錄頁面,即使我使用了有效的令牌,它也沒有讓我進入儀表板。 (沒有反應,頁面卡住了)
為了解決這個問題,我首先刪除了儀表板相關資源。
kubectl delete clusterrolebinding kubernetes-dashboard
然后我使用以下命令部署了最新的儀表板版本。
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml
在上述步驟之后,我再次運行代理命令,這一次,通過輸入令牌,它進入了儀表板頁面。
編輯:如果您收到與集群角色相關的錯誤並且無法打開任何實際內容,您可能需要運行以下命令:
kubectl delete clusterrolebinding kubernetes-dashboard
kubectl create clusterrolebinding kubernetes-dashboard --clusterrole=cluster-admin --serviceaccount=kube-system:kubernetes-dashboard --user=clusterUser
運行以下兩個命令:
sym@symserver:~/Downloads$ token=$(microk8s.kubectl -n kube-system get secret | grep default-token | cut -d " " -f1)
sym@symserver:~/Downloads$ microk8s.kubectl -n kube-system describe secret $token
上面的命令將生成用於儀表板訪問的令牌
您應該能夠從分配的集群 IP 地址訪問和登錄儀表板。 要獲取集群 IP,只需執行
kubectl get svc -n kube-system kubernetes-dashboard
並將您的瀏覽器指向此地址 (https)。
從我的另一個答案:
$ kubectl -o json get secret k8s-dashboard-sa-token-XXXXX | jq -r '.data.token' | base64 -d
eyJhbGci ... sjcuNA8w
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.