Erfassen einer Windows-Containerabbilddatei von einem Windows-Knoten in einem AKS-Cluster
Wenn ein Windows-Container in einem AKS-Cluster (Microsoft Azure Kubernetes Service) fehlschlägt, müssen Sie möglicherweise die Windows-Containerabbilddatei untersuchen, um die Grundursache zu untersuchen. Dieser Artikel enthält Schritte zum Erfassen einer Windows-Containerabbilddatei von einem Windows-Knoten in einem AKS-Cluster. Es enthält auch Anweisungen zum Herunterladen der Speicherabbilddatei auf Ihren lokalen Computer zur weiteren Analyse.
Voraussetzungen
Ein AKS-Cluster. Wenn Sie nicht über einen AKS-Cluster verfügen, erstellen Sie einen Cluster mithilfe der Azure CLI oder über den Azure-Portal.
Windows-Agent-Pools, die nach
3/13/2024
oder einem Knotenimage erstellt werden, das auf eine AKS-Windows-Imageversion20240316
oder eine höhere Version aktualisiert wurde. Alternativ können Sie überprüfen, ob die WindowsCSEScriptsPackage-Version v0.0.39 oder höher ist, die sich inC:\AzureData\CustomDataSetupScript.log
auf den Windows-Knoten befinden kann.
Schritt 1: Hinzufügen von Anmerkungsmetadaten zu Ihrer Bereitstellung
Binden Sie einen Hostordner in den Container ein, und fügen Sie die Anmerkungsmetadaten hinzu, um anzufordern, dass der Windows-Container die Speicherabbilddatei in einem bestimmten Ordner speichert:
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
Schritt 2: Reproduzieren des Problems
Stellen Sie Ihre Bereitstellung erneut bereit, und warten Sie, bis der Windows-Container fehlschlägt. Sie können verwenden kubectl describe pod -n [POD-NAMESPACE] [POD-NAME]
, um zu erfahren, auf welchem AKS-Windows-Knoten der Pod gehostet wird.
Schritt 3: Herstellen einer Verbindung mit dem Windows-Knoten
Stellen Sie eine Verbindung mit dem AKS-Clusterknoten her. Sie authentifizieren sich entweder mithilfe eines SSH-Schlüssels (Secure Shell) oder des Windows-Administratorkennworts in einer RDP-Verbindung (Remotedesktopprotokoll). Für beide Methoden müssen Sie eine Zwischenverbindung erstellen. Dies liegt daran, dass Sie derzeit keine direkte Verbindung mit dem AKS-Windows-Knoten herstellen können. Unabhängig davon, ob Sie über SSH oder RDP eine Verbindung mit einem Knoten herstellen, müssen Sie den Benutzernamen für die AKS-Knoten angeben. Standardmäßig lautet azureuser
dieser Benutzername .
Wenn Sie über einen SSH-Schlüssel verfügen, erstellen Sie eine SSH-Verbindung mit dem Windows-Knoten. Der SSH-Schlüssel bleibt auf Ihren AKS-Knoten nicht erhalten. Der SSH-Schlüssel wird während einer der folgenden Aktionen auf das zurückgesetzt, was ursprünglich im Cluster installiert wurde:
- Neustart
- Versionsupgrade
- Upgrade des Knotenimages
Schritt 4: Lokales Übertragen der Sicherungsdatei
Nachdem der Container fehlschlägt, identifizieren Sie den Hilfspod, damit Sie die Speicherabbilddatei lokal kopieren können. Öffnen Sie eine zweite Konsole, und rufen Sie dann eine Liste der Pods ab, indem Sie den kubectl get pods
Befehl wie folgt ausführen:
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
Der Hilfspod hat das Präfix , node-debugger-aks
wie in der dritten Zeile gezeigt. Ersetzen Sie den Podnamen, und führen Sie dann die folgenden scp-Befehle (Secure Copy) aus, um die Sicherungsdateien (.dmp) abzurufen, die gespeichert werden, wenn der Container ausfällt:
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 .
Sie können den C:\k\containerdumps
Ordner auflisten, um den vollständigen Pfad der Sicherungsdateien zu finden, nachdem die Verbindung mit dem Windows-Knoten hergestellt wurde.
Kontaktieren Sie uns für Hilfe
Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.