Kubernetes の Node・Pod ごとの CPU・RAM 使用率を確認する kubectl top コマンド
Kubernetes クラスタの Worker Node や Pod ごとに、CPU 使用率や RAM 使用率を見たかった。Datadog のような監視サービスのエージェントを入れたりだとか、Prometheus なんかをインストールすると確認できたのだが、もっと簡単にコマンドラインで確認する方法があった。それが、kubectl top
コマンドである。
Prometheus で当該メトリクスが見えているような環境なら、多分このコマンドが使えると思う。どうやら「Metrics Server」がインストールされていないといけないとかなんとか前提条件があるっぽいんだけど、何もしてなくてもこうなってたから分からない。w
$ kubectl top node
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
worker-node-1 767m 38% 10802Mi 73%
worker-node-2 608m 30% 9517Mi 65%
$ kubectl top pod --all-namespaces
NAMESPACE NAME CPU(cores) MEMORY(bytes)
default my-default-pod-4qmmp 45m 270Mi
default my-default-pod-57a88 76m 263Mi
myapp my-app-1 240m 1404Mi
myapp my-app-2 215m 1359Mi
出力イメージ。とりあえず Node の CPU・RAM 使用率が分かるだけでもありがたい。