Устранение неполадок с обработчиком AKS в Azure Stack Hub
Может возникнуть проблема при развертывании обработчика AKS или работе с ним в Azure Stack Hub. В этой статье рассматриваются действия по устранению неполадок при развертывании обработчика AKS. Соберите сведения о обработчике AKS, соберите журналы Kubernetes и просмотрите коды ошибок расширения пользовательских скриптов. Вы также можете открыть проблему GitHub для обработчика AKS.
Примечание
Для AKSe версии 0.75.3 и выше приведенные aks-engine
ниже команды будут начинаться с aks-engine-azurestack
, а не aks-engine
.
Устранение неполадок с установкой обработчика AKS
Если предыдущие шаги установки завершилися сбоем, вы можете установить обработчик AKS с помощью диспетчера пакетов GoFish. GoFish идентифицирует себя как Homebrew с кроссплатформенной поддержкой.
Инструкции по установке обработчика AKS с помощью GoFish см. здесь.
Сбор журналов узлов и кластеров
Инструкции по сбору журналов узлов и кластеров см. в статье Получение журналов узлов и кластеров.
Предварительные требования
В этом руководстве предполагается, что вы уже скачали Azure CLI и обработчик AKS.
В этом руководстве также предполагается, что вы развернули кластер с помощью обработчика AKS. Дополнительные сведения см. в статье Развертывание кластера Kubernetes с помощью обработчика AKS в Azure Stack Hub .
Извлечение журналов
Команда aks-engine get-logs
может быть полезна для устранения неполадок с кластером. Команда создает, собирает и скачивает набор файлов на рабочую станцию. Файлы включают конфигурацию узла, состояние кластера и конфигурацию, а также файлы журналов настройки.
На высоком уровне: команда работает путем установки сеанса SSH на каждом узле, выполнения скрипта сбора журналов, который собирает и архивирует соответствующие файлы, а также скачивая файл .ZIP на локальный компьютер.
Аутентификация SSH
Вам потребуется действительный закрытый ключ SSH для установки сеанса SSH на узлах кластера Linux. Учетные данные Windows хранятся в модели API и будут загружаться оттуда. Установите windowsprofile.sshEnabled
значение true, чтобы включить SSH на узлах Windows.
Отправка журналов в контейнер учетной записи хранения
После успешного получения журналов кластера обработчик AKS может сохранить их в контейнере учетной записи хранения Azure, если задан необязательный параметр --upload-sas-url
. Обработчик AKS ожидает, что имя контейнера будет частью предоставленного URL-адреса SAS. Ожидаемый формат — https://{blob-service-uri}/{container-name}?{sas-token}
.
Примечание
Учетные записи хранения в пользовательских облаках с помощью поставщика удостоверений AD FS пока не поддерживаются.
Узлы не могут присоединиться к кластеру
По умолчанию собирает журналы с узлов, aks-engine get-logs
которые успешно присоединились к кластеру. Чтобы собрать журналы с виртуальных машин, которым не удалось присоединиться к кластеру, установите флаг --vm-names
:
--vm-name k8s-pool-01,k8s-pool-02
Использование для командлетов get-logs для aks-engine
Если вы развернули кластер и модель API, которая изначально использовалась для развертывания этого кластера, хранится в _output/<dnsPrefix>/apimodel.json
, то можно собирать журналы с помощью команды, например:
aks-engine get-logs \
--location <location> \
--api-model _output/<dnsPrefix>/apimodel.json \
--ssh-host <dnsPrefix>.<location>.cloudapp.azure.com \
--linux-ssh-private-key ~/.ssh/id_rsa
Параметры
Параметр | Обязательно | Описание |
---|---|---|
--location | Да | Расположение группы ресурсов кластера в Azure. |
--api-model | Да | Путь к созданной модели API для кластера. |
--ssh-host | Да | Полное доменное имя или IP-адрес прослушивателя SSH, доступного ко всем узлам в кластере. |
--linux-ssh-private-key | Да | Путь к закрытому ключу SSH, который можно использовать для создания удаленного сеанса на узлах кластера Linux. |
--output-directory | Нет | Выходной каталог, производный от --api-model , если отсутствует. |
--control-plane-only | Нет | Собирайте журналы только с узлов уровня управления. |
--vm-names | Нет | Собирать журналы только с указанных виртуальных машин (имена с разделими-запятыми). |
--upload-sas-url | Нет | URL-адрес SAS учетной записи хранения Azure для отправки собранных журналов. |
Проверка кодов ошибок для расширения пользовательских скриптов
Обработчик AKS создает скрипт для каждого сервера Ubuntu в качестве ресурса для расширения пользовательских скриптов (CSE) для выполнения задач развертывания. Если скрипт выдает ошибку, он регистрирует ошибку в /var/log/azure/cluster-provision.log
. Ошибки отображаются на портале. Код ошибки может быть полезен для выяснения случая проблемы. Дополнительные сведения о кодах выхода CSE см. в разделе cse_helpers.sh
.
Предоставление журналов Kubernetes сотруднику службы поддержки Майкрософт
Если после сбора и изучения журналов по-прежнему не удается устранить проблему, вы можете начать процесс создания запроса в службу поддержки и предоставить собранные журналы.
Оператор может объединять созданные журналы вместе с другими системными журналами, которые могут потребоваться службе поддержки Майкрософт. Оператор может сделать их доступными для корпорации Майкрософт.
Вы можете предоставить журналы Kubernetes несколькими способами.
- Вы можете обратиться к оператору Azure Stack Hub. Оператор использует сведения из журналов, хранящихся в файле .ZIP, для создания обращения в службу поддержки.
- Если у вас есть URL-адрес SAS для учетной записи хранения, куда можно отправить журналы Kubernetes, можно включить следующую команду и пометить URL-адрес SAS, чтобы сохранить журналы в учетной записи хранения:
Инструкции см. в статье Отправка журналов в контейнер учетной записи хранения.aks-engine get-logs -upload-sas-url <SAS-URL>
- Если вы являетесь оператором облака, вы можете:
- Используйте колонку Справка и поддержка на портале администрирования Azure Stack Hub для отправки журналов. Инструкции см. в статье Отправка журналов сейчас с помощью портала администрирования.
- Используйте командлет PowerShell Get-AzureStackLog с помощью привилегированной конечной точки (PEP). Инструкции см. в статье Отправка журналов с помощью PowerShell.
Сообщение о проблеме на сайте GitHub
Если не удается устранить ошибку развертывания, можно открыть проблему GitHub.
Откройте проблему GitHub в репозитории обработчика AKS.
Добавьте заголовок в следующем формате: ошибка CSE:
exit code <INSERT_YOUR_EXIT_CODE>
.Добавьте следующую информацию о проблеме:
Файл конфигурации кластера
apimodel.json
, из которого выполнялось развертывание. Перед публикацией в GitHub удалите все секреты и ключи.Выходные данные следующей команды kubectl
get nodes
.Содержимое
/var/log/azure/cluster-provision.log
из неработоспособного узла.
Дальнейшие действия
- Ознакомьтесь с подсистемой AKS в Azure Stack Hub.