從 AKS 叢集中的 Windows 節點擷取 Windows 容器傾印檔案
如果 Microsoft Azure Kubernetes Service (AKS) 叢集上的 Windows 容器失敗,您可能必須檢查 Windows 容器傾印檔案,以調查根本原因。 本文提供從 AKS 叢集中的 Windows 節點擷取 Windows 容器傾印檔案的步驟。 它也包含將傾印檔案下載到本機計算機以供進一步分析的指示。
必要條件
AKS 叢集。 如果您沒有 AKS 叢集,請使用 Azure CLI 或透過 Azure 入口網站 建立一個叢集。
在 升級至 AKS Windows 映射版本或更新版本
20240316
的節點映射之後3/13/2024
建立的 Windows 代理程式集區。 或者,確認 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 叢集節點的連線。 您可以使用安全殼層 (SSH) 金鑰或遠端桌面通訊協定中的 Windows 系統管理員密碼, (RDP) 連線進行驗證。 這兩種方法都需要您建立中繼連線。 這是因為您目前無法直接連線到 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 意應見反社群。