從 AKS 叢集中的 Windows 節點擷取 Windows 容器傾印檔案
如果Microsoft Azure Kubernetes Service (AKS) 叢集上的 Windows 容器失敗,您可能必須檢查 Windows 容器傾印檔案,以調查根本原因。 本文提供從 AKS 叢集中 Windows 節點擷取 Windows 容器傾印檔案的步驟。 它也包含將傾印檔案下載到本機計算機的指示,以進一步分析。
必要條件
AKS 叢集。 如果您沒有 AKS 叢集,請使用 Azure CLI 或透過 Azure 入口網站 建立一個叢集。
在 之後
3/13/2024
建立的 Windows 代理程式集區,或升級至 AKS Windows 映射版本20240316
或更新版本的節點映像。 或者,確認 WindowsCSEScriptsPackage 版本為 v0.0.39 或更新版本,其可位於C:\AzureData\CustomDataSetupScript.log
Windows 節點上。
步驟 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]
來了解裝載 Pod 的 AKS Windows 節點。
步驟 3:連線到 Windows 節點
建立與 AKS 叢集節點的連線。 您可以使用遠端桌面通訊協定 (RDP) 連線中的安全殼層 (SSH) 金鑰或 Windows 系統管理員密碼進行驗證。 這兩種方法都需要您建立中繼連線。 這是因為您目前無法直接連線到 AKS Windows 節點。 無論您是透過 SSH 或 RDP 連線到節點,都必須指定 AKS 節點的使用者名稱。 根據預設,此使用者名稱稱為 azureuser
。
如果您有 SSH 金鑰, 請建立 Windows 節點的 SSH 連線。 SSH 金鑰不會儲存在您的 AKS 節點上。 SSH 金鑰會還原為叢集上最初在下列任何動作期間所安裝的內容:
- 重新啟動
- 版本升級
- 節點映像升級
步驟 4:在本機傳輸傾印檔案
容器失敗之後,請識別協助程式Pod,讓您可以在本機複製傾印檔案。 開啟第二個主控台,然後執行 kubectl get pods
命令以取得 Pod 清單,如下所示:
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
協助程式 Pod 的前置詞 node-debugger-aks
為 ,如第三個數據列所示。 取代 Pod 名稱,然後執行下列安全複製 (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 community 支援。 您也可以向 Azure 意見反應社群提交產品意見反應。