溫馨提示×

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

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

Kubernetes部署dashboard和Prometheus的教程

發(fā)布時(shí)間:2020-05-27 14:54:55 來源:億速云 閱讀:340 作者:鴿子 欄目:云計(jì)算

一、dashboard

1)獲取yaml文件修改并執(zhí)行

如圖:
Kubernetes部署dashboard和Prometheus的教程
Kubernetes部署dashboard和Prometheus的教程
Kubernetes部署dashboard和Prometheus的教程

[root@master ~]# wget  https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-rc5/aio/deploy/recommended.yaml
[root@master ~]# vim recommended.yaml +39
#定位到39行,修改其提供的service資源
spec:
  type: NodePort
  ports:
    - port: 443
      targetPort: 8443
      nodePort: 31001
  selector:
    k8s-app: kubernetes-dashboard
#因?yàn)槟J(rèn)情況下,service的類型是cluster IP,需更改為NodePort的方式,便于訪問,也可映射到指定的端口
[root@master ~]# kubectl apply -f recommended.yaml 
[root@master ~]# kubectl get pod -n kubernetes-dashboard 
NAME                                         READY   STATUS    RESTARTS   AGE
dashboard-metrics-scraper-7f5767668b-dd7ml   1/1     Running   0          28s
kubernetes-dashboard-57b4bcc994-vrzcp        1/1     Running   0          28s
#確保該yaml文件提供的pod均正常運(yùn)行
[root@master ~]# kubectl get svc -n kubernetes-dashboard 
NAME                        TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)         AGE
dashboard-metrics-scraper   ClusterIP   10.110.63.144   <none>        8000/TCP        86s
kubernetes-dashboard        NodePort    10.111.65.9     <none>        443:31001/TCP   87s
#查看service資源,也屬正常狀態(tài),并且已經(jīng)映射了我們指定的端口
2)客戶端訪問測(cè)試

該版本之前的dashboard,必須使用火狐瀏覽器才可訪問,本次使用的版本并沒有硬性的要求。

Kubernetes部署dashboard和Prometheus的教程
Kubernetes部署dashboard和Prometheus的教程

3)使用Token的方式登錄
[root@master ~]# kubectl create serviceaccount dashboard-admin -n kube-system
#創(chuàng)建一個(gè)dashboard的管理用戶
[root@master ~]# kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
#將創(chuàng)建的dashboard用戶綁定為管理用戶
[root@master ~]# kubectl get secrets -n kube-system | grep dashboard
#獲取剛剛創(chuàng)建的用戶對(duì)應(yīng)的token名稱
dashboard-admin-token-88gxw                      kubernetes.io/service-account-token   3      22s
[root@master ~]# kubectl describe secrets -n kube-system dashboard-admin-token-88gxw 
#查看token的詳細(xì)信息

如圖:
Kubernetes部署dashboard和Prometheus的教程
瀏覽器訪問:
Kubernetes部署dashboard和Prometheus的教程
Kubernetes部署dashboard和Prometheus的教程
出現(xiàn)該頁面表示訪問成功!

4)使用kubeconfig的方式登錄

基于token的基礎(chǔ)之上,進(jìn)行以下操作:

[root@master ~]# kubectl get secrets -n kube-system | grep dashboard
#查看剛才創(chuàng)建的token
dashboard-admin-token-88gxw                      kubernetes.io/service-account-token   3      22m
[root@master ~]# kubectl describe secrets -n kube-system dashboard-admin-token-88gxw
#查看token的詳細(xì)信息,會(huì)獲取token
[root@master ~]# DASH_TOKEN=$(kubectl get secrets -n kube-system dashboard-admin-token-88gxw -o jsonpath={.data.token} | base64 -d)
#將token的信息生成一個(gè)變量
[root@master ~]# kubectl config set-cluster kubernets --server=192.168.1.1:6443 --kubeconfig=/root/.dashboard-admin.conf
#將k8s集群的配置信息寫入到一個(gè)文件中,文件可自定義
[root@master ~]# kubectl config set-credentials dashboard-admin --token=${DASH_TOKEN} --kubeconfig=/root/.dashboard-admin.conf
#將token的信息也寫入到文件中(同一個(gè)文件)
[root@master ~]# kubectl config set-context dashboard-admin@kubernetes --cluster=kubernetes --user=dashboard-admin --kubeconfig=/root/.dashboard-admin.conf
#將用戶信息也寫入文件中(同一個(gè)文件)
[root@master ~]# kubectl config use-context dashboard-admin@kubernetes --kubeconfig=/root/.dashboard-admin.conf
#將上下文的配置信息也寫入文件中(同一個(gè)文件)
[root@master ~]# sz /root/.dashboard-admin.conf
#最后將配置信息導(dǎo)入到客戶端本地

瀏覽器訪問:
Kubernetes部署dashboard和Prometheus的教程
Kubernetes部署dashboard和Prometheus的教程
出現(xiàn)上述頁面即表示訪問成功!

關(guān)于dashboard的方式就簡(jiǎn)單介紹這么多!

二、Weave Scope

1)獲取yaml文件修改并執(zhí)行

如圖:
Kubernetes部署dashboard和Prometheus的教程
Kubernetes部署dashboard和Prometheus的教程
Kubernetes部署dashboard和Prometheus的教程

[root@master ~]# wget https://cloud.weave.works/k8s/scope.yaml
[root@master ~]# vim scope.yaml   +212
#定位到212行,更改service類型為NodePort,并指定端口
    spec:
      type: NodePort
      ports:
        - name: app
          port: 80
          protocol: TCP
          targetPort: 4040
          nodePort: 31002
[root@master ~]# kubectl apply -f scope.yaml
[root@master ~]# kubectl get pod -n weave 
#確保運(yùn)行的pod均為Running狀態(tài)
NAME                                         READY   STATUS    RESTARTS   AGE
weave-scope-agent-7t4qc                      1/1     Running   0          8m57s
weave-scope-agent-r78fz                      1/1     Running   0          8m57s
weave-scope-agent-t8j66                      1/1     Running   0          8m57s
weave-scope-app-78cff98cbc-cs4gs             1/1     Running   0          8m57s
weave-scope-cluster-agent-7cc889fbbf-pz6ft   1/1     Running   0          8m57s
[root@master ~]# kubectl get svc -n weave 
#查看常見的svc資源對(duì)應(yīng)的端口信息
NAME              TYPE       CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
weave-scope-app   NodePort   10.102.221.220   <none>        80:31002/TCP   11m

瀏覽器訪問:
Kubernetes部署dashboard和Prometheus的教程

三、Prometheus

在部署Prometheus之前,由于實(shí)驗(yàn)環(huán)境,配置較低,所以將原本的dashboard、Scope進(jìn)行刪除了!

在真正部署Prometheus之前,應(yīng)了解一下Prometheus的各個(gè)組件之間的關(guān)系及作用:
1)MertricServer:是k8s集群資源使用情況的聚合器,收集數(shù)據(jù)給K8s集群內(nèi)使用,如:kubectl,hpa,scheduler;
2)PrometheusOperator:是一個(gè)系統(tǒng)檢測(cè)和警報(bào)工具箱,用來存儲(chǔ)監(jiān)控?cái)?shù)據(jù);
3)NodeExporter:用于各node的關(guān)鍵度量指標(biāo)狀態(tài)數(shù)據(jù);
4)kubeStateMetrics:收集k8s集群內(nèi)資源對(duì)象數(shù)據(jù),指定告警規(guī)則;
5)Prometheus:采用pull方式收集apiserver,scheduler,controller-manager,kubelet組件數(shù)據(jù),通過http協(xié)議傳輸;
6)Grafana:是可視化數(shù)據(jù)統(tǒng)計(jì)和監(jiān)控平臺(tái);

1)獲取yaml文件修改并執(zhí)行

注意:這里部署的Prometheus,并不是Prometheus官網(wǎng)提供的,而是使用的coreos提供的Prometheus項(xiàng)目。

如圖:
Kubernetes部署dashboard和Prometheus的教程
Kubernetes部署dashboard和Prometheus的教程

[root@master ~]# git clone https://github.com/coreos/kube-prometheus.git
#將項(xiàng)目克隆到本地
[root@master ~]# cd kube-prometheus/manifests/
[root@master manifests]# vim grafana-service.yaml
#更改grafana資源對(duì)應(yīng)的service資源的類型及映射的端口
apiVersion: v1
kind: Service
metadata:
  labels:
    app: grafana
  name: grafana
  namespace: monitoring
spec:
  type: NodePort               #添加類型為NodePort
  ports:
  - name: http
    port: 3000
    targetPort: http
    nodePort: 31010          #自定義映射的端口
  selector:
    app: grafana
[root@master manifests]# vim alertmanager-service.yaml 
#更改alertmanager資源對(duì)應(yīng)的service資源的類型及映射的端口
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: 31020          #自定義映射的端口
  selector:
    alertmanager: main
    app: alertmanager
  sessionAffinity: ClientIP
[root@master manifests]# vim prometheus-service.yaml 
#更改prometheus資源對(duì)應(yīng)的service資源的類型及映射的端口
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: 31030          #自定義映射的端口
  selector:
    app: prometheus
    prometheus: k8s
  sessionAffinity: ClientIP
[root@master manifests]# pwd          #確認(rèn)當(dāng)前所在目錄
/root/kube-prometheus/manifests
[root@master manifests]# kubectl apply -f setup/
#必須先執(zhí)行setup目錄下的所有yaml文件
[root@master manifests]# cd ..          #返回上層目錄
[root@master kube-prometheus]# pwd        #確認(rèn)目錄位置
/root/kube-prometheus
[root@master kube-prometheus]# kubectl apply -f manifests/
#將該目錄下的yaml文件全部執(zhí)行
[root@master kube-prometheus]# kubectl get pod -n monitoring 
#確保該名稱空間下的所有Pod都是Running狀態(tài)
[root@master kube-prometheus]# kubectl get svc -n monitoring | grep grafana
#查看grafana資源對(duì)應(yīng)的service資源映射的端口
grafana                 NodePort    10.97.56.230    <none>        3000:31010/TCP               16m

所使用的pod的鏡像下載較慢,總之,網(wǎng)絡(luò)穩(wěn)定一切都不是問題!

瀏覽器訪問:
Kubernetes部署dashboard和Prometheus的教程
Kubernetes部署dashboard和Prometheus的教程
Kubernetes部署dashboard和Prometheus的教程
Kubernetes部署dashboard和Prometheus的教程
Kubernetes部署dashboard和Prometheus的教程
Kubernetes部署dashboard和Prometheus的教程
本地自帶的模板有點(diǎn)low,所以接下來導(dǎo)入一個(gè)好看的模板!

模板下載地址:https://grafana.com/dashboards 自行進(jìn)行查看!

Kubernetes部署dashboard和Prometheus的教程
Kubernetes部署dashboard和Prometheus的教程
Kubernetes部署dashboard和Prometheus的教程

大功告成,可以看到炫酷的監(jiān)控頁面了。


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

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

AI