溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

dashboard有什么用?怎么安裝和配置dashboard?

發(fā)布時(shí)間:2020-05-27 14:41:51 來(lái)源:億速云 閱讀:2859 作者:鴿子 欄目:云計(jì)算

一、k8s的UI訪問(wèn)界面-dashboard

在dashboard中,雖然可以做到創(chuàng)建、刪除、修改資源等操作,但通常情況下,我們會(huì)把它當(dāng)做健康k8s集群的軟件。

作為Kubernetes的Web用戶界面,用戶可以通過(guò)Dashboard在Kubernetes集群中部署容器化的應(yīng)用,對(duì)應(yīng)用進(jìn)行問(wèn)題處理和管理,并對(duì)集群本身進(jìn)行管理。通過(guò)Dashboard,用戶可以查看集群中應(yīng)用的運(yùn)行情況,同時(shí)也能夠基于Dashboard創(chuàng)建或修改部署、任務(wù)、服務(wù)等Kubernetes的資源。通過(guò)部署向?qū)?,用戶能夠?qū)Σ渴疬M(jìn)行擴(kuò)縮容,進(jìn)行滾動(dòng)更新、重啟Pod和部署新應(yīng)用。當(dāng)然,通過(guò)Dashboard也能夠查看Kubernetes資源的狀態(tài)。

1、Dashboard提供的功能

在默認(rèn)情況下,Dashboard顯示默認(rèn)(default)命名空間下的對(duì)象,也可以通過(guò)命名空間選擇器選擇其他的命名空間。在Dashboard用戶界面中能夠顯示集群大部分的對(duì)象類型。

1)集群管理

集群管理視圖用于對(duì)節(jié)點(diǎn)、命名空間、持久化存儲(chǔ)卷、角色和存儲(chǔ)類進(jìn)行管理。 節(jié)點(diǎn)視圖顯示CPU和內(nèi)存的使用情況,以及此節(jié)點(diǎn)的創(chuàng)建時(shí)間和運(yùn)行狀態(tài)。 命名空間視圖會(huì)顯示集群中存在哪些命名空間,以及這些命名空間的運(yùn)行狀態(tài)。角色視圖以列表形式展示集群中存在哪些角色,這些角色的類型和所在的命名空間。 持久化存儲(chǔ)卷以列表的方式進(jìn)行展示,可以看到每一個(gè)持久化存儲(chǔ)卷的存儲(chǔ)總量、訪問(wèn)模式、使用狀態(tài)等信息;管理員也能夠刪除和編輯持久化存儲(chǔ)卷的YAML文件。

2) 工作負(fù)載

工作負(fù)載視圖顯示部署、副本集、有狀態(tài)副本集等所有的工作負(fù)載類型。在此視圖中,各種工作負(fù)載會(huì)按照各自的類型進(jìn)行組織。 工作負(fù)載的詳細(xì)信息視圖能夠顯示應(yīng)用的詳細(xì)信息和狀態(tài)信息,以及對(duì)象之間的關(guān)系。

3) 服務(wù)發(fā)現(xiàn)和負(fù)載均衡

服務(wù)發(fā)現(xiàn)視圖能夠?qū)⒓簝?nèi)容的服務(wù)暴露給集群外的應(yīng)用,集群內(nèi)外的應(yīng)用可以通過(guò)暴露的服務(wù)調(diào)用應(yīng)用,外部的應(yīng)用使用外部的端點(diǎn),內(nèi)部的應(yīng)用使用內(nèi)部端點(diǎn)。

4) 存儲(chǔ)

存儲(chǔ)視圖顯示被應(yīng)用用來(lái)存儲(chǔ)數(shù)據(jù)的持久化存儲(chǔ)卷申明資源。

5) 配置

配置視圖顯示集群中應(yīng)用運(yùn)行時(shí)所使用配置信息,Kubernetes提供了配置字典(ConfigMaps)和秘密字典(Secrets),通過(guò)配置視圖,能夠編輯和管理配置對(duì)象,以及查看隱藏的敏感信息。

6) 日志視圖

Pod列表和詳細(xì)信息頁(yè)面提供了查看日志視圖的鏈接,通過(guò)日志視圖不但能夠查看Pod的日志信息,也能夠查看Pod容器的日志信息。通過(guò)Dashboard能夠根據(jù)向?qū)?chuàng)建和部署一個(gè)容器化的應(yīng)用,當(dāng)然也可以通過(guò)手工的方式輸入指定應(yīng)用信息,或者通過(guò)上傳YAML和JSON文件來(lái)創(chuàng)建和不受應(yīng)用。

2、下載所需yaml文件和鏡像

[root@master https]# wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-rc5/aio/deploy/recommended.yaml
[root@master https]# docker pull kubernetesui/dashboard:v2.0.0-rc5

3、修改 recommended.yaml

[root@master https]#vim recommended.yaml 
---
kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
spec:
  type: NodePort            #添加40
  ports:
    - port: 443
      targetPort: 8443
  selector:
    k8s-app: kubernetes-dashboard

執(zhí)行一下

[root@master https]# kubectl apply -f recommended.yaml

查看一下

[root@master https]# kubectl get svc -n kubernetes-dashboard 

dashboard有什么用?怎么安裝和配置dashboard?

3、瀏覽器訪問(wèn)https://192.168.1.21:32306

PS:如果是使用的舊版本的dashboard, 使用Google瀏覽器登錄,可能是不成功的,需要換成其他的瀏覽器,比如:火狐。

dashboard有什么用?怎么安裝和配置dashboard?

4、基于token的方法登錄dashboard

<1>創(chuàng)建一個(gè)dashboard的管理用戶

[root@master https]# kubectl create serviceaccount dashboard-admin -n kube-system

<2>綁定用戶為集群管理用戶

[root@master https]# kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin

<3>獲取Token

[root@master https]# kubectl get secrets -n kube-system | grep dashboard-admin
//先得到Token的名稱

dashboard有什么用?怎么安裝和配置dashboard?

[root@master https]# kubectl describe secrets -n kube-system  dashboard-admin-token-62bh9
//查看上述得到的secret資源的詳細(xì)信息,會(huì)得到token

dashboard有什么用?怎么安裝和配置dashboard?

<4>在瀏覽器上使用token登錄。

dashboard有什么用?怎么安裝和配置dashboard?

dashboard有什么用?怎么安裝和配置dashboard?

創(chuàng)建一個(gè)資源

dashboard有什么用?怎么安裝和配置dashboard?

dashboard有什么用?怎么安裝和配置dashboard?

查看是否創(chuàng)建成功

dashboard有什么用?怎么安裝和配置dashboard?

dashboard有什么用?怎么安裝和配置dashboard?

5、基于kubeconfig配置文件的方法登錄dashboard

<1>獲取Token

[root@master https]# kubectl get secrets -n kube-system | grep dashboard-admin
//先得到Token的名稱

dashboard有什么用?怎么安裝和配置dashboard?

[root@master https]# kubectl describe secrets -n kube-system  dashboard-admin-token-62bh9
//查看上述得到的secret資源的詳細(xì)信息,會(huì)得到token

dashboard有什么用?怎么安裝和配置dashboard?

<2>生成kubeconfig配置文件。

設(shè)置一個(gè)環(huán)境變量代表獲取的token

[root@master https]# DASH_TOKEN=$(kubectl get secrets -n kube-system dashboard-admin-token-62bh9  -o jsonpath={.data.token} | base64 -d)

將k8s集群的配置信息寫(xiě)入kubeconfig配置文件中。

[root@master https]# kubectl config set-cluster kubernetes --server=192.168.1.21:6443 --kubeconfig=/root/.dashboard-admin.conf
[root@master https]# kubectl config set-credentials dashboard-admin --token=$DASH_TOKEN --kubeconfig=/root/.dashboard-admin.conf 
[root@master https]# kubectl config set-context dashboard-admin@kubernetes --cluster=kubernetes --user=dashboard-admin --kubeconfig=/root/.dashboard-admin.conf
[root@master https]# kubectl config use-context dashboard-admin@kubernetes --kubeconfig=/root/.dashboard-admin.conf

<3>將生成的/root/.dashboard-admin.conf的配置文件,導(dǎo)出并做保存。

[root@master https]# sz /root/.dashboard-admin.conf 
//導(dǎo)出到自己習(xí)慣的位置即可

<4>從瀏覽器選擇kubeconfig的登錄方式,然后導(dǎo)入配置文件即可。

dashboard有什么用?怎么安裝和配置dashboard?

dashboard有什么用?怎么安裝和配置dashboard?

二、部署weave-scope監(jiān)控k8s集群

Weave Scope 是 Docker 和 Kubernetes 可視化監(jiān)控工具。Scope 提供了至上而下的集群基礎(chǔ)設(shè)施和應(yīng)用的完整視圖,用戶可以輕松對(duì)分布式的容器化應(yīng)用進(jìn)行實(shí)時(shí)監(jiān)控和問(wèn)題診斷。

使用scope

  • Scope 會(huì)自動(dòng)構(gòu)建應(yīng)用和集群的邏輯拓?fù)?。比如點(diǎn)擊頂部 PODS,會(huì)顯示所有 Pod 以及 Pod 之間的依賴關(guān)系。
  • 點(diǎn)擊 HOSTS,會(huì)顯示各個(gè)節(jié)點(diǎn)之間的關(guān)系。

    實(shí)時(shí)資源監(jiān)控

  • 可以在 Scope 中查看資源的 CPU 和內(nèi)存使用情況。
  • 支持的資源有 Host、Pod 和 Container。**

    在線操作

  • Scope 還提供了便捷的在線操作功能,比如選中某個(gè) Host,點(diǎn)擊 >_ 按鈕可以直接在瀏覽器中打開(kāi)節(jié)點(diǎn)的命令行終端
  • 點(diǎn)擊 Deployment 的 + 可以執(zhí)行 Scale Up 操作
  • 可以查看 Pod 的日志
  • 可以 attach、restart、stop 容器,以及直接在 Scope 中排查問(wèn)題

    強(qiáng)大的搜索功能

  • Scope 支持關(guān)鍵字搜索和定位資源。
  • 還可以進(jìn)行條件搜索,比如查找和定位 MEMORY > 100M 的 Pod。

1、在github上查找scope的yaml文件

(1)github上搜索scope

dashboard有什么用?怎么安裝和配置dashboard?

(2)進(jìn)入k8s的部署scope的說(shuō)明

dashboard有什么用?怎么安裝和配置dashboard?

(3)選擇k8s的部署

dashboard有什么用?怎么安裝和配置dashboard?

dashboard有什么用?怎么安裝和配置dashboard?

(4)復(fù)制上面的鏈接,并下載yaml文件

[root@master https]# wget https://cloud.weave.works/k8s/scope.yaml

2、修改下載的yaml文件并運(yùn)行

[root@master ~]# vim scope.yaml  #編輯yaml文件
#跳轉(zhuǎn)至213行,修改其service的端口類型
    spec:
      type: NodePort         #修改類型為NodePort
      ports:
        - name: app
          port: 80
          protocol: TCP
          targetPort: 4040

(1)執(zhí)行一下

[root@master https]# kubectl apply -f scope.yaml 

(2)查看容器的運(yùn)行情況,確定處于正常運(yùn)行

[root@master https]# kubectl get  pod -o wide -n weave

dashboard有什么用?怎么安裝和配置dashboard?

  • DaemonSet weave-scope-agent,集群每個(gè)節(jié)點(diǎn)上都會(huì)運(yùn)行的 scope agent 程序,負(fù)責(zé)收集數(shù)據(jù)。
  • Deployment weave-scope-app,scope 應(yīng)用,從 agent 獲取數(shù)據(jù),通過(guò) Web UI 展示并與用戶交互。
  • Service weave-scope-app,默認(rèn)是 ClusterIP 類型,我們已經(jīng)在上面的命令中添加了參數(shù)k8s-service-type=NodePort修改為 NodePort。
[root@master https]# kubectl get svc -n weave 

dashboard有什么用?怎么安裝和配置dashboard?

#DaemonSet資源對(duì)象:weave-scope-agent(代理):負(fù)責(zé)收集節(jié)點(diǎn)的信息;
#deployment資源對(duì)象:weave-scope-app(應(yīng)用):從agent獲取數(shù)據(jù),通過(guò)web UI展示并與用戶交互;
#DaemonSet資源對(duì)象的特性和deployment相比,就是DaemonSet資源對(duì)象會(huì)在每個(gè)節(jié)點(diǎn)上都運(yùn)行且只能運(yùn)行一個(gè)pod。
#由于每個(gè)節(jié)點(diǎn)都需要監(jiān)控,所以用到了DaemonSet這種資源對(duì)象

3、瀏覽器訪問(wèn)一下http://192.168.1.21:31841/

dashboard有什么用?怎么安裝和配置dashboard?

在scope的web界面中,可以查看很多的東西,pod、node節(jié)點(diǎn)等詳細(xì)信息,包括打開(kāi)容器的終端,查看其日志信息等等

總結(jié)

?  weave scope可以以其簡(jiǎn)潔的可視化為我們更生動(dòng)形象的展現(xiàn)出service/controller/pod等資源對(duì)象的管理及簡(jiǎn)單的web ui操作,方便故障排除及時(shí)定位
?  weave scope作為web ui目前缺少登錄驗(yàn)證,可以利用其他方式里面web服務(wù)器的驗(yàn)證做安全管控。

三、部署Prometheus服務(wù)

PS:在這里部署的prometheus,并不是Prometheus官網(wǎng)提供的,而是使用的coreos提供的prometheus項(xiàng)目。
dashboard有什么用?怎么安裝和配置dashboard?

在部署之前,先來(lái)了解一下Prometheus各個(gè)組件的作用吧!

  • MetricsServer:  是k8s集群資源使用情況的聚合器,收集數(shù)據(jù)給k8s集群內(nèi)使用,如kubectl,hpa,scheduler等。
  • Prometheus Operator : 是一個(gè)系統(tǒng)檢測(cè)和警報(bào)工具箱,用來(lái)存儲(chǔ)監(jiān)控?cái)?shù)據(jù)。
  • Prometheus node-exporter :收集k8s集群資源的數(shù)據(jù),指定告警規(guī)則。
  • Prometheus :收集apiserver,scheduler,controller-manager,kubelet組件的數(shù)據(jù),通過(guò)http協(xié)議傳輸。
  • Grafana: 可視化數(shù)據(jù)統(tǒng)計(jì)和監(jiān)控平臺(tái)。

特征

Prometheus 相比于其他傳統(tǒng)監(jiān)控工具主要有以下幾個(gè)特點(diǎn):

  • 具有由 metric 名稱和鍵/值對(duì)標(biāo)識(shí)的時(shí)間序列數(shù)據(jù)的多維數(shù)據(jù)模型
  • 有一個(gè)靈活的查詢語(yǔ)言
  • 不依賴分布式存儲(chǔ),只和本地磁盤(pán)有關(guān)
  • 通過(guò) HTTP 的服務(wù)拉取時(shí)間序列數(shù)據(jù)
  • 也支持推送的方式來(lái)添加時(shí)間序列數(shù)據(jù)
  • 還支持通過(guò)服務(wù)發(fā)現(xiàn)或靜態(tài)配置發(fā)現(xiàn)目標(biāo)
  • 多種圖形和儀表板支持

1、在github上搜索coreos/prometheus

dashboard有什么用?怎么安裝和配置dashboard?

dashboard有什么用?怎么安裝和配置dashboard?

復(fù)制鏈接

2、克隆github上的promethes項(xiàng)目

[root@master promethes]# yum -y install git
//下載git命令
[root@master promethes]# git clone  https://github.com/coreos/kube-prometheus.git
//克隆github上的項(xiàng)目

dashboard有什么用?怎么安裝和配置dashboard?

3、修改grafapa-service.yaml文件, 更改為nodePort的暴露方式,暴露端口為31001.。

[root@master promethes]# cd kube-prometheus/manifests/
//進(jìn)入kube-prometheus的manifests目錄
[root@master manifests]# vim grafana-service.yaml    #修改grafana的yaml文件

apiVersion: v1
kind: Service
metadata:
  labels:
    app: grafana
  name: grafana
  namespace: monitoring
spec:
  type: NodePort       #改為NodePort類型
  ports:
  - name: http
    port: 3000
    targetPort: http
    nodePort: 31001    #映射到宿主機(jī)31001端口
  selector:
    app: grafana

3.修改prometheus-service.yaml文件, 更改為nodePort的暴露方式,暴露端口為31002.

[root@master manifests]# vim prometheus-service.yaml    #修改prometheus的yaml文件

apiVersion: v1
kind: Service
metadata:
  labels:
    prometheus: k8s
  name: prometheus-k8s
  namespace: monitoring
spec:
  type: NodePort      #改為NodePort類型
  ports:
  - name: web
    port: 9090
    targetPort: web
    nodePort: 31002    #映射到宿主機(jī)31002端口
  selector:
    app: prometheus
    prometheus: k8s
  sessionAffinity: ClientIP

4、修改alertmanager-service.yaml文件, 更改為nodePort的暴露方式,暴露端口為31003

[root@master manifests]# vim alertmanager-service.yaml    #修改alertmanager的yaml文件

apiVersion: v1
kind: Service
metadata:
  labels:
    alertmanager: main
  name: alertmanager-main
  namespace: monitoring
spec:
  type: NodePort             #改為NodePort類型
  ports:
  - name: web
    port: 9093
    targetPort: web
    nodePort: 31003         #映射到宿主機(jī)31003端口
  selector:
    alertmanager: main
    app: alertmanager
  sessionAffinity: ClientIP

5、將setup目錄中所有的yaml文件,全部運(yùn)行。是運(yùn)行以上yaml文件的基礎(chǔ)環(huán)境配置。

[root@master manifests]# cd setup/
//進(jìn)入setup/目錄
[root@master manifests]# kubectl apply -f setup/
//運(yùn)行setup目錄中所有的yaml文件

6、將主目錄(kube-prometheus)中所有的yaml文件,全部運(yùn)行。

當(dāng)執(zhí)行以下yaml文件時(shí),每個(gè)節(jié)點(diǎn)會(huì)在互聯(lián)網(wǎng)上下載很多鏡像,為了防止下載鏡像的時(shí)間過(guò)長(zhǎng),可以先將我提供的鏡像下載到本地,然后導(dǎo)入至各個(gè)節(jié)點(diǎn),然后在執(zhí)行下面的yaml文件,將會(huì)省些時(shí)間。(如果下載我提供的鏡像,建議寫(xiě)個(gè)導(dǎo)入鏡像的腳本進(jìn)行導(dǎo)入操作,避免手動(dòng)導(dǎo)入,造成錯(cuò)誤)

[root@master manifests]# cd ..
//返回上一級(jí)目錄(kube-prometheus)
[root@master kube-prometheus]# kubectl apply -f manifests/
//運(yùn)行kube-prometheus目錄中所有的yaml文件

查看一下

[root@master ~]# kubectl get pod -n monitoring

dashboard有什么用?怎么安裝和配置dashboard?

7、瀏覽器訪問(wèn)一下http://192.168.1.21:31001

客戶端訪問(wèn)群集中任意節(jié)點(diǎn)的IP+30100端口,即可看到以下界面(默認(rèn)用戶名和密碼都是admin)

dashboard有什么用?怎么安裝和配置dashboard?

根據(jù)提示更改密碼:

dashboard有什么用?怎么安裝和配置dashboard?

(1)添加模板

dashboard有什么用?怎么安裝和配置dashboard?

依次點(diǎn)擊“import”進(jìn)行導(dǎo)入下面三個(gè)模板:

dashboard有什么用?怎么安裝和配置dashboard?

(2)進(jìn)行以下點(diǎn)擊,即可查看群集內(nèi)的監(jiān)控狀態(tài)

dashboard有什么用?怎么安裝和配置dashboard?

dashboard有什么用?怎么安裝和配置dashboard?

以下可看到監(jiān)控狀態(tài)

dashboard有什么用?怎么安裝和配置dashboard?

dashboard有什么用?怎么安裝和配置dashboard?

8、導(dǎo)入監(jiān)控模板

從grafana的官網(wǎng)搜索https://grafana.com/

dashboard有什么用?怎么安裝和配置dashboard?
復(fù)制以下這個(gè)模板的id

dashboard有什么用?怎么安裝和配置dashboard?

dashboard有什么用?怎么安裝和配置dashboard?

dashboard有什么用?怎么安裝和配置dashboard?

dashboard有什么用?怎么安裝和配置dashboard?

dashboard有什么用?怎么安裝和配置dashboard?

現(xiàn)在可以看到監(jiān)控畫(huà)面了

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI