Kubernetes-dashboard的部署及認證
阿新 • • 發佈:2019-01-02
部署Kubernetes-dashboard
簡介:
dashboard是通用的基於Web的k8s叢集圖形化管理工具,它允許使用者管理在叢集中執行的應用程式,並對它們進行故障排除,以及管理叢集本身。
部署:
- 部署dashboard應用資源:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
-
修改為NodePort型別的service,讓叢集外部也可以訪問dashboard:
kubectl patch svc kubernetes-dashboard -p '{"spec": {"type":"NodePort"}}' -n kube-system
-
在叢集外部訪問dashboard:
使用token認證進行登入
dashboard執行在POD資源中的,所以呢dashboard所在的POD要以serviceAcount型別的使用者身份認證到k8s叢集上去訪問k8s的api server元件
-
建立serviceAccount,假如使用者名稱為dashboard-admin
kubectl create serviceaccount dashboard-admin -n kube-system
-
通過clusterrolebinding繫結到內建的cluster-admin角色上
kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
-
檢視dashboard-admin使用者的securet:
kubectl get secret -n kube-system kubectl describe secret dashboard-admin-token-6lk9l -n kube-system
-
複製dashboard-admin使用者的對應的securet物件中的token進行登入dashboard:
使用kubeconfig認證進行登入
上面認證時使用的token採用的是base64編碼,並登入時需要複製原內容貼上到文字框中,儲存和操作非常不方便,建議使用將它儲存到kubeconfig配置檔案中,使用kubeconfig的認證方式進行登入。
-
設定叢集資訊:
kubectl config set-cluster kubernetes --certificate-authority=/etc/kubernetes/pki/ca.crt --server="https://172.16.0.246:30160" --embed-certs=true --kubeconfig=/root/def-ns-admin.conf kubectl config view --kubeconfig=/root/def-ns-admin.conf
-
設定使用者資訊:
kubectl get secret def-ns-admin-token-7jfxq -o jsonpath={.data.token} | base64 -d DEF_NS_ADMIN_TOKEN=$( kubectl get secret def-ns-admin-token-7jfxq -o jsonpath={.data.token} | base64 -d) kubectl config set-credentials def-ns-admin --token=$DEF_NS_ADMIN_TOKEN --kubeconfig=/root/def-ns-admin.conf kubectl config view --kubeconfig=/root/def-ns-admin.conf
-
設定context:
kubectl config set-context [email protected] --cluster=kubernetes --user=def-ns-admin --kubeconfig=/root/def-ns-admin.conf kubectl config view --kubeconfig=/root/def-ns-admin.conf
-
設定當前認證時使用context
kubectl config use-context [email protected] --kubeconfig=/root/def-ns-admin.conf kubectl config view --kubeconfig=/root/def-ns-admin.conf
-
將之前生成的config複製到遠端客戶端
scp [email protected]:/root/def-ns-admin.conf ./
-
在執行客戶端訪問dashboard,使用剛才生成的kubeconfig檔案進行論證登入