k8s的webUI管理界面能夠更好更直觀更便捷的讓咱們去管理咱們的k8s集羣。html
咱們知道,因爲某些緣由咱們沒法直接拉取dashboard的鏡像,可是國內有些人已經將鏡像下載到dockerhub中能夠給咱們使用git
1 wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
1 vim kubernetes-dashboard.yaml
1 kubectl apply -f kubernetes-dashboard.yaml
此時會建立不少資源,其中service是訪問時的代理,訪問service就能夠訪問到dashboard的webUI,可是默認生成的service訪問類型是ClusterIP,因此集羣外部不能訪問到。github
根據官方文檔,目前訪問Dashboard有四種方式:NodePort、API Server、kubectl proxy、Ingressweb
爲了方便,咱們使用NodePortdocker
1 kubectl edit svc kubernetes-dashboard -n kube-system
此時就能夠用瀏覽器訪問集羣中任意一節點的30443端口,注意使用https://方式訪問。可是會有警告,點擊高級接受風險繼續json
能夠看到有兩種登陸方式:kubeconfig文件、token令牌。vim
要想登陸,得先有帳號瀏覽器
k8s集羣中,帳號分爲兩種:UserAccount(現實中的人)、ServiceAccount(集羣內的客戶端)安全
因爲dashboard在集羣中是以Pod方式運行提供的服務,因此要使用ServiceAccount訪問,簡稱saapp
然而並非隨隨便便找個帳號就能登陸,咱們對帳號還要設置訪問控制,哪些資源容許什麼樣的操做。
這就用到我前面寫的RBAC(基於角色的訪問控制)這裏就再也不細講,想要了解點擊這裏。
1 kubectl create serviceaccount mysa(SA_NAME) -n default(NAMESPACE_NAME)
1 kubectl create clusterrolebinding dashboard-admin(NAME) --clusterrole=admin(CLUSTERROLE_NAME) --serviceaccount=default:mysa(NAMESPACE_NAME:SA_NAME)
1 ##將secret中的token使用base64方式進行解碼,而後使用變量引用 2 DASH_TOCKEN=$(kubectl get secret mysa-token-wjd28 -o jsonpath={.data.token}|base64 -d) 3 4 ##建立一個集羣,將信息輸出到/root/dashbord-admin.conf 5 kubectl config set-cluster dashboard-UI --server=192.168.1.100:6443 --kubeconfig=/root/dashbord-admin.conf 6 7 ##建立一個集羣用戶,並引用sa的token,並輸出到/root/dashbord-admin.conf 8 kubectl config set-credentials dashboard-admin --token=$DASH_TOCKEN --kubeconfig=/root/dashbord-admin.conf 9 10 ##建立一個上下文,指定集羣名、集羣用戶名,並輸出到/root/dashbord-admin.conf 11 kubectl config set-context dashboard-admin@dashboard-UI --cluster=dashboard-UI --user=dashboard-admin --kubeconfig=/root/dashbord-admin.conf 12 13 ##設置集羣中當前使用的用戶,並輸出到/root/dashbord-admin.conf 14 kubectl config use-context dashboard-admin@dashboard-UI --kubeconfig=/root/dashbord-admin.conf
生成的dashbord-admin.conf便可用於登陸dashboard
能夠將此文件複製到其餘主機,這樣其餘主機也能夠登陸
不過,無論是剛用到token登陸或kubeconfig文件登陸,設置的權限是整個集羣中最高的管理員的權限,切記小心泄露
生產環境中,最好將sa綁定到自定義權限的role或者cluster,能夠下降role和cluster的權限,來保證集羣安全
但願對你們有所幫助,謝謝