Przechwytywanie pliku zrzutu kontenera systemu Windows z węzła systemu Windows w klastrze usługi AKS
Jeśli kontener systemu Windows zakończy się niepowodzeniem w klastrze usługi Microsoft Azure Kubernetes Service (AKS), może być konieczne zbadanie pliku zrzutu kontenera systemu Windows w celu zbadania głównej przyczyny. Ten artykuł zawiera kroki przechwytywania pliku zrzutu kontenera systemu Windows z węzła systemu Windows w klastrze usługi AKS. Zawiera również instrukcje pobierania pliku zrzutu na komputer lokalny w celu dalszej analizy.
Wymagania wstępne
Klaster usługi AKS. Jeśli nie masz klastra usługi AKS, utwórz go przy użyciu interfejsu wiersza polecenia platformy Azure lub za pośrednictwem witryny Azure Portal.
Pule agentów systemu Windows utworzone po
3/13/2024
lub obraz węzła uaktualniony do wersji20240316
obrazu systemu Windows usługi AKS lub nowszej wersji. Alternatywnie sprawdź, czy wersja windowsCSEScriptsPackage jest w wersji 0.0.39 lub nowszej, która może znajdować się wC:\AzureData\CustomDataSetupScript.log
węzłach systemu Windows.
Krok 1. Dodawanie metadanych adnotacji do wdrożenia
Zainstaluj folder hosta w kontenerze i dodaj metadane adnotacji, aby zażądać, aby kontener systemu Windows przechowywał plik zrzutu w wyznaczonym folderze:
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
Krok 2. Odtworzenie problemu
Ponownie wdróż wdrożenie i poczekaj na niepowodzenie kontenera systemu Windows. Możesz użyć kubectl describe pod -n [POD-NAMESPACE] [POD-NAME]
polecenia , aby dowiedzieć się, który węzeł usługi AKS systemu Windows hostuje zasobnik.
Krok 3. Nawiązywanie połączenia z węzłem systemu Windows
Ustanów połączenie z węzłem klastra usługi AKS. Uwierzytelniasz się przy użyciu klucza protokołu Secure Shell (SSH) lub hasła administratora systemu Windows w połączeniu protokołu RDP (Remote Desktop Protocol). Obie metody wymagają utworzenia połączenia pośredniego. Dzieje się tak, ponieważ obecnie nie można nawiązać połączenia bezpośrednio z węzłem systemu Windows usługi AKS. Niezależnie od tego, czy łączysz się z węzłem za pośrednictwem protokołu SSH, czy RDP, musisz określić nazwę użytkownika dla węzłów usługi AKS. Domyślnie ta nazwa użytkownika to azureuser
.
Jeśli masz klucz SSH, utwórz połączenie SSH z węzłem systemu Windows. Klucz SSH nie jest utrwalany w węzłach usługi AKS. Klucz SSH powraca do tego, co zostało początkowo zainstalowane w klastrze podczas dowolnej z następujących akcji:
- Uruchom ponownie
- Uaktualnianie wersji
- Uaktualnienie obrazu systemu węzła
Krok 4. Lokalne przenoszenie pliku zrzutu
Po awarii kontenera zidentyfikuj zasobnik pomocnika, aby można było skopiować plik zrzutu lokalnie. Otwórz drugą konsolę, a następnie pobierz listę zasobników, uruchamiając kubectl get pods
polecenie w następujący sposób:
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
Zasobnik pomocnika ma prefiks node-debugger-aks
, jak pokazano w trzecim wierszu. Zastąp nazwę zasobnika, a następnie uruchom następujące polecenia secure copy (scp), aby pobrać pliki zrzutu (.dmp), które są zapisywane po awarii kontenera:
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 .
Możesz wyświetlić listę C:\k\containerdumps
folderów, aby znaleźć pełną ścieżkę plików zrzutu po nawiązaniu połączenia z węzłem systemu Windows.
Skontaktuj się z nami, aby uzyskać pomoc
Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii na temat platformy Azure.