AKS 클러스터의 Windows 노드에서 Windows 컨테이너 덤프 파일 캡처
AKS(Microsoft Azure Kubernetes Service) 클러스터에서 Windows 컨테이너가 실패하는 경우 Windows 컨테이너 덤프 파일을 검사하여 근본 원인을 조사해야 할 수 있습니다. 이 문서에서는 AKS 클러스터의 Windows 노드에서 Windows 컨테이너 덤프 파일을 캡처하는 단계를 제공합니다. 또한 추가 분석을 위해 덤프 파일을 로컬 컴퓨터에 다운로드하는 지침도 포함되어 있습니다.
필수 조건
AKS 클러스터. AKS 클러스터 가 없는 경우 Azure CLI 를 사용하거나 Azure Portal을 통해 클러스터를 만듭니다.
AKS Windows 이미지 버전 또는 이후 버전
20240316
으로 업그레이드된 노드 이미지 또는 이후에3/13/2024
만들어진 Windows 에이전트 풀입니다. 또는 WindowsCSEScriptsPackage 버전이 Windows 노드에 있을C:\AzureData\CustomDataSetupScript.log
수 있는 v0.0.39 이상인지 확인합니다.
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 컨테이너가 실패할 때까지 기다립니다. Pod를 호스팅하는 AKS Windows 노드를 학습하는 데 사용할 kubectl describe pod -n [POD-NAMESPACE] [POD-NAME]
수 있습니다.
3단계: Windows 노드에 연결
AKS 클러스터 노드에 대한 연결을 설정합니다. RDP(원격 데스크톱 프로토콜) 연결에서 SSH(Secure Shell) 키 또는 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(Secure Copy) 명령을 실행하여 컨테이너가 실패할 때 저장되는 덤프 파일(.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 피드백 커뮤니티에 제품 피드백을 제출할 수도 있습니다.