首頁>技術>

本文永久連結: https://www.xtplayer.cn/rancher/monitors/rancher-monitors-collection-external-etcd-data/

目前,rancher 自帶監控暫時只支援收集 rancher 自定義叢集的 ETCD 監控資料。對於 rke 匯入叢集或者其他匯入型別的叢集,因為架構的差異,暫時不能直接支援監控 ETCD 監控資料。

rancher 內建監控也是透過 prometheus-operator 部署,只需要自定義一些 serviceMonitor 配置即可實現其他型別叢集 ETCD 監控資料收集。

方案介紹

serviceMonitor 是透過對 service 獲取資料的一種方式。prometheus-operator 可以透過 serviceMonitor 自動識別帶有某些 label 的 service,並從這些 service 獲取資料。serviceMonitor 也是由 prometheus-operator 自動發現。

對應一些啟用 ssl 認證的服務,需要提供 ssl 證書給 prometheus 用以進行認證 。首先建立一個 secret 用來存放 ssl 證書,再把證書掛載到 prometheus 容器內。接下來建立 ServiceMonitor 物件,用於 Prometheus 新增監控項,再為 ServiceMonitor 物件關聯 metrics 資料介面對應的 Service 物件,確保透過 Service 物件可以正確獲取到 metrics 資料。

建立 Secrets 掛載證書

在 ETCD 節點中,透過以下命令去建立 ETCD 證書密文:

kubectl create secret generic etcd-certs -n cattle-prometheus \  --from-file=kube-ca.pem=< kube-ca 檔案路徑 > \  --from-file=kube-etcd-key.pem=< etcd key 檔案路徑 > \  --from-file=kube-etcd.pem=< etcd 證書檔案路徑 >
新增 Secrets 到 Prometheus 容器

依次進入 叢集|工具|監控 ,在監控配置頁面點選右下角的 顯示高階選項。新增 新增應答,新增以下應答:

prometheus.secrets[0]=etcd-certs# 如果有多個密文,則依次疊加prometheus.secrets[1]=xxxx
建立 etcd-server svc,把外部 etcd 服務引入 k8s 叢集訪問 system 專案|服務發現,統計 新增 DNS 記錄。選擇 外部 IP 地址,並在右側的 目標 IP 地址 填寫 etcd 節點 ip,名稱空間選擇 cattle-prometheus點選右側 顯示高階選項,型別選擇 headless service新增埠對映在底部 標籤與註釋 中新增,最後點選建立。
jobLabel=k8s-etcd-serverapp=k8s-etcd-server
建立 etcd ServiceMonitor 物件

儲存以下內容為:prometheus-serviceMonitorEtcd.yaml,然後執行 kubectl apply -f prometheus-serviceMonitorEtcd.yaml

apiVersion: monitoring.coreos.com/v1kind: ServiceMonitormetadata:  name: exporter-etcd-server-monitoring  namespace: cattle-prometheus  labels:    app: exporter-etcd-serverspec:  jobLabel: k8s-etcd-server # etcd-server svc 的標籤 jobLabel=xxx  endpoints:  - port: https-2379 # 此處的設定需要與 etcd-server svc 中埠對映的 name 對應    scheme: https    interval: 30s    tlsConfig: # 此處的證書路徑與密文掛載到 prometheus 容器中的路徑一致      caFile: /etc/prometheus/secrets/etcd-certs/kube-ca.pem      certFile: /etc/prometheus/secrets/etcd-certs/kube-etcd.pem      keyFile: /etc/prometheus/secrets/etcd-certs/kube-etcd-key.pem      insecureSkipVerify: true  namespaceSelector:    matchNames:    - cattle-prometheus # etcd-server svc 所在的名稱空間  selector:    matchLabels:      app: k8s-etcd-server # etcd-server svc 的標籤
驗證 prometheus 狀態點選 system 專案|應用商店 的訪問入口,進入 prometheus 管理介面點選 Status|Targets 和 Status|Service Discovery 檢視狀態驗證 Grafana 狀態與 prometheus 相同, 點選 system 專案|應用商店 的訪問入口,進入 Grafana 管理介面,點選左上角的 Home接著點選 ETCD。如果結果如下圖顯示,則說明資料可以正常顯示,配置成功。

6
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 什麼是微核心架構設計?