Устранение распространенных проблем с узлом контейнеров Linux Azure для AKS

В этой статье приведены инструкции по устранению некоторых распространенных проблем, которые могут возникнуть при использовании узлов контейнеров Azure Linux в Служба Azure Kubernetes (AKS). Дополнительные сведения о том, как приступить к работе с узлами контейнеров Azure Linux в AKS, см. в статье Использование Azure Linux с AKS.

Перед началом работы

Ознакомьтесь с официальным руководством по устранению неполадок с кластерами Kubernetes. Кроме того, ознакомьтесь с руководством инженера Майкрософт по устранению неполадок Kubernetes. В этом руководстве содержатся команды для устранения неполадок модулей pod, узлов, кластеров и других функций.

Наконец, просмотрите список известных ограничений в Azure Linux. Проблема, которую вы пытаетесь устранить, может быть проблема, над которую мы уже работаем.

Предварительные требования

  • Azure CLI версии 2.31 или более поздней. Если Azure CLI уже установлен, номер версии можно найти, запустив az --version.

Сведения об узле контейнеров Linux Azure для AKS

Azure Linux — это дистрибутив Linux с открытым кодом, созданный корпорацией Майкрософт. В качестве упрощенной ОС Azure Linux имеет следующие функции:

  • Содержит только пакеты, необходимые для выполнения рабочих нагрузок контейнера.
  • Проходит проверочные тесты Azure
  • Совместимо с агентами Azure

Узел контейнеров Linux Azure для AKS — это образ операционной системы для AKS, оптимизированный для выполнения рабочих нагрузок контейнеров. Он поддерживается корпорацией Майкрософт и основан на Azure Linux. Она обеспечивает надежность и согласованность между облаком и пограничными устройствами AKS, AKS в Azure Stack HCI и продуктах Azure Arc . Узлы контейнеров Azure Linux можно использовать для выполнения следующих процессов:

  • Разверните пулы узлов Linux Azure в новом кластере.
  • Добавьте пулы узлов Linux Azure в существующие кластеры Ubuntu.
  • Перенос узлов Ubuntu в узлы Linux Azure.

Дополнительные сведения об Azure Linux см. в репозитории GitHub для Azure Linux .

Контрольный список для устранения неполадок

Шаг 1. Проверка эквивалентных команд в Ubuntu и Azure Linux

Большинство команд в ОС Linux Для Azure, например команда состояния процесса (ps), напоминают команды, используемые в Ubuntu. Однако управление пакетами осуществляется с помощью команды Tiny DNF (tdnf). В следующей таблице перечислены некоторые распространенные команды в Ubuntu и их эквиваленты в Azure Linux.

Команда Ubuntu Рекомендуемая команда Azure Linux
apt -- list installed rpm -qa
apt autoclean tdnf clean all
apt autoremove dnf autoremove
apt dist-upgrade dnf distro-sync
apt download tdnf download
apt install tdnf install
apt install --reinstall tdnf reinstall
apt list - upgradable dnf list updates
apt remove tdnf remove
apt search tdnf search
apt show tdnf list
apt upgrade tdnf upgrade
apt cache dump tdnf list available
apt-cache dumpavail tdnf list available
apt-cache policy tdnf list
apt-cache rdepends dnf repoquery -- alldeps - whatrequires
apt-cache search tdnf search
apt-cache show tdnf info
apt-cache stats (нет точного эквивалента; прочитайте файл Packages в папке /var/lib/rpm )
apt-config shell dnf shell
apt-file list dnf repoquery -l
apt-file search tdnf provides
apt-get autoremove dnf autoremove
apt-get install tdnf install
apt-get remove tdnf remove
apt-get update dnf clean expire-cache dnf check-update
apt-mark auto tdnf install dnf mark remove
apt-mark manual dnf mark install
apt-mark showmanual dnf history userinstalled

Шаг 2. Проверка версии Azure Linux

Убедитесь, что используется правильная версия Azure Linux. Поддерживаемая версия Azure Linux для использования — Azure Linux 2.0. В выходных данных следующей команды osSKUaz aks nodepool list свойство должно иметь значение AzureLinux.

az aks nodepool list --resource-group <resource-group-name> --cluster-name <aks-cluster-name>

Хотя эта команда может не устранить проблему, которая возникает, управление версиями является распространенной проблемой для пользователей, которые сообщают, что агенты или расширения работают неправильно в Azure Linux.

Шаг 3. Понимание различий в путях к файлам сертификатов

Azure Linux (и другие дистрибутивы RPM) хранят сертификаты иначе, чем Ubuntu.

В Azure Linux путь /etc/ssl/certs является символьной ссылкой на /etc/pki/tls/certs. Если контейнер планирует сопоставить /etc/ssl/certs для использования файла сертификата ca-certificates.crt в Azure Linux, вместо этого контейнер получает символьную ссылку, которая указывает на никуда. Это поведение приводит к ошибкам, связанным с сертификатом, в контейнере. Контейнер также должен сопоставить /etc/pki , чтобы контейнер смог следовать цепочке символических ссылок. Если контейнер должен работать на узлах Ubuntu и Azure Linux, можно сопоставить /etc/pki с помощью DirectoryOrCreate типа в томе hostPath.

Шаг 4. Обновление Azure CLI и расширения предварительной версии AKS

При попытке развернуть кластер Azure Linux AKS с помощью Azure CLI может появиться сообщение об ошибке с сообщением AzureLinux о том, что параметр не поддерживается для OSSku параметра . Это сообщение означает, что вы можете использовать устаревшую версию Azure CLI или расширение предварительной версии AKS. Чтобы устранить эту проблему, выполните одно или оба из следующих двух действий:

  • Если Azure CLI не обновлен, установите последнюю версию. Чтобы обновить Azure CLI, выполните следующую команду az upgrade :

    az upgrade
    
  • Если у вас установлена более ранняя версия aks-preview расширения, установите более новую версию, OSSku чтобы параметр получил значение AzureLinux. Чтобы обновить расширение, выполните следующую команду az extension update :

    az extension update --name aks-preview
    

Заявление об отказе от ответственности за сведения о продуктах сторонних производителей

В этой статье упомянуты программные продукты независимых производителей. Корпорация Майкрософт не дает никаких гарантий, подразумеваемых и прочих, относительно производительности и надежности этих продуктов.

Заявление об отказе от ответственности за контактные данные сторонней организации

Корпорация Майкрософт предоставляет сторонние контактные данные, чтобы помочь вам найти дополнительные сведения по этой теме. Эти данные могут быть изменены без предварительного уведомления. Корпорация Майкрософт не гарантирует точность контактной информации сторонних поставщиков.

Свяжитесь с нами для получения помощи

Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.