AKS クラスター内の Windows ノードから Windows コンテナー ダンプ ファイルをキャプチャする
Microsoft Azure Kubernetes Service (AKS) クラスターで Windows コンテナーが失敗した場合は、Windows コンテナー ダンプ ファイルを調べて根本原因を調査する必要があります。 この記事では、AKS クラスター内の Windows ノードから Windows コンテナー ダンプ ファイルをキャプチャする手順について説明します。 さらに詳しく分析するために、ダンプ ファイルをローカル コンピューターにダウンロードする手順も含まれています。
前提条件
AKS クラスター。 AKS クラスターがない場合は、 Azure CLI を使用して作成するか Azure portal を します。
3/13/2024
後に作成された Windows エージェント プール、または AKS Windows イメージ バージョン20240316
以降のバージョンにアップグレードされたノード イメージ。 または、WindowsCSEScriptsPackage のバージョンが v0.0.39 以降であるかどうかを確認します。これは Windows ノード上のC:\AzureData\CustomDataSetupScript.log
に配置できます。
手順 1: 注釈メタデータをデプロイに追加する
コンテナーにホスト フォルダーをマウントし、注釈メタデータを追加して、Windows コンテナーが指定されたフォルダーにダンプ ファイルを格納するように要求します。
metadata:
...
annotations:
"io.microsoft.container.processdumplocation": "C:\\CrashDumps\\{container_id}"
"io.microsoft.wcow.processdumptype": "mini"
"io.microsoft.wcow.processdumpcount": "10"
spec:
...
containers:
- name: containername
image: ...
...
volumeMounts:
- mountPath: C:\CrashDumps
name: local-dumps
volumes:
- name: local-dumps
hostPath:
path: C:\k\containerdumps
type: DirectoryOrCreate
手順 2: 問題を再現する
デプロイを再デプロイし、Windows コンテナーが失敗するまで待ちます。 kubectl describe pod -n [POD-NAMESPACE] [POD-NAME]
を使用して、ポッドをホストしている AKS Windows ノードを確認できます。
手順 3: Windows ノードに接続する
AKS クラスター ノードへの接続を確立します。 リモート デスクトップ プロトコル (RDP) 接続で Secure Shell (SSH) キーまたは Windows 管理者パスワードを使用して認証します。 どちらの方法でも、中間接続を作成する必要があります。 これは、現在 AKS Windows ノードに直接接続できないためです。 SSH または RDP を使用してノードに接続する場合でも、AKS ノードのユーザー名を指定する必要があります。 既定では、このユーザー名は azureuser
。
SSH キーがある場合は、 Windows ノードへの SSH 接続を作成します。 SSH キーは AKS ノードに保持されません。 SSH キーは、次のいずれかの操作中にクラスターに最初にインストールされたものに戻ります。
- Restart
- バージョンのアップグレード
- ノード イメージのアップグレード
手順 4: ダンプ ファイルをローカルに転送する
コンテナーが失敗したら、ヘルパー ポッドを特定して、ダンプ ファイルをローカルにコピーできるようにします。 2 つ目のコンソールを開き、次のように kubectl get pods
コマンドを実行してポッドの一覧を取得します。
kubectl get pods
NAME READY STATUS RESTARTS AGE
azure-vote-back-6c4dd64bdf-m4nk7 1/1 Running 2 3d21h
azure-vote-front-85b4df594d-jhpzw 1/1 Running 2 3d21h
node-debugger-aks-nodepool1-38878740-vmss000000-6ztp6 1/1 Running 0 3m58s
ヘルパー ポッドには、3 番目の行に示すように、 node-debugger-aks
のプレフィックスがあります。 ポッド名を置き換え、次の Secure Copy (scp) コマンドを実行して、コンテナーが失敗したときに保存されるダンプ ファイル (.dmp) を取得します。
scp -o 'ProxyCommand ssh -p 2022 -W %h:%p azureuser@127.0.0.1' azureuser@10.240.0.97:/C:/k/containerdumps/{container_id}/{application}.dmp .
C:\k\containerdumps
フォルダーを一覧表示して、Windows ノードへの接続後にダンプ ファイルの完全なパスを見つけることができます。
お問い合わせはこちらから
質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。