iT邦幫忙

2026 iThome 鐵人賽

DAY 24
0

要裝的東西叫 kube-prometheus-stack,用 kubectl 一個一個 apply 會有幾十個檔案,所以要先認識 Helm

Helm 是 K8s 的套件管理工具,概念上類似 apt 或 scoop。它把一組 YAML 打包成一個 chart,裡面會變動的部分抽出來變成參數,安裝的時候用參數去填。這樣一行指令就能裝好一整套東西

先裝 Helm

scoop install helm
helm version

https://ithelp.ithome.com.tw/upload/images/20261008/20176154FvG41asQAt.png

裝完記得開一個新的 PowerShell 視窗

然後裝監控

helm upgrade --install monitoring oci://ghcr.io/prometheus-community/charts/kube-prometheus-stack --namespace monitoring --create-namespace --set alertmanager.enabled=false

https://ithelp.ithome.com.tw/upload/images/20261008/201761545lAvNJ7y95.png

  • upgrade --install 的意思是沒裝過就裝、裝過就更新,這樣同一行指令可以重複跑不用先判斷狀態
  • monitoring 是我給這次安裝取的名字,Helm 用它來追蹤這包東西
  • oci 開頭那串是 chart 的位置
  • create-namespace 是順便把 namespace 建出來
  • set 是關掉 Alertmanager,不做告警路由,關掉可以少跑幾個 Pod

裝好之後看看多了什麼

kubectl get pods -n monitoring

https://ithelp.ithome.com.tw/upload/images/20261008/20176154mN5YfVsh4x.png

每個角色都不一樣

  • Grafana 是畫圖的,它自己不存資料,是去跟 Prometheus 要資料然後畫成圖表
  • prometheus-operator 是管理者,它讓你可以用 K8s 的方式去設定 Prometheus,而不用手改設定檔
  • kube-state-metrics 把 K8s 物件的狀態變成指標。Pod 現在是什麼 phase、Deployment 要幾份現在有幾份、Container 重啟過幾次,這些都是它產生的。前面用 kubectl get 看到的東西,它把它們變成數字讓 Prometheus 抓
  • node-exporter 抓機器層級的資料,CPU、記憶體、磁碟、網路。它是 DaemonSet,每台 Node 上都會有一個
  • Prometheus 是核心,它負責定期去各個地方抓指標、存下來,並且提供查詢。它的資料是時間序列,也就是同一個數字在不同時間點的紀錄

指標名稱的前綴會反映它從哪裡來。kube_ 開頭的來自 kube-state-metrics,node_ 開頭的來自 node-exporter,container_ 開頭的則是每台 Node 上的 cAdvisor 提供的

kubectl get pods -n monitoring -w
kubectl get services -n monitoring

https://ithelp.ithome.com.tw/upload/images/20261008/20176154wCHNeIUFY6.png

看一下它多裝了什麼型別的資源

kubectl get crd

https://ithelp.ithome.com.tw/upload/images/20261008/20176154FRAHmVI7R7.png

CRD 是自訂資源,意思是這包東西幫 K8s 增加了它原本不認識的物件種類,例如 ServiceMonitor 跟 PrometheusRule

明天見 :D


上一篇
Day 23 排障回顧
系列文
讓Claude Code當我的 K8s 助教:部署、故障排查與入門可觀測性 共 24 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言