Запись файла дампа контейнера Windows из узла Windows в кластере AKS
Если контейнер Windows завершается сбоем в кластере Microsoft Служба Azure Kubernetes (AKS), может потребоваться изучить файл дампа контейнера Windows, чтобы изучить первопричину. В этой статье описаны действия по записи файла дампа контейнера Windows из узла Windows в кластере AKS. Он также содержит инструкции по скачиванию файла дампа на локальный компьютер для дальнейшего анализа.
Предварительные условия
Кластер AKS. Если у вас нет кластера AKS, создайте его с помощью Azure CLI или портал Azure.
Пулы агентов Windows, созданные после
3/13/2024
, или образ узла, обновленный до версии20240316
образа WINDOWS AKS или более поздней версии. Кроме того, проверьте, является ли 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. Проверка подлинности выполняется с помощью ключа 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.