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


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

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

Чтобы проверить версию ЯДРА пулов узлов, выполните следующие действия:

    kubectl get nodes -o wide

Затем сравните версию ядра пулов узлов с последним ядром, опубликованным на packages.microsoft.com.

Симптом

Распространенный симптом этой проблемы включает в себя:

  • Узлы Linux Azure не используют последнюю версию ядра.

Причины

Существует две основные причины этой проблемы:

  1. Автоматическое обновление образа узла не было включено при создании пула узлов.
  2. Базовый образ, который AKS использует для запуска кластеров, выполняется две недели после последних версий ядра из-за процедуры развертывания.

Решение

Вы можете включить автоматическое обновление с помощью GitHub Actions и перезагрузить узлы для устранения этой проблемы.

Включение автоматического обновления образа узла с помощью Azure CLI

Чтобы включить автоматическое обновление образа узла при развертывании кластера из az-cli, добавьте параметр --auto-upgrade-channel node-image.

az aks create --name testAzureLinuxCluster --resource-group testAzureLinuxResourceGroup --os-sku AzureLinux --auto-upgrade-channel node-image

Включение автоматического обновления образа узла с помощью шаблонов ARM

Чтобы включить автоматическое обновление образа узла при использовании шаблона ARM, можно задать для свойства upgradeChannel значение autoUpgradeProfile node-image.

    autoUpgradeProfile: {
      upgradeChannel: 'node-image'
    }

Перезагрузка узлов

При обновлении версии ядра необходимо перезагрузить узел, чтобы использовать новую версию ядра. Рекомендуется настроить курируемую управляющую программу. Курировался для мониторинга узлов для /var/run/reboot-required файла, очистки рабочей нагрузки и перезагрузки узлов.

Обходное решение. Обновление вручную

Если вам нужен быстрый обходной путь, вы можете вручную обновить образ узла в кластере с помощью az aks nodepool upgrade. Это можно сделать, выполнив команду

az aks nodepool upgrade \
    --resource-group testAzureLinuxResourceGroup \
    --cluster-name testAzureLinuxCluster \
    --name myAzureLinuxNodepool \
    --node-image-only

Следующие шаги

Если описанные выше шаги не устранят проблему, отправьте запрос в службу поддержки.