k8s のpod からネットワーク速度を覗く

k8s 上のpod でファイルを転送する場合にネットワークが詰まっているかどうか、プロセスがゾンビ化していないかを確認したかったので、やり方を調査したのでメモ。

どう解決したか

シンプルに netstat を使うことで確認できた。 久しぶりに netstat を使ったので存在を忘れていた。

コンテナのイメージサイズを減らすため、必要だったコマンドを実行するためのpackage が含まれていなかったため、pod に入ってからインストールする。

# pod にログイン
$ kubectl exec -it pod-id -n namespace -c main /bin/bash

# netstat とps コマンドを実行するために必要なpackage をinstall
$ apt-get update && apt-get install -y procps net-tools

procpsps を実行するために必要で、pid を調べるためにinstall した。 netstat でプロセス毎の状態を見るには以下のコマンドを使用した。

$ netstat -alp

上記のコマンドを実行すると ESTABLISHED という State が確認でき、接続中であることがわかる。 また、 Recv-Q , Send-Q でパケットの送受信も確認できた。

watch コマンドを組み合わせて、 watch netstat -alp とすることで、パケットの変動とかも確認することができる。

以上