在docker for mac上安裝kubernetes後,安裝dashboard
1.在 https://github.com/kubernetes/dashboard/releases 官網,找到對應的版本。本文使用2.0.1
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.1/aio/deploy/recommended.yaml
可能會出現raw.githubusercontent.com無法訪問的情況。可能是DNS污染,臨時解決方法是配置 /etc/hosts 文件
sudo vim /etc/hosts
151.101.76.133 raw.githubusercontent.com
2. 運行 kubectl get pods --namespace=kubernetes-dashboard -o wide 查看pod名稱,下面說明pod正在被創建
執行 kubectl describe pod dashboard-metrics-scraper-b68468655-4cfdn --namespace=kubernetes-dashboard 查看創建過程
等一會,再次查看,發現已經在運行了
3.使用API Server 訪問
kubectl proxy # 開啓本機訪問代理
這時候可通過 http://127.0.0.1:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login 地址訪問,注意namespace=kubernetes-dashboard/
4. 使用NodePort訪問
4.1 查看kubernetes-dashboard
kubectl --namespace=kubernetes-dashboard get service kubernetes-dashboard
4.2 編輯kubernetes-dashboard,
將裏面的type: ClusterIP
改爲type: NodePort
即可
kubectl --namespace=kubernetes-dashboard edit service kubernetes-dashboard
4.3 wq
保存即可。等一會兒,重新查看,就變爲NodePort了。
4.4 生成證書
Dashboard安裝完成,改爲NodePort形式之後,通過https://127.0.0.1:30304/
訪問,會提示安全信息如下: 無法訪問了,需要生成證書
#新建目錄:
mkdir key && cd key
#生成證書
openssl genrsa -out dashboard.key 2048
#部署的是docker for mac的kubernetes,配置如下。192.168.10.7是本機IP地址
openssl req -new -out dashboard.csr -key dashboard.key -subj '/CN=192.168.10.7'
openssl x509 -req -in dashboard.csr -signkey dashboard.key -out dashboard.crt
#刪除原有的證書secret
kubectl delete secret kubernetes-dashboard-certs -n kubernetes-dashboard
#創建新的證書secret
kubectl create secret generic kubernetes-dashboard-certs --from-file=dashboard.key --from-file=dashboard.crt -n kubernetes-dashboard
#查看pod
kubectl get pod -n kubernetes-dashboard
#刪除pod,系統會自動啓動一個新的
kubectl delete pod kubernetes-dashboard-64999dbccd-lpq7k -n kubernetes-dashboard
執行完成之後,再次訪問是這樣的
上圖點開高級之後,有個繼續前往的鏈接,點擊即可。
4.5 新建用戶獲取令牌
4.5.1新建用戶
新建文件(文件名隨意)admin-user.yaml
:
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
複製到admin-user.yaml
文件後,執行:kubectl create -f admin-user.yaml
4.5.2 綁定用戶關係
新建文件(文件名隨意)admin-user-role-binding.yaml
:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kubernetes-dashboard
複製到admin-user-role-binding.yaml
文件後,執行:kubectl create -f admin-user-role-binding.yaml
如果過程中提示存在或者需要刪除,只需要kubectl delete -f 相應的yaml文件
即可。
4.5.3 獲取令牌
按照官網提示的獲取token方法:
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
eyJhbGciOiJSUzI1NiIsImtpZCI6IlRZd1VXeDdjSmZJRW1keDZsQUVyMW12M24wZTF2WGU4Ul8wX09KTVpQcmcifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLXNicWwyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiIxMzFlM2E3MC1jZWI0LTQ5MWQtOGU2Zi1iMTA0NDMxMmU2OTEiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6YWRtaW4tdXNlciJ9.UqP8ale28OoMxlwpyBKCE95O5CIKQa3Z3FmNevl9x99CkUJCBGFsjtzt8dYxnEkF3R1FqcLAf7umjR1M931u94jsoI7OcOvFyV3jQeApLhlRBLdJ4wr5WcXROVxyJfDbpKvwGsPb6BiOMdXITAAksnjgXQVUcdLPgNaRFqFHh7OY10MMI8yHN31ZN1Ragh4j0n1lj8aiRruOS0c2iGy30MAjOhlvM9YSpv-ENVEMDkxxwVUg095SejWP3mnWzbfBDF0gNE5cJ9aEWwzUv-6f5q0lGxjA2YSABhfaK0lLPPRf3zHYtf7H37oJvsUvv1a5B52zVjOMU_2g13V4qAipRQ
4.5.4 輸入令牌打開頁面
輸入令牌後,點登入,就打開了首頁,如圖所示:
本文主要參考了
Web基礎配置篇(十七): Kubernetes dashboard安裝配置