Запись файла дампа контейнера Windows из узла Windows в кластере AKS
Если контейнер Windows завершается сбоем в кластере Microsoft Служба Azure Kubernetes (AKS), может потребоваться проверить файл дампа контейнеров Windows, чтобы изучить первопричину. В этой статье описаны действия по захвату файла дампа контейнера Windows из узла Windows в кластере AKS. Он также содержит инструкции по скачиванию файла дампа на локальный компьютер для дальнейшего анализа.
Предварительные требования
Кластер AKS. Если у вас нет кластера AKS, создайте его с помощью Azure CLI или с помощью портал Azure.
Пулы агентов Windows, созданные после
3/13/2024
или образ узла, который был обновлен до версии20240316
образа AKS Windows или более поздней версии. Кроме того, проверьте, является ли версия WindowsCSEScriptsPackage версии 0.0.39 или более поздней, которая может находиться наC:\AzureData\CustomDataSetupScript.log
узлах Windows.
Шаг 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]
узнать, какой узел Windows AKS размещает модуль pod.
Шаг 3. Подключение к узлу Windows
Установите подключение к узлу кластера AKS. Проверка подлинности выполняется с помощью ключа Secure Shell (SSH) или пароля администратора Windows в подключении протокола удаленного рабочего стола (RDP). Оба метода требуют создания промежуточного соединения. Это связано с тем, что сейчас вы не можете подключиться непосредственно к узлу Windows AKS. Независимо от того, подключаетесь ли вы к узлу через SSH или RDP, необходимо указать имя пользователя для узлов AKS. По умолчанию это имя azureuser
пользователя.
Если у вас есть ключ SSH, создайте подключение SSH к узлу Windows. Ключ SSH не сохраняется на узлах AKS. Ключ SSH возвращает значение, первоначально установленное в кластере во время любого из следующих действий:
- Перезагрузить
- Обновление версий
- Обновление образа узла
Шаг 4. Передача файла дампа локально
После сбоя контейнера определите вспомогательный модуль pod, чтобы скопировать файл дампа локально. Откройте вторую консоль и получите список модулей pod, выполнив kubectl get pods
команду следующим образом:
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), чтобы получить файлы дампа (.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.