Dockerman Docs
Kubernetes

デバッグアシスタント

ターゲット Pod の隣に一時的なデバッグ Pod を起動し、ネットワーク、DNS、ファイルシステムの問題を診断。

v4.8.0 で追加されました。デバッグアシスタントを使用して、ターゲットPodの隣に一時的なデバッグPodを起動し、デバッグツールがプリインストールされたシェルを開きます。

デバッグアシスタントを使用する場合

  • ターゲットイメージがdistrolessやscratchなどのミニマルイメージで、シェルがない場合。
  • tcpdumpdigcurlncなどのツールがターゲットイメージに含まれていない場合。
  • マウントされたボリュームやPodのネットワーク名前空間を、Pod自体に触れることなく調査する必要がある場合。
  • CrashLoopBackOffをデバッグしていて、Podがkubectl execで十分な時間稼働しない場合。

デバッグPodを起動する

ターゲットPodを選択する

PodsまたはWorkloadsから、調査したいPodでデバッグを選択します。

共有オプションを設定する

プロセス名前空間、ネットワーク名前空間、マウントされたボリュームを共有するかどうかを選択します。

デバッグPodのReady状態を待つ

DockermanはPodを作成し、ターミナルを開く前にReady状態になるのを待ちます。

埋め込みターミナルで操作する

デバッグPodはDockermanのターミナルタブで開きます。

デバッグプリセット

Dockermanには、一般的なランタイム向けにデバッグポートとプロトコルを事前設定する3つの組み込みプリセットが用意されています:

プリセットポートプロトコル
Node.js9229Inspector
Go (Delve)2345DAP
Python (debugpy)5678DAP

デバッグPod起動時にプリセットを選択すると、手動のポート設定をスキップできます。

デバッグPodの中身

ツール用途
bash, shシェル
ps, top, htopプロセス調査
netstat, ss接続状態
tcpdumpパケットキャプチャ
curl, wgetHTTPプロービング
dig, nslookupDNS解決
nc生のTCPおよびUDPチェック
vim, lessファイル調査
straceカーネルが許可する場合のシステムコールトレース

一般的なデバッグワークフロー

クリーンアップ

デバッグPodは一時的なものです。ターミナルタブを閉じるか、シェルを終了すると、Dockermanが自動的にクリーンアップします。