kubernetesでGrafanaの表示が正しくない問題を直す
はじめに
お家 Kubernetes を構築後、どれだけメモリや cpu が使われているのか気になりPrometheus
+ Grafana
な環境を Helm を使って導入しました
https://github.com/prometheus-community/helm-charts
こちらの導入方法は多くの素晴らしい記事が存在するため割愛しますが、利用しているとkubectl top
のメモリ使用率と
Grafana
で可視化した際のメモリ使用率が異なっていることに気づきました。具体的には下の画像の通りです
大体 2 倍程度大きく表示されています。
解決策
忙しい方のために今回の解決策だけ示すと
- 名前空間
kube-system
内に、*-kube-prometheus-stack-kubelet
または*-prometheus-operator-kubelet
というService
が複数あるか調べる
- 複数ある場合不要な方を消す。私の場合、
kube-prometheus-stack
を導入していたのでmonitoring-kube-prometheus-kubelet
を削除する
- 5 分ほど待つと
Grafana
に正しい値が記録され始めます
原因
基本的にすべて下の Issue に書いてありました
https://github.com/prometheus-community/helm-charts/issues/192
過去にprometheus-operator
を導入していた場合、Helm がkube-system
のサービスを削除しなかったために複数の値(今回は 2 つ)が記録され、
実際より多い値が Grafana で表示されていたようです。
実際に Grafana でクエリを発行して表のService
を確認すると、写真が小さく見にくいですが 2 つのサービスから値が記録されていたことがわかります。
つまるところ、「過去のゴミが削除されずに悪さをしていた」というおちでした。
後書き
いくらHelm
が自動でいろいろインストールからアンインストールまで面倒を見てくれる便利なツールだといっても、
何がインストールされるか、あるいはしっかりアンインストールされたかの確認が重要だということを学べました。
なかなかピンポイントな記事ですが、ここまでお読みいただきありがとうございました