天天看點

kubernetes1.9安裝dashboard,以及token認證問題

寫在前面

dashboard的安裝非常簡單。但按照官網建議的方式安裝完成後,輸入token登入時會沒有反應。

這個問題困擾了我一整天,最終在

這裡

找到了答案。

原因如下:

按官方文檔建議的方式安裝完dashboard後,使用

kubectl proxy

代理的方式來 通路webUI。使用這個代理的方式通路就會導緻登入無響應的問題。

我們需要将dashboard的service類型改為NodePort,将端口映射到虛拟機上,然後直接通過虛拟機的ip位址登入

安裝dashboard

首先下載下傳官網提供的dashboard.yaml

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

修改yaml,添加NodePort.

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           

擷取token

這裡有一個簡單的指令:

kubectl -n kube-system describe $(kubectl -n kube-system get secret -n kube-system -o name | grep namespace) | grep token           

也可以自己手動查詢:

# 輸入下面指令查詢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           

通路dashboard

通過node節點的ip,加剛剛我們設定的nodePort就可以通路了。

https://<node-ip>:<node-port>           

認證有兩種方式:

  • 通過我們剛剛擷取的token直接認證
  • 通過Kubeconfig檔案認證

    隻需要在kubeadm生成的admin.conf檔案末尾加上剛剛擷取的token就好了。

    - name: kubernetes-admin
     user:
     client-certificate-data: xxxxxxxx
     client-key-data: xxxxxx
     token: "在這裡加上token"           

本文轉自SegmentFault-

kubernetes1.9安裝dashboard,以及token認證問題

繼續閱讀