Udostępnij za pośrednictwem


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 wersji 20240316 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ę w C:\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.