次の方法で共有


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

ヘルパー ポッドのプレフィックス node-debugger-aksは、3 行目に示すように です。 ポッド名を置き換え、次の 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 .

Windows ノードへの接続後 C:\k\containerdumps にダンプ ファイルの完全なパスを検索するフォルダーを一覧表示できます。

お問い合わせはこちらから

質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。