Service Mesh(ASM)を使用すると、ASM インスタンスにデプロイされたワークロードに対してパケット検査タスクを開始し、一定期間内のポッド内の TCP パケットに関する情報を取得し、Kubernetes クラスタ内のノードのホストに TCP パケットをダンプしてダウンロードおよび表示することができます。このトピックでは、パケット検査タスクを使用して ASM インスタンスのトラフィックを診断する方法について説明します。
背景情報
ASM によって管理されるアプリケーションの多様性により、一部のトラフィックが期待どおりにならない場合があります。たとえば、リクエストヘッダーが大きすぎる、リクエストが標準の HTTP プロトコルに準拠していないなどです。パケット検査タスクを使用すると、ワークロードのトラフィック情報を迅速にキャプチャして、複雑なトラフィックの問題を診断できます。
前提条件
Enterprise Edition または Ultimate Edition の ASM インスタンスが作成されており、インスタンスのバージョンが 1.21.6.72 以降であること。詳細については、ASM インスタンスの作成またはASM インスタンスの更新をご参照ください。
Container Service for Kubernetes(ACK)クラスタが ASM インスタンスに追加されていること。詳細については、ASM インスタンスへのクラスタの追加をご参照ください。
手順
ASM コンソール にログインします。左側のナビゲーションペインで、 を選択します。
[メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションペインで、 を選択します。
[メッシュ診断] ページで、[サービスパケット検査] をクリックします。
[サービスパケット検査] タブで、[タスクの作成] をクリックします。表示されるダイアログボックスで、[kubernetes クラスタ]、[名前空間]、[ポッド名]、[期間]、[tcpdump パラメータ]、[ファイル名を保存] を設定します。 tcpdump パラメータの使用方法の詳細については、tcpdump をご参照ください。[OK] をクリックします。
[サービスパケット検査] タブで、作成されたタスクの [ステータス] 列が [完了] に変わるまで待ちます。
作成されたタスクの [ファイルのホスト] 列と [ファイル保存パス] 列の値に基づいて、対応する Kubernetes クラスタのホストを見つけ、指定されたパスにある pcap ファイルをダウンロードします。ファイルのダウンロード方法の詳細については、Workbench を使用してインスタンスにファイルをアップロードおよびインスタンスからファイルをダウンロードするをご参照ください。
関連操作
パケット検査タスクの削除
ASM コンソール にログインします。左側のナビゲーションペインで、 を選択します。
[メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションペインで、 を選択します。
[メッシュ診断] ページで、[サービスパケット検査] タブをクリックします。
[サービスパケット検査] タブで、削除するタスクを見つけ、[アクション] 列の [削除] をクリックします。表示されるメッセージで、[OK] をクリックします。
一般的な tcpdump パラメータ
パケット検査を使用する前に、検査するトラフィックのプロパティに基づいて tcpdump パラメータを設定できます。
クライアントポッドのサイドカープロキシとアプリケーション間のトラフィックを検査するには、次のパラメータを使用できます。
# 172.16.xx.xx を宛先サービスの IP アドレスに置き換えます。 -i lo dst port 15001 or src host 172.16.xx.xxクライアントポッドのサイドカープロキシと宛先サービス間のトラフィックを検査するには、次のパラメータを使用できます。
# 192.168.xx.xx を宛先サービスを実行するポッドの IP アドレスに置き換えます。 -i any host 192.168.xx.xxサーバーポッドのサイドカープロキシとアプリケーション間のトラフィックを検査するには、次のパラメータを使用できます。
-i lo host 127.0.0.6サーバーポッドのサイドカープロキシとクライアントポッド間のトラフィックを検査するには、次のパラメータを使用できます。
# 192.168.xx.xx をクライアントポッドの IP アドレスに置き換えます。 -i any host 192.168.xx.xx