<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Kubernetes_使用kubernetes部署prometheus+grafana監(jiān)控系統(tǒng)(Kubernetes工作實(shí)踐類)

          共 3685字,需瀏覽 8分鐘

           ·

          2022-11-21 14:17

          一、前言

          本文屬于Kubernetes工作實(shí)踐類,工作中,在機(jī)器上安裝好了kubernetes之后,需要同時(shí)安裝好prometheus+grafana監(jiān)控。

          本文工程代碼(node-exporter.yaml + prometheus.yaml + grafana.yaml)
          https://www.syjshare.com/res/PVP90A7J

          二、K8s監(jiān)控系統(tǒng)架構(gòu)

          2.1 Prometheus簡(jiǎn)介

          prometheus 官網(wǎng) :https://prometheus.io/
          prometheus github :https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/prometheus

          grafana 官網(wǎng):https://grafana.com/grafana/dashboards

          對(duì)于開發(fā),
          官網(wǎng)的價(jià)值在于所有API都在這里
          github的價(jià)值在于下載下來(lái),定制化修改一下,就可以打一個(gè)鏡像
          常用功能直接百度/谷歌都有人做過(guò),實(shí)際問題直接百度/谷歌都有人解決過(guò)

          2.2 Prometheus架構(gòu)

          2.3 Prometheus知識(shí)普及

          1、支持pull、push數(shù)據(jù)添加方式
          2、支持k8s服務(wù)發(fā)現(xiàn)
          3、提供查詢語(yǔ)言PromQL
          4、時(shí)序(time series)是由名字(Metric)以及一組key/value標(biāo)簽定義的
          5、數(shù)據(jù)類型

          三、K8s監(jiān)控系統(tǒng)搭建

          3.1 三類數(shù)據(jù)采集metrics

          metrics 是一個(gè)接口 然后將 metrics 的數(shù)據(jù)給 普羅米修斯 ,下面介紹三類:
          nodeExporter通過(guò)自己的 /metrics 接口得到數(shù)據(jù),給prometheus;
          靜態(tài)pod通過(guò)自帶的 /metrics 接口得到數(shù)據(jù),給prometheus;

          第一,K8S集群每個(gè)服務(wù)器數(shù)據(jù)

          通過(guò)NodeExporter:https://github.com/prometheus/node_exporter

          k8s集群每個(gè)機(jī)器node都安裝一個(gè)NodeExporter(使用daemonSet部署方式就要確保每個(gè)node都安裝上了)

          理論支持:exporter 是一個(gè)數(shù)據(jù)采集工具,除了Node Exporter之外,還有HAProxy Exporter、MySQL Exporter、Redis Exporter和Rabbitmq Exporter。

          第二,K8S集群每個(gè)組件數(shù)據(jù):k8s每個(gè)組件都有metrics接口,如下:

          ETCD:https://ip:2379/metrics
          APIServer:https://ip:6443/metrics
          ControllerManager:https://ip:10252/metrics
          Scheduler:https://ip:10251/metrics

          理論支持:k8s四個(gè)靜態(tài)pod的kubectl底層都是有 restful 風(fēng)格的接口支持的,所以通過(guò) /metrics 接口獲取數(shù)據(jù)是可行的。

          第三,容器數(shù)據(jù):通過(guò)cAdvisor,

          3.2 Prometheus+Grafana

          在master上創(chuàng)建prometheus目錄

          (1)創(chuàng)建命名空間ns-monitor

          (2)創(chuàng)建node-exporter
          namespace.yaml node-exporter.yaml prometheus.yaml grafana.yaml ingress.yaml
          kubectl apply -f namespace.yaml
          kubectl get namespace

          (3)部署prometheus pod
          包含rbac認(rèn)證、ConfigMap等 注意 :記得修改prometheus.yaml文件中的ip為master的ip和path[PV需要使用到]

          (4)部署grafana

          (5)增加域名訪問[沒有域名好像沒有靈魂] 前提 :配置好ingress controller和域名解析

          3.3 實(shí)踐一下:將prometheus+grafana搭建起來(lái)

          3.3.1 搭建

          # 下載好鏡像(所需要的三個(gè)鏡像都可以下載到,無(wú)需科學(xué)上網(wǎng))
          docker pull prom/node-exporter:v0.16.0
          docker pull prom/prometheus:latest
          docker pull grafana/grafana:latest

          # 新建目錄和命名空間,并上傳三個(gè)yaml到目錄中
          mkdir /root/ns-monitor # 用來(lái)存放三個(gè)yaml文件
          kubectl create ns ns-monitor

          # 配置好nfs和需要新增的目錄
          mkdir /nfs/data/prometheus
          mkdir /nfs/data/grafana

          # 第一步,安裝nfs
          yum install -y nfs-utils

          # 第二步,創(chuàng)建nfs目錄并授予權(quán)限 /nfs/data/nginx 這個(gè)目錄就是nfs ip那個(gè)目錄
          # 創(chuàng)建nfs目錄
          mkdir -p /nfs/data/
          # 授予權(quán)限
          chmod -R 777 /nfs/data

          # 第三步,編輯export文件并保存
          # 編輯export文件 對(duì)于/nfs/data目錄,授予可讀可寫權(quán)限、根目錄權(quán)限、同步數(shù)據(jù)權(quán)限
          vi /etc/exports
          /nfs/data *(rw,no_root_squash,sync)
          # 使得配置生效
          exportfs -r
          # 查看生效
          exportfs

          # 第四步,啟動(dòng)rpcbind、nfs服務(wù)并驗(yàn)證
          # 啟動(dòng)rpcbind、nfs服務(wù),并驗(yàn)證兩個(gè)服務(wù)啟動(dòng) ps -ef|grep rpcbind ps -ef|grep nfs
          systemctl restart rpcbind && systemctl enable rpcbind
          systemctl restart nfs && systemctl enable nfs
          # 查看rpc服務(wù)的注冊(cè)情況
          rpcinfo -p localhost
          # showmount測(cè)試   
          # showmount命令用于查詢NFS服務(wù)器的相關(guān)信息   -e或--exports 顯示NFS服務(wù)器的輸出清單。
          showmount -e master-ip
          showmount -e 192.168.100.151

          3.3.2 分步測(cè)試

          注意分步驗(yàn)證:
          驗(yàn)證node exporter
          驗(yàn)證 普羅米修斯
          驗(yàn)證 grafana

          3.3.2.1 安裝 node exporter 測(cè)試好了

          3.3.2.2 使用kubernetes部署prometheus

          關(guān)于prometheus.yaml,從界面驗(yàn)證各個(gè)yaml

          (1) 驗(yàn)證 kubectl get all -n ns-monitor | kubectl get pv,pvc -A

          (2) 持久化:驗(yàn)證 pv pvc 去 /nfs/data/prometheus 目錄下

          (3) configmap:驗(yàn)證 configmap 去service discovery

          (4) rbac:驗(yàn)證 rbac 能運(yùn)行起來(lái)就驗(yàn)證了 (rbac是apiserver四特性中的第二特性,如果rbac配置錯(cuò)誤,無(wú)法apply成功)

          (5) deployment-service:驗(yàn)證 deployment service 能看到界面就驗(yàn)證好了


          kubectl get all -n ns-monitor 服務(wù)啟動(dòng)成功
          kubectl get pv,pvc -A 持久化綁定bound成功

          驗(yàn)證啟動(dòng):192.168.100.151:30841 (prometheus服務(wù)的 nodePort 暴露的出來(lái)端口)

          http://192.168.100.151:30841/targets 查看所有的/metrics的數(shù)據(jù)被prometheus監(jiān)控到了,如下:

          進(jìn)入 /nfs/data/prometheus ,這里表示持久化完成

          3.3.2.3 grafana測(cè)試成功

          最后解釋一下,pv pvc 如何匹配上的

          3.3.3 Grafana將同一個(gè)集群中的prometheus配置為數(shù)據(jù)源datasource



          3.3.4 Grafana導(dǎo)入Dashboard和查看Dashboard

          3.3.4.1 Grafana導(dǎo)入看板Dashboard的三種方式


          所有的dashboard看板實(shí)際就是一個(gè)json文件,三個(gè)紅色框框表示三種方式

          第一種,將電腦本地的JSON導(dǎo)入到Grafana中
          第二種,官網(wǎng)下載地址:https://grafana.com/grafana/dashboards,進(jìn)入到官網(wǎng),將ID復(fù)制過(guò)來(lái),點(diǎn)擊右邊的Load


          第三種,直接將JSON字符串的內(nèi)容復(fù)制過(guò)來(lái),點(diǎn)擊下面的Load

          3.3.4.2 Grafana查看看板Dashboard

          四、尾聲

          finish!!!

          Learn technology well, Day Day Up !


          瀏覽 88
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日本A片一级 | 九九色九九九 | 成人激情视频图片播放 | 国产熟女操逼 | 亚洲天堂网在线观看视频 |