Поделиться через


Устранение распространенных проблем с узлом контейнеров Linux для 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 для AKS

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

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

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

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

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

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

Шаг 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 (нет точного эквивалента ; чтениеФайл пакетов в папке /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. В выходных данных следующей команды az aks nodepool list свойство osSKU должно прочитать AzureLinux.

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

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

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

Сертификаты 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
    

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

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

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

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

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

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