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


Автоматическое обновление образов ОС узла

AKS предоставляет несколько каналов автоматического обновления, предназначенных для своевременного обновления безопасности ОС на уровне узлов. Этот канал отличается от обновлений версий Kubernetes на уровне кластера и заменяет его.

Взаимодействие между автоматическим обновлением ОС узла и автообновлением кластера

Обновления безопасности ОС на уровне узла выпускаются быстрее, чем патчи или минорные обновления версий Kubernetes. Канал автоматического обновления ОС узла обеспечивает гибкость и обеспечивает настраиваемую стратегию для обновлений системы безопасности на уровне узла. Затем можно выбрать отдельный план для автоматического обновления версий Kubernetes на уровне кластера. Лучше всего использовать автограды на уровне кластера и канал автоматического обновления ОС узла. Планирование можно точно настроить, применив два отдельных набора периодов - aksManagedAutoUpgradeSchedule обслуживания для канала автоматического обновления кластера и aksManagedNodeOSUpgradeSchedule для канала автоматического обновления ОС узла.

Каналы обновления образа ОС узла

Выбранный канал определяет время обновления. При внесении изменений в каналы автоматического обновления ОС узла ожидайте до 24 часов, чтобы изменения вступили в силу.

Замечание

  • Автоматическое обновление образа ОС узла не влияет на версию Kubernetes кластера.
  • Начиная с версии API 2023-06-01, по умолчанию в любом новом кластере AKS используется NodeImage.

Изменения канала операционной системы узла, которые приводят к повторному созданию образа системы.

Следующие канальные переходы ОС узлов активируют перепрошивку на узлах:

От Кому
Неуправляемые Отсутствует
Неопределенное Неуправляемые
SecurityPatch Неуправляемые
NodeImage Неуправляемые
Отсутствует Неуправляемые

Доступные каналы обновления ОС узла

Доступны следующие каналы обновления. Вы можете выбрать один из следующих вариантов:

Канал Описание Поведение для конкретной ОС
None Ваши узлы не имеют автоматически применяемых обновлений безопасности. Это означает, что вы несете ответственность за обновления системы безопасности. Не применимо
Unmanaged Обновления ОС применяются автоматически через встроенную инфраструктуру исправлений ОС. Только что выделенные компьютеры изначально не обновлены. Инфраструктура ОС исправляет их в какой-то момент. Ubuntu и Azure Linux (пулы узлов ЦП) применяют исправления безопасности с помощью автоматического обновления/dnf-automatic примерно один раз в день около 06:00 UTC. Windows не применяет автоматически исправления безопасности, поэтому этот параметр ведет себя эквивалентно None. Необходимо управлять процессом перезагрузки с помощью такого средства, как kured.
SecurityPatch Исправления безопасности ОС, которые тестируются в AKS, полностью управляемые и применяются с использованием безопасных методик развертывания. AKS регулярно обновляет виртуальный жесткий диск узла (VHD) патчами от производителя изображения, указанными как «только для безопасности». При применении этих исправлений безопасности к узлам могут возникать перебои в работе. Однако AKS ограничивает сбои, выполняя повторную инсталляцию узлов только при необходимости, например, для определенных пакетов безопасности ядра. При применении исправлений виртуальный жесткий диск обновляется, и существующие компьютеры переходят на обновленный виртуальный жесткий диск с учетом периодов обслуживания и параметров всплеска. Если AKS решит, что перепрограммирование узлов не требуется, он вносит исправления в узлы в реальном времени, не освобождая поды и не выполняя обновление виртуального жесткого диска. Этот параметр приведет к дополнительным затратам на размещение виртуальных жестких дисков (VHD) в группе ресурсов узла. Если вы используете этот канал, автоматические обновления Linux отключены по умолчанию. Azure Linux не поддерживает этот канал на виртуальных машинах с поддержкой GPU. SecurityPatch работает с устаревшими версиями исправлений kubernetes, если поддерживается дополнительная версия Kubernetes.
NodeImage AKS обновляет узлы с недавно исправленным виртуальным жестким диском, содержащим исправления безопасности и исправления ошибок еженедельно. Обновление нового виртуального жесткого диска нарушается, после периодов обслуживания и параметров всплеска. При выборе этого варианта дополнительная плата за виртуальный жесткий диск не взимается. Если вы используете этот канал, автоматические обновления Linux отключены по умолчанию. Обновления образов узла поддерживаются, пока минорная версия Kubernetes кластера все еще поддерживается. Образы узлов прошли тестирование AKS, полностью управляются и развертываются с использованием безопасных методов развертывания.

Что выбрать — Канал SecurityPatch или Channel NodeImage?

Существует два важных соображения при выборе между каналами SecurityPatch и NodeImage.

Недвижимость Канал NodeImage Канал SecurityPatch Рекомендуемый канал
Speed of shipping Типичные временные рамки сборки, тестирования, выпуска и развертывания для нового виртуального жесткого диска могут занять около двух недель, следуя безопасным методам развертывания. Несмотря на то что в случае CVEs ускорение развертывания может происходить по конкретному случаю. Точный момент, когда новый VHD попадает в регион, можно отслеживать с помощью release-tracker. Выпуски SecurityPatch, как правило, выходят быстрее, чем NodeImage, даже с безопасными методами развертывания. SecurityPatch имеет преимущество "живой установки исправлений" в средах Linux, где установка исправлений приводит к выборочному "восстановлению образа" и не создает образ заново при каждом применении исправления. Повторное изображение, если это происходит, управляется окнами обслуживания. SecurityPatch
Bugfixes Содержит исправления ошибок в дополнение к исправлениям безопасности. Исключительно содержит только исправления безопасности. NodeImage

Настройка канала автоматического обновления ОС узла в новом кластере

  • В новом кластере задайте канал автоматического обновления ОС узла с помощью команды az aks create с параметром --node-os-upgrade-channel. В следующем примере для канала автоматического обновления ОС узла устанавливается значение SecurityPatch.
export RANDOM_SUFFIX=$(openssl rand -hex 3)
export RESOURCE_GROUP="myResourceGroup$RANDOM_SUFFIX"
export AKS_CLUSTER="myAKSCluster$RANDOM_SUFFIX"
az aks create \
    --resource-group $RESOURCE_GROUP \
    --name $AKS_CLUSTER \
    --node-os-upgrade-channel SecurityPatch \
    --generate-ssh-keys

Настройка канала автоматического обновления ОС узла в существующем кластере

  • Установите канал автоматического обновления для node os на существующем кластере, используя команду az aks update с параметром --node-os-upgrade-channel. В следующем примере для канала автоматического обновления ОС узла устанавливается значение SecurityPatch.
az aks update --resource-group $RESOURCE_GROUP --name $AKS_CLUSTER --node-os-upgrade-channel SecurityPatch

Результаты:

{
  "autoUpgradeProfile": {
      "nodeOsUpgradeChannel": "SecurityPatch"
  }
}

Обновление права собственности и графика

Частота по умолчанию означает, что не применяется плановое время обслуживания.

Канал Обновление права собственности Частота по умолчанию
Unmanaged Обновления безопасности на основе ОС. AKS не контролирует эти обновления. Ночью около 6AM UTC для Ubuntu и Azure Linux. Ежемесячно для Windows.
SecurityPatch Проверенный AKS, полностью управляемый и использующий безопасные методы развертывания. Дополнительные сведения см. в статье о повышении безопасности и устойчивости канонических рабочих нагрузок в Azure. Как правило, AKS определяет частоту чаще, чем раз в неделю.
NodeImage Проверенный AKS, полностью управляемый и использующий безопасные методы развертывания. Для получения более актуальной информации о выпусках смотрите изображения узлов AKS в трекере выпусков. Еженедельно.

Замечание

Хотя обновления системы безопасности Windows выпускаются ежемесячно, использование Unmanaged канала не будет автоматически применять эти обновления к узлам Windows. При выборе Unmanaged канала необходимо управлять процессом перезагрузки для узлов Windows.

Известные ограничения канала узла

  • В настоящее время, когда вы настраиваете канал автоматического обновления кластера на node-image, он также автоматически задает канал обновления ОС узла на NodeImage. Вы не можете изменить значение канала автоматического обновления ОС узла, если ваш канал автообработки кластера имеет значение node-image. Чтобы задать значение канала автоматического обновления ОС узла, сначала убедитесь, что значение канала автоматического обновления кластера не задано.

  • Канал SecurityPatch не поддерживается в пулах узлов ОС Windows.

Замечание

Используйте cli версии 2.61.0 или более поздней для SecurityPatch канала.

Окна планового обслуживания ОС узла

Запланированное обслуживание для автоматического обновления ОС узла начинается с указанного периода обслуживания.

Замечание

Чтобы обеспечить правильную функциональность, используйте период обслуживания в течение четырех часов или более.

Дополнительные сведения о плановом обслуживании см. в статье "Использование планового обслуживания" для планирования периодов обслуживания для кластера Службы Azure Kubernetes (AKS).

Часто задаваемые вопросы об автоматических обновлениях ОС узловой системы

Как проверить текущее значение nodeOsUpgradeChannel в кластере?

az aks show Выполните команду и проверьте "autoUpgradeProfile", чтобы определить, какое значение nodeOsUpgradeChannel задано:

az aks show --resource-group $RESOURCE_GROUP --name $AKS_CLUSTER --query "autoUpgradeProfile"

Результаты:

{
  "nodeOsUpgradeChannel": "SecurityPatch"
}

Как отслеживать состояние автоматических обновлений ОС узла?

Чтобы просмотреть состояние автоматического обновления ОС узла, просмотрите журналы действий в кластере. Вы также можете искать конкретные события, связанные с обновлением, как упоминалось в разделе "Обновление кластера AKS". AKS также выдает события Event Grid, связанные с обновлением. Дополнительные сведения см. в статье AKS как источник сетки событий.

Можно ли изменить значение канала автоматического обновления ОС узла, если для канала автоматического обновления кластера задано значение node-image?

Нет. В настоящее время, когда вы настраиваете канал автоматического обновления кластера на node-image, он также автоматически задает канал обновления ОС узла на NodeImage. Вы не можете изменить значение канала автоматического обновления ОС узла, если канал автоматического обновления вашего кластера имеет значение node-image. Чтобы иметь возможность изменять значения канала автоматического обновления ОС узла, убедитесь, что канал автоматического обновления кластера не имеет значение node-image.

В канале Unmanaged AKS не контролирует, как и когда доставляются обновления системы безопасности. При использовании SecurityPatch обновления системы безопасности полностью тестируются и следуют рекомендациям по безопасному развертыванию. SecurityPatch также учитывает периоды обслуживания. Дополнительные сведения см. в статье о повышении безопасности и устойчивости канонических рабочих нагрузок в Azure.

Всегда ли SecurityPatch приводит к переустановке моих узлов?

AKS ограничивает повторную версию только при необходимости, например некоторые пакеты ядра, которые могут потребовать повторного создания образа для полного применения. SecurityPatch предназначен для минимизации нарушений в максимально возможной степени. Если AKS решит, что повторное копирование узлов не требуется, он исправляет узлы в реальном времени без очистки модулей pod и в таких случаях обновление виртуального жесткого диска не выполняется.

Почему каналу SecurityPatch необходимо достигнуть конечной точки snapshot.ubuntu.com?

SecurityPatch С помощью канала узлы кластера Linux должны скачать необходимые исправления безопасности и обновления из службы моментальных снимков Ubuntu, описанной в ubuntu-snapshots-on-azure-security-predictability-and-consistency-in-cloud-deployments.

Как узнать, применяется ли обновление SecurityPatch или NodeImage на моём узле?

kubectl get nodes --show-labels Выполните команду, чтобы вывести список узлов в кластере и их меток.

Среди возвращаемых меток вы увидите строку, аналогичную следующим выходным данным:

kubernetes.azure.com/node-image-version=AKSUbuntu-2204gen2containerd-202410.27.0-2024.12.01

Ниже приведена AKSUbuntu-2204gen2containerd-202410.27.0версия базового образа узла. Если применимо, версия исправления безопасности обычно следует. В приведенном выше примере это 2024.12.01.

Те же сведения также можно найти на портале Azure в разделе просмотра меток узла.

Снимок экрана: страница узлов для кластера AKS на портале Azure. Метка для версии образа узла четко отображает базовый образ узла и последнюю примененную дату исправления безопасности.

Дальнейшие шаги

Подробное обсуждение лучших практик обновления и других аспектов смотрите в руководстве по исправлению и обновлению AKS.