AKS 클러스터의 Windows 노드에서 Windows 컨테이너 덤프 파일 캡처
AKS(Microsoft Azure Kubernetes Service) 클러스터에서 Windows 컨테이너가 실패하는 경우 Windows 컨테이너 덤프 파일을 검사하여 근본 원인을 조사해야 할 수 있습니다. 이 문서에서는 AKS 클러스터의 Windows 노드에서 Windows 컨테이너 덤프 파일을 캡처하는 단계를 제공합니다. 또한 추가 분석을 위해 덤프 파일을 로컬 컴퓨터에 다운로드하는 지침도 포함되어 있습니다.
필수 구성 요소
AKS 클러스터. AKS 클러스터가 없는 경우 Azure CLI를 사용하거나 Azure Portal 통해 클러스터를 만듭니다.
이후에
3/13/2024
만든 Windows 에이전트 풀 또는 AKS Windows 이미지 버전 또는 이후 버전20240316
으로 업그레이드된 노드 이미지. 또는 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 컨테이너가 실패할 때까지 기다립니다. 를 사용하여 kubectl describe pod -n [POD-NAMESPACE] [POD-NAME]
Pod를 호스팅하는 AKS Windows 노드를 알아볼 수 있습니다.
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 .
Windows 노드에 연결한 C:\k\containerdumps
후 폴더를 나열하여 덤프 파일의 전체 경로를 찾을 수 있습니다.
도움을 요청하십시오.
질문이 있거나 도움이 필요한 경우 지원 요청을 생성하거나Azure 커뮤니티 지원에 문의하세요. Azure 피드백 커뮤니티에 제품 피드백을 제출할 수도 있습니다.