Устранение неполадок с обработчиком AKS в Azure Stack Hub
При развертывании или работе с обработчиком AKS в Azure Stack Hub может возникнуть проблема. В этой статье рассматриваются действия по устранению неполадок при развертывании обработчика AKS. Соберите сведения о обработчике AKS, соберите журналы Kubernetes и просмотрите коды ошибок расширения пользовательских скриптов. Вы также можете открыть GitHub проблему для обработчика AKS.
Устранение неполадок с установкой обработчика AKS
Если при установке обработчика AKS произошел сбой, попробуйте установить его с помощью диспетчера пакетов GoFish. GoFish идентифицирует себя как Homebrew с кроссплатформенной поддержкой.
Инструкции по использованию GoFish для установки обработчика AKS см. в статье "Установка программы командной строки aks-engine"
Сбор журналов узлов и кластера
Инструкции по сбору журналов узлов и кластера см. в разделе "Получение журналов узлов и кластеров".
Предварительные требования
В этом руководстве предполагается, что вы уже скачали Azure CLI и обработчик AKS.
В этом руководстве также предполагается, что вы развернули кластер с помощью обработчика AKS. Дополнительные сведения см. в статье "Развертывание кластера Kubernetes с помощью обработчика AKS в Azure Stack Hub ".
Получение журналов
Эта aks-engine get-logs команда может быть полезна для устранения неполадок с кластером. Команда создает, собирает и скачивает набор файлов на рабочую станцию. Файлы включают конфигурацию узла, состояние кластера и конфигурацию, а также файлы журналов.
На высоком уровне: команда работает путем установки сеанса SSH в каждом узле, выполнения скрипта сбора журналов, который собирает и zip-файлы, а также скачивает файл .ZIP на локальный компьютер.
Аутентификация SSH
Чтобы установить сеанс SSH на узлах Linux кластера, вам потребуется действительный закрытый ключ SSH. 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-engine 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 | Нет | служба хранилища Azure URL-адрес SAS учетной записи для отправки собранных журналов. |
Проверка кодов ошибок для расширения пользовательских скриптов
Обработчик 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.