iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 24
0

自定義指標API允許請求任意指標, 目的是提供用戶和K8s組建一個可以依賴的穩定的API, 要實現指標API需要相應的後端監視系統, Prometheus 是第一個開發相應適配器的監控系統, K8s也由k8s-prometheus-adapter提供了適用Prometheus的Kubernetes Custom Metrics Adapter, 目前由github託管。

https://ithelp.ithome.com.tw/upload/images/20200927/20129656f9vmSHE9I9.png

Prometheus是一個開源的服務監控系統和時序資料庫, 它提供通用的資料模型和便捷的資料搜集、儲存、查詢接口;Prometheus 服務器會定期從監控目標或者服務發現自動配置的目標中拉取數據, 如果新的數據超過預設的Memory容量時, 數據會被儲存到持久化設備中。

https://ithelp.ithome.com.tw/upload/images/20200928/201296561OfR8GLobJ.png
每個被監控的組件都可以透過專用的exporter提供輸出數據的接口, 並等待Prometheus服務器定時來抓取數據。如果有設定警示規則, 則在Prometheus抓取資料後會依照警示規則進行檢查, 一旦滿足警示條件就會發送警示內容到Altermanager。被監控的目標有推送訊息的需求時可以部署Pushgateway來接收推送與暫存訊息。

Prometheus支援監控幾個k8s上的非核心指標數據, 項目如下:

  1. 監控代理程序: 例如 node_export, 收集主機指標數據,像是CPU, Memory, Disk等數據
  2. kubelet(cAdvisor): 收集容器指標數據, 例如: CPU利用率/限額, 文件讀寫限額, Memory利用率/限額...等
  3. API Server: 收集 API Server的性能指標數據, 例如: 控制工作隊列的效能, 請求速率與延遲時長...等
  4. etcd: 收集etcd儲存cluster的相關指標數據, 例如: 提交/應用/暫停/錯誤的提案次數, Disk寫入效能...等
  5. kube-state-metrics: 資源類型相關的計數器和元數據, 例如: 資源限額, 容器狀態, Pod標籤...等

https://ithelp.ithome.com.tw/upload/images/20200927/20129656u6vjshbsnQ.png

Prometheus 可以直接把k8s API Server作為服務發現系統使用進而動態發現和監控cluster中所有可被監控的對象, 但是Pod需要添加幾個註解才能被Prometheus自動發現和抓取內建指標數據。
Pod須添加的註解:

  1. prometheus.io/scrape: boolean, 用來標示是否需要被採集指標數據
  2. prometheus.io/path: 抓取指標數據時所使用的url路徑, 通常會設定為/metrics
  3. prometheus.io/port: 抓取指標數據時使用的套接字端口, 例如: 8080

今日小結

Prometheus 今天先理解概念和運作方式, google了幾個實作的部分都是和HELM一起搭配的, 所以預計等到Helm讀完再一併安裝起來玩看看。


上一篇
day 23 資源指標 metrics-server
下一篇
day 25 HPA
系列文
K8S - 30天從擦槍到提槍上陣學習筆記。30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言