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 使用率が分かるだけでもありがたい。