1. 程式人生 > 其它 >k8s叢集中部署和訪問Dashboard服務

k8s叢集中部署和訪問Dashboard服務

1、概述

k8s的dashboard元件可以提供UI介面對叢集進行管理,包括對應用問題的處理和叢集本身的問題的處理。

本文介紹如何在k8s叢集中部署dashboard服務。

2、部署過程

2.1、獲取配置yaml

curl -s -o dashboard-v2.4.0.yaml https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml

2.2、檢視使用的映象

[root@nccztsjb-node-23 ~]# grep "image:" dashboard-v2.4.0.yaml 
          image: kubernetesui/dashboard:v2.4.0
          image: kubernetesui/metrics-scraper:v1.0.7

2.3、本地拉取映象推送到本地的harbor中

注意:這樣做的目的是為了後續部署時,如果沒有網路可用時進行部署,或者多次部署直接使用本地harbor加快速度。

拉取映象

docker pull kubernetesui/dashboard:v2.4.0
docker pull kubernetesui/metrics-scraper:v1.0.7

修改tag,推送映象到harbor

docker tag kubernetesui/metrics-scraper:v1.0.7 172.20.58.152/kubernetes/metrics-scraper:v1.0.7
docker tag kubernetesui/dashboard:v2.4.0 172.20.58.152/kubernetes/dashboard:v2.4.0

docker push 172.20.58.152/kubernetes/metrics-scraper:v1.0.7
docker push 172.20.58.152/kubernetes/dashboard:v2.4.0

2.4、修改yaml中映象資訊

sed -i 's|kubernetesui/dashboard:v2.4.0|172.20.58.152/kubernetes/dashboard:v2.4.0|' dashboard-v2.4.0.yaml 
sed -i 's|kubernetesui/metrics-scraper:v1.0.7|172.20.58.152/kubernetes/metrics-scraper:v1.0.7|' dashboard-v2.4.0.yaml 

2.5、進行服務部署

kubectl apply -f dashboard-v2.4.0.yaml

檢視pod的狀態

[root@nccztsjb-node-23 log]# kubectl get pod -n kubernetes-dashboard
NAME                                         READY   STATUS    RESTARTS   AGE
dashboard-metrics-scraper-57c4ff748c-wzz88   1/1     Running   0          51s
kubernetes-dashboard-5dddc8fbbf-zxvhw        1/1     Running   0          51s
[root@nccztsjb-node-23 log]# 

服務執行正常。

3、dashboard的訪問

3.1、埠對映

可以通過service的nodePort模式,kubectl proxy,kubectl-port,ingress等各種方式進行訪問。

本例通過port-forwad將service對映到主機上

nohup kubectl port-forward -n kubernetes-dashboard service/kubernetes-dashboard 8080:443 --address='172.20.58.83' &

--address為主機IP,後續訪問通過這個IP地址。

通過瀏覽器進行訪問https://172.20.58.83:8080

注意:是https。因為是將443對映到8080

OK,可以通過瀏覽器訪問到dashboard。

3.2、使用者許可權及token

預設建立的service account許可權只有list,watch的一些許可權,如果想要對叢集有更高的許可權,可以單獨建立使用者。

建立使用者、授予cluster-admin角色許可權

kubectl apply -f - <<EOF
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user-dashoboard-sa
  namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user-dashoboard-crbing
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin  #將cluster-admin即管理員許可權授予admin-user-dashoboard-sa
subjects:
- kind: ServiceAccount
  name: admin-user-dashoboard-sa
  namespace: kubernetes-dashboard
EOF

獲取token

kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/admin-user-dashoboard-sa -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}"

輸出類似如下

eyJhbGciOiJSUzI1NiIsImtpZCI6InZMOXNUOEZsckNXS0IwX2p0X1pyMEJVbDdMYzBlNDRlVmFmdHpHQUg1dW8ifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLWRhc2hvYm9hcmQtc2EtdG9rZW4tN3BraHMiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiYWRtaW4tdXNlci1kYXNob2JvYXJkLXNhIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiMjk0MTU0OTgtMDQ2NC00NmQxLWE3NjgtMzQwNjVmMjA1ZmM3Iiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmVybmV0ZXMtZGFzaGJvYXJkOmFkbWluLXVzZXItZGFzaG9ib2FyZC1zYSJ9.XrvSELIZKcXQToO3m_UYo94GwTXFbCFboIKphbsaS6Rf1t7ZzbMS7TKYhT2aQI5f010NDYHHgtDx3dKd2Ei7OKz7yjpYD2XgZseIvMwaj4aer9V1aPVKcdhzry3AVShBE6ABA5Lm0IXWzR-s5FjFWGMWZvYEndb54PvHKA_B1j2zhWHIjZn--YeX48dfdXiakpfI_aehucUaB-vZl9HSC0R_k3FymiVR98Iz8AJ9-87aIZ_LPbTKPVTF5TkMW3sokwxRVl3C2R9OMr6rb5IaP7vJXN4ALV_DAyQNOjSPNd9UBeH7E3FhD4jYPuPJn2gVQg5flKpDcAN96J-IeJTy4Q

3.3、瀏覽器輸入token訪問

這樣就可以看到當前名稱空間中部署的服務。

同樣也可以切換名稱空間,檢視不同的物件和建立、管理具體的資源物件。

OK,dashboard部署完成。

注意,如果要看到各個資源的統計資訊,需要先部署好mestric server.

★★★★★如果您在檢視博文時,有任何的疑問都可以加我的微信。13240133388. 希望可以幫助到您~★★★★