kubernetes 1.14安裝部署dashboard


簡單介紹

Dashboard是一個基於web的Kubernetes用戶界面。您可以使用Dashboard將容器化應用程序部署到Kubernetes集群,對容器化應用程序進行故障診斷,並管理集群資源。可以使用Dashboard來獲得運行在集群上的應用程序的概觀,以及創建或修改單個Kubernetes資源(如Deployments, Jobs, DaemonSets等)。例如,您可以擴展deployment、啟動滾動更新、重啟pod或使用deploy向導部署新應用程序。

官網:https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/#deploying-the-dashboard-ui

 

測試環境

之前部署的集群環境,如下:

System Hostname IP
CentOS 7.6 k8s-master 138.138.82.14
CentOS 7.6 k8s-node1 138.138.82.15
CentOS 7.6 k8s-node2 138.138.82.16

 

 

 

 

 

 

安裝步驟

1. 在master節點直接運行命令

[root@tlsw-k8s-master ~]# kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended/kubernetes-dashboard.yaml

注意:官方鏡像被牆,最好提前下載好yaml中的鏡像文件,可以參考集群部署時的鏡像下載腳本。

 

2. 查看運行狀態

[root@k8s-master ~]# kubectl get po -n kube-system |grep dashboard
kubernetes-dashboard-5f7b999d65-45vlk   1/1     Running   0          33s

 

3. 創建訪問賬戶

這里使用Kubernetes的服務帳戶機制創建一個新用戶,授予該用戶管理權限,並使用綁定到該用戶的承載令牌登錄到dashboadr web界面。

說明:網上有通過修改yaml文件以NodePort方式登錄dashboard,測試發現可能會存在受限於瀏覽器或者其他原因不夠穩妥,故采用以下方式:

首先在命名空間kube-system中創建名為admin-user的服務帳戶,文件內容如下:

[root@k8s-master ~]# cat dashboard_service_account_admin.yaml 
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kube-system

然后,再創建一個集群角色綁定,文件內容如下:

[root@k8s-master ~]# cat dashboard_cluster_role_binding_admin.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: kube-system

發布到系統中去:

[root@k8s-master ~]# kubectl apply -f dashboard_service_account_admin.yaml 
serviceaccount/admin-user created
[root@k8s-master k8s_dashboard]# kubectl apply -f dashboard_cluster_role_binding_admin.yaml 
clusterrolebinding.rbac.authorization.k8s.io/admin-user created

 

3. 獲取用戶登錄Token

[root@k8s-master ~]# kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')

輸出如下(記下其中的Token值,登錄要用):

[root@k8s-master ~]# kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
Name:         admin-user-token-lj6t8
Namespace:    kube-system
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: admin-user
              kubernetes.io/service-account.uid: 244cf82e-6a36-11e9-a1f0-005056918527

Type:  kubernetes.io/service-account-token

Data
====
namespace:  11 bytes
token:      eyJhbGciOiJSUzI1NiIsImtpzCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdwJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLWxqNnQ4Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiIyNDRjZjgyZS02hTM2LTExZTktYTFmMC0wMDUwNTY5MTg1MjciLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06YWRtaW4tdXNlciJ9.n-1jqLG-AL6Nmg4dPO20wzMCcQHkBogFx454Ym152xM3YlOdbu6fEak_FLOsFofwaEoM-mD8qyLhmxu0PooXjshEQ9zFFrIxKDR-eV_AXiE63tMG8I08uBYnTDobVUTwPzBtHQ3gL7Cupgly0Qk7sZgkjwrtIuQDoqF8e4BivKo6GsJPWoBXjnJPGFbhLCqarYXK_9jVWAB2uTwA3ODEoobzO975es9AiuY4-NtnM9ym7_Siz8U74ArA51X_pThRvONIzfbad7BqVmLRJ4TV_k36WDwYVdzp1gD83LDbVmINVLdNk0wrkVrlS36yJRquAmzx8xJ_YfPzzElI_ep8qQ
ca.crt:     1025 bytes
View Code

 

4. 創建導入瀏覽器的.p12文件

[root@k8s-master ~]# grep 'client-certificate-data' ~/.kube/config | head -n 1 | awk '{print $2}' | base64 -d >> kubecfg.crt
[root@k8s-master ~]# grep 'client-key-data' ~/.kube/config | head -n 1 | awk '{print $2}' | base64 -d >> kubecfg.key
[root@k8s-master ~]# openssl pkcs12 -export -clcerts -inkey kubecfg.key -in kubecfg.crt -out kubecfg.p12 -name "kubernetes-web-client"

取出生成的kubecfg.p12文件,准備導入瀏覽器。

 

5. 將kubecfg.p12導入瀏覽器(這里使用谷歌瀏覽器)

導入成功后,重啟瀏覽器。

 

6. 登錄Dashboard

在瀏覽器地址欄輸入:

https://Your_Master_IP:6443/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/

跳出選擇證書后,顯示如下:

輸入Token值后,進入:

至此,kubernetes的web界面dashboard安裝完成。

 

結束.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM