次の方法で共有


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 フィードバック コミュニティに製品フィードバックを送信することもできます。