1.為什麼使用可視化界面
當安裝完node後,需要使用kubectl執行與操作,但是一直使用指令行對于新入手的我們來說可能比較繁瑣。是以能否有一種可視化頁面,直接在頁面上指指點點,就能完成指令的工作呢。
官方提供了Dashboard插件作為可視化工具。強烈建議使用。
建議在日常操作時,bashboard與kubectl一起使用更佳。
2.安裝
1.下載下傳檔案
選擇檔案夾,下載下傳recommended.yaml到檔案夾中。
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.3/aio/deploy/recommended.yaml
複制代碼
2.修改配置
下載下傳後,需要修改配置。
vi recommended.yaml
複制代碼
我們需要更改
type為NodePort
,指定其外網可以通路,否則其他電腦會通路不到,請注意!
3.安裝
将 Dashboard添加至k8s
kubectl apply -f recommended.yaml
複制代碼
4.驗證
kubectl -n kubernetes-dashboard get all -l k8s-app=kubernetes-dashboard
複制代碼
通過下圖可能看到對外映射的端口為32241,每個人可能都不相同,請自行替換。
也可以看到啟動後的端口 可以使用以下指令測試通路。
kubectl -n kubernetes-dashboard port-forward pod/kubernetes-dashboard-5c785c8bcf-z94nt 32241 //通路
複制代碼
pod/kubernetes-dashboard-5c785c8bcf-z94nt與端口都是上文圖中擷取,每個人的配置都不相同,請自行修改。
如果出現安裝錯誤,可以執行以下指令檢視報錯資訊。
sudo kubectl logs kubernetes-dashboard-6dccb458d5-x7xft --namespace=kubernetes-dashboard
複制代碼
5.建立使用者
k8s使用rbac權限,是以必須使用特殊的使用者才能夠通路。在登入時,要求使用token,是以需要擷取到建立使用者的token。
#建立dashboard-admin賬戶
kubectl create serviceaccount dashboard-admin -n kubernetes-dashboard
#将dashboard-admin使用者授cluster-admin權限(clusterrole為叢集管理權限)
kubectl create clusterrolebinding dashboard-admin-rb --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:dashboard-admin
#擷取賬号token
kubectl get secrets -n kubernetes-dashboard |grep dashboard-admin
通過賬号擷取token(此處dashboard-admin-token-xxxx為上文擷取)
kubectl describe secrets dashboard-admin-token-xxxx -n kubernetes-dashboard
複制代碼
在執行指令時,生成的部分id不同,請自行對應替換。
建立使用者擷取token後登入後,看不到具體資訊,或者報錯( statefulsets.apps is forbidden: User "system:serviceaccount:kubernetes-dashb.......
),肯定是使用者問題。請重新執行以上指令。
6.通路
通路 ip:32241
上文擷取到的端口号,請根據上文擷取自行修改。
登入時,選擇token,并把上文擷取到token複制并輸入。
3.解除安裝
如果安裝的的dashboard錯誤,可以解除安裝重新安裝。
kubectl get secret,sa,role,rolebinding,services,deployments --namespace=kubernetes-dashboard | grep dashboard
kubectl delete deployment kubernetes-dashboard --namespace=kubernetes-dashboard
kubectl delete service kubernetes-dashboard --namespace=kubernetes-dashboard
kubectl delete role kubernetes-dashboard-minimal --namespace=kubernetes-dashboard
kubectl delete rolebinding kubernetes-dashboard-minimal --namespace=kubernetes-dashboard
kubectl delete sa kubernetes-dashboard --namespace=kubernetes-dashboard
kubectl delete secret kubernetes-dashboard-certs --namespace=kubernetes-dashboard
kubectl delete secret kubernetes-dashboard-key-holder --namespace=kubernetes-dashboard
複制代碼