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


Обновления образа узла для автоматической подготовки узла (NAP) в Azure Kubernetes Service (AKS)

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

Как работают обновления образов узлов при автоматической подготовке узлов?

По умолчанию виртуальные машины пула узлов NAP автоматически обновляются при доступности новой версии образа. Вы можете настроить плановое окно обслуживания для обновления операционной системы (OS), управляемой AKS для контроля, когда новые образы загружаются и применяются к узлам NAP, или использовать бюджеты прерываний узлов Karpenter и бюджеты прерываний Pod для управления тем, как и когда происходят сбои во время обновлений.

Замечание

NAP принудительно выбирает последнюю версию образа, если существующая версия образа узла старше 90 дней. Это обходит все существующие периоды обслуживания.

Окна обслуживания для обновления ОС узлов для NAP

Вы можете использовать функцию планового обслуживания AKS с каналом автоматического обновления ОС узла, чтобы настроить aksManagedNodeOSUpgradeSchedule период обслуживания, контролирующий, когда выполнять исправление безопасности ОС узла, запланированное вашим назначенным каналом автоматического обновления ОС узла.

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

При настройке периода обслуживания ОС узла для NAP следует учитывать следующие сведения:

  • Конфигурация aksManagedNodeOSUpgradeSchedule обслуживания определяет окно, в течение которого NAP выбирает новое изображение. Эта конфигурация не обязательно определяет, когда существующие узлы нарушены.
  • Механизм обновления и критерии принятия решений относятся к NAP/Karpenter и оцениваются логикой смещения NAP. NAP учитывает бюджеты сбоев узлов Karpenter и бюджеты сбоев pod'ов. Для получения дополнительных сведений о дрейфе см. документацию по дрейфу Карпентера.
  • Эти решения по обновлению NAP отделены от каналов кластера NodeImage и SecurityPatch. aksManagedNodeOSUpgradeSchedule Однако конфигурация обслуживания также применяет их.
  • Мы рекомендуем использовать период обслуживания в течение четырех часов или более для надежной работы.
  • Если конфигурация обслуживания не существует, AKS может использовать резервный график для загрузки новых образов, что может привести к их загрузке в непредвиденное время. Вы можете избежать неожиданного появления новых системных образов и обновлений, определив явное aksManagedNodeOSUpgradeSchedule значение.
  • Разрешите по крайней мере 30 минут между созданием или обновлением конфигурации обслуживания и запланированным временем начала, чтобы убедиться, что AKS имеет время для согласования новой конфигурации.

Рекомендуется использовать следующий шаблон расписания для узлов, управляемых NAP:

  • Еженедельная частота: рекомендуется для регулярного развертывания образа узла (например, каждую неделю в воскресенье).

Создайте пример расписания обслуживания ОС узла

В следующих разделах будет показано, как создать еженедельное окно обслуживания для управляемых узлов NAP с помощью Azure CLI и файла конфигурации JSON, а также как обновить, просмотреть, перечислить и удалить конфигурацию обслуживания.

Создание конфигурации обслуживания

  1. Создайте JSON-файл nodeosMaintenance.json с еженедельной периодом обслуживания (например, воскресенье в 01:00 UTC в течение 4 часов).

    {
      "properties": {
        "maintenanceWindow": {
          "durationHours": 4,
          "schedule": {
            "weekly": {
              "intervalWeeks": 1,
              "dayOfWeek": "Sunday"
            }
          },
          "startDate": "2025-01-01",
          "startTime": "01:00",
          "utcOffset": "+00:00"
        }
      }
    }
    
  2. Добавьте конфигурацию обслуживания в кластер с помощью az aks maintenanceconfiguration add команды.

    az aks maintenanceconfiguration add \
      --resource-group $RESOURCE_GROUP \
      --cluster-name $CLUSTER_NAME \
      --name aksManagedNodeOSUpgradeSchedule \
      --config-file ./nodeosMaintenance.json
    

Обновление, просмотр, список или удаление конфигурации обслуживания

Для обновления, просмотра, списка или удаления конфигурации обслуживания для узлов, управляемых NAP, можно использовать следующие команды:

  • Обновите конфигурацию обслуживания, изменив JSON-файл и выполнив az aks maintenanceconfiguration update команду.

    az aks maintenanceconfiguration update \
      --resource-group $RESOURCE_GROUP \
      --cluster-name $CLUSTER_NAME \
      --name aksManagedNodeOSUpgradeSchedule \
      --config-file ./nodeosMaintenance.json
    
  • Просмотрите сведения о конфигурации обслуживания с помощью az aks maintenanceconfiguration show команды.

    az aks maintenanceconfiguration show \
      --resource-group $RESOURCE_GROUP \
      --cluster-name $CLUSTER_NAME \
      --name aksManagedNodeOSUpgradeSchedule
    
  • Перечислите все конфигурации обслуживания для кластера с помощью az aks maintenanceconfiguration list команды.

    az aks maintenanceconfiguration list \
      --resource-group $RESOURCE_GROUP \
      --cluster-name $CLUSTER_NAME
    
  • Удалите конфигурацию обслуживания с помощью az aks maintenanceconfiguration delete команды.

    az aks maintenanceconfiguration delete \
      --resource-group $RESOURCE_GROUP \
      --cluster-name $CLUSTER_NAME \
      --name aksManagedNodeOSUpgradeSchedule
    

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

Бюджеты сбоя узла Karpenter и бюджеты нарушений pod для NAP

Дополнительные сведения о настройке бюджетов нарушений узлов Karpenter и бюджетов нарушений Pod-ов для NAP см. в ресурсах из официальной документации Karpenter:

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

Дополнительные сведения об автоматической подготовке узлов в AKS см. в следующих статьях: