kubernetes1.9安裝dashboard

寫在前面

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"

本文作者VincentFF,原文鏈接如下:

https://segmentfault.com/a/1190000013681047

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章