k8sのトラブルシュートなどでpodから疎通確認する方法についての簡単なメモです。
時々しか使わないので、時間が経つと100%忘れるのでここにメモを残しておきます。
nc コマンドの説明
NetcatはHobbit氏によって開発された、汎用TCP/UDP接続コマンドラインツールです。
ncコマンドはNetcatの略。非常に多機能なツールですが、今回は一部機能のみ使用します。
(外部接続の疎通確認の)コマンド実行の書式は下記です。
nc [-オプション] 接続先 ポート番号
疎通確認時によく使うオプションは下記です。
オプション | 覚え方 | 説明 |
---|---|---|
-z | zero I/Oの[z] | ゼロI/Oモード(ポートスキャン時) |
-v | verboseの[v] | (多弁:verbose)情報表示モード |
-w secs | waitの[w] | タイムアウトwait時間(秒数指定) |
podからncコマンドで疎通確認する方法
まず、疎通確認したい pod(接続元) へ入ります。
$ kubectl exec -it webapp-color -- sh
次に、疎通確認したい pod / service (接続先)へ nc コマンドを実行します。
疎通OKの場合
# nc -z -v -w 3 secure-service 80 secure-service (10.108.84.141:80) open
疎通NGの場合(※タイムアウト)
# nc -z -v -w 3 secure-service nc: secure-service (10.108.84.141:0): Operation timed out
上記は、CKA / CKAD のトラブルシュート試験でよく出題されて焦るやつなので覚えておくと吉。
参考URL
この記事を書くにあたり下記の情報を参考にさせていただきました。