dashboard的安裝很是簡單。但按照官網建議的方式安裝完成後,輸入token登陸時會沒有反應。
這個問題困擾了我一成天,最終在這裏找到了答案。
緣由以下:
按官方文檔建議的方式安裝完dashboard後,使用kubectl proxy
代理的方式來訪問webUI。使用這個代理的方式訪問就會致使登陸無響應的問題。
咱們須要將dashboard的service類型改成NodePort,將端口映射到虛擬機上,而後直接經過虛擬機的ip地址登陸node
wget https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
kind: Service apiVersion: v1 metadata: labels: k8s-app: kubernetes-dashboard name: kubernetes-dashboard namespace: kube-system spec: # 添加Service的type爲NodePort type: NodePort ports: - port: 443 targetPort: 8443 # 添加映射到虛擬機的端口,k8s只支持30000以上的端口 nodePort: 30001 selector: k8s-app: kubernetes-dashboard
kubectl create -f kubernetes-dashboard.yaml
這裏有一個簡單的命令:git
kubectl -n kube-system describe $(kubectl -n kube-system get secret -n kube-system -o name | grep namespace) | grep token
也能夠本身手動查詢:github
# 輸入下面命令查詢kube-system命名空間下的全部secret kubectl get secret -n kube-system # 而後獲取token。只要是type爲service-account-token的secret的token均可以使用。 # 好比咱們獲取replicaset-controller-token-wsv4v的touken kubectl -n kube-system describe replicaset-controller-token-wsv4v
經過node節點的ip,加剛剛咱們設置的nodePort就能夠訪問了。web
https://<node-ip>:<node-port>
認證有兩種方式:api
經過Kubeconfig文件認證
只須要在kubeadm生成的admin.conf文件末尾加上剛剛獲取的token就行了。app
- name: kubernetes-admin user: client-certificate-data: xxxxxxxx client-key-data: xxxxxx token: "在這裏加上token"