AKS デスクトップには、Inspektor Gadget を利用した、Insights と呼ばれる統合されたトラブルシューティング スイートが含まれています。これは、オープンソースの eBPF (Extended Berkeley Packet Filter) ベースのデバッグ ツールです。 コードを変更したり再起動したりすることなく、ポッド間のネットワーク トラフィックを理解したり、DNS エラーをトレースしたり、実行中のプロセスを調べて、予期しないアクティビティやリソースが多いアクティビティをすべて、数回クリックするだけで直感的な UI で見つけることができます。
この記事では、Insights を有効にし、それを使用して AKS クラスター内の一般的なアプリケーションの問題を診断する手順について説明します。
Important
AKS のプレビュー機能は、セルフサービスのオプトイン単位で利用できます。 プレビューは、"現状有姿のまま" および "利用可能な限度" で提供され、サービス レベル アグリーメントおよび限定保証から除外されるものとします。 AKS プレビューは、ベストエフォート ベースでカスタマー サポートによって部分的にカバーされます。 そのため、これらの機能は運用環境での使用を目的としていません。 詳細については、次のサポート記事を参照してください。
前提条件
- AKS デスクトップ がインストールされ、AKS クラスターにサインインしました。 AKS デスクトップ用の AKS クラスターの設定または AKS デスクトップを使用した AKS 自動によるアプリケーションのデプロイに関する説明を参照してください。
-
クラスター管理者、またはターゲット AKS クラスターに対する同等の役割ベースのアクセス制御 (RBAC) 権限。 Inspektor ガジェットをインストールするには、
ClusterRole、ClusterRoleBinding、および特権DaemonSetを作成する必要があります。 - クラスター ノードは、カーネル バージョン 5.4 ≥Linux を実行する必要があります。 Windows ノード プールはサポートされていません。
- クラスターでポッド のセキュリティが制限された Azure Policy または OPA Gatekeeper を使用している場合は、特権ポッドを許可するために
gadget名前空間の除外を追加します。 - ターゲット クラスターは AKS Standard クラスターである必要があります。
AKS デスクトップで Insights を有効にする
AKS Desktop アプリケーションを起動し、サインインして AKS クラスターに接続していることを確認します。
左側のナビゲーションで、[ 設定] を選択します。
[設定] メニューの [ プラグイン] を選択します。
一覧で Insights プラグインを見つけて、[ 有効にする ] トグルを選択します。
プロジェクトのインサイトにアクセス
左側のナビゲーションで、Insights を使用する プロジェクト を選択します。 [ 分析情報 ] タブがプロジェクト ビューに表示されます。
クラスターへの Inspektor ガジェットのデプロイ
[Insights] タブで、まだインストールされていない場合は、 クラスターに Inspektor Gadget をデプロイするように求められます。
- [ Inspektor ガジェットの展開] を選択します。 AKS デスクトップは、クラスター上の
gadget名前空間に Inspektor Gadget DaemonSet をデプロイします。 - デプロイが完了するまで待ちます。 状態インジケーターは、Inspektor ガジェットの準備ができたときに確認します。
Insights データを表示する
Inspektor Gadget がデプロイされると、[Insights] タブにクラスターからのライブ可観測データが表示されます。 機能の完全なセットについては 、Insights でできること をご覧ください。
Insights でできること
プロセスを使用したパフォーマンスのトラブルシューティング
[プロセス] ビューには、クラスターのポッド全体で実行中のすべてのプロセスが、CPU、メモリ、ディスク I/O の使用状況と共にリアルタイムで表示されます。 これは次の目的で使用されます。
- 過剰な CPU またはメモリを消費しているポッドを特定します。
- 異常なブロック I/O アクティビティ (たとえば、誤って構成されたアプリ、暴走ログ ライター、ストレージのボトルネックを示す可能性がある、ディスクの読み取りまたは書き込みが異常に高い) を特定します。
- コンテナーで実行すべきではない予期しないプロセスを検出します。
トレース伝送制御プロトコル (TCP) を使用したネットワーク可視性
トレース TCP は、プロキシまたはサイドカーを使用せずに、eBPF を使用してカーネル レベルでライブ TCP 接続イベントをキャプチャします。 これは次の目的で使用されます。
- 送信接続を開いているポッドと宛先 IP とポートを確認します。
- 構成ミスまたはセキュリティの問題を示す可能性がある、予期しない接続または未承認の接続を検出します。
- ネットワークの異常を特定のポッドまたはワークロードと関連付けます。
Note
完了したらトレースを停止する必要があります。トレースの右上にある赤い停止ボタンを選択します。
DNS トレースを使用して DNS の問題を解決する
トレース DNS は、クラスター内のポッドによって行われたすべての DNS クエリと応答をキャプチャします。 これは次の目的で使用されます。
- ポッド間接続エラーの一般的な原因である、解決に失敗している DNS クエリを特定します。
- DNS 待機時間を測定して、CoreDNS (クラスター内 DNS サーバー) とアップストリーム DNS リゾルバーのどちらが遅いかを判断します。
- CoreDNS の正常性と、外部 DNS 解決が正しく動作しているかどうかを確認します。
Note
完了したらトレースを停止する必要があります。トレースの右上にある赤い停止ボタンを選択します。
Inspektor ガジェットのアンインストール
gadget名前空間を削除して、クラスターから Inspektor Gadget を削除します。 これにより、すべての Insights データと機能が削除されるため、これは、Insights の機能が不要になった場合にのみ行います。
kubectl delete ns gadget
警告
このコマンドは、Inspektor Gadget によって作成されたリソースだけでなく、 gadget 名前空間内のすべてのリソースを削除します。
Insights に関する問題のトラブルシューティング
次の表は、Insights を使用するときに発生する可能性がある一般的な問題とその解決策の概要を示しています。
| Issue | Resolution |
|---|---|
| [分析情報] タブが表示されない | Insights プラグインが有効になっていることを確認します。 [設定]>[Plugins] に移動し、[Insights] をオンに切り替えます。 |
| Inspektor ガジェットの展開が失敗する | クラスターに DaemonSets と ClusterRoles を作成するための十分な RBAC アクセス許可があることを確認します。 |
| デプロイ後にデータが表示されない | クラスター ノードがサポートされている Linux カーネル (≥ 5.4) を実行していることを確認します。 Inspektor ガジェット ポッドのログでエラーを確認します。 |