Использование планового обслуживания для планирования и управления обновлениями для кластера Служба Azure Kubernetes
В этой статье показано, как использовать плановое обслуживание для планирования и управления обновлениями образов кластера и узлов в Служба Azure Kubernetes (AKS).
Регулярное обслуживание выполняется в кластере AKS автоматически. Существует два типа операций обслуживания:
- Обслуживание , инициированное AKS, включает еженедельные выпуски, которые AKS выполняет для обновления кластера с последними функциями и исправлениями.
- Обслуживание, инициированное пользователем, включает автоматическое обновление кластера и автоматическое обновление операционной системы узла (ОС).
При использовании функции планового обслуживания в AKS можно выполнять оба типа обслуживания в выбранном вами варианте, чтобы свести к минимуму влияние рабочей нагрузки. Вы можете использовать плановое обслуживание для планирования времени автоматического обновления, но включение или отключение планового обслуживания не будет включать или отключать автоматические обновления.
Подготовка к работе
- В этой статье предполагается, что у вас есть кластер AKS. Если у вас нет кластера AKS, см. статью "Создание кластера AKS".
- Если вы используете Azure CLI, обновите ее до последней
az upgrade
версии с помощью команды.
Рекомендации
При использовании планового обслуживания применяются следующие рекомендации.
- AKS резервирует право на прерывание планового обслуживания для незапланированных, реактивных операций обслуживания, которые являются срочными или критически важными. Эти операции обслуживания могут выполняться даже в течение
notAllowedTime
илиnotAllowedDates
периодов, определенных в конфигурации. - Операции обслуживания считаются лучшими усилиями только и не гарантируются в пределах указанного окна.
Планирование типов конфигурации для планового обслуживания
Три типа конфигурации расписания доступны для планового обслуживания:
default
— базовая конфигурация для управления выпусками AKS. Выпуски могут занять до двух недель, чтобы развернуть все регионы с первоначального времени доставки из-за безопасного развертывания Azure.Выберите
default
, чтобы запланировать эти обновления таким образом, чтобы это было крайне разрушительным для вас. Вы можете отслеживать состояние текущего выпуска AKS по регионам с помощью еженедельного средства отслеживания выпуска.aksManagedAutoUpgradeSchedule
управляет выполнением обновлений кластера, запланированных назначенным каналом автоматического обновления. Вы можете настроить более точно контролируемые параметры каденции и повторения с этой конфигурацией по сравнениюdefault
с конфигурацией. Дополнительные сведения об автоматическом обновлении кластера см. в статье "Автоматическое обновление кластера Служба Azure Kubernetes".aksManagedNodeOSUpgradeSchedule
определяет, когда выполняется исправление системы безопасности операционной системы узла, запланированное каналом автоматического обновления ОС узла. Вы можете настроить более точно контролируемые параметры каденции и повторения с этой конфигурацией по сравнениюdefault
с конфигурацией. Дополнительные сведения о каналах автоматического обновления ОС узла см. в статье Автоматическое исправление и обновление образов узлов кластера AKS.
Рекомендуется использовать aksManagedAutoUpgradeSchedule
для всех сценариев обновления кластера и aksManagedNodeOSUpgradeSchedule
для всех сценариев исправления безопасности ос узла.
Этот default
вариант предназначен исключительно для еженедельных выпусков AKS. Вы можете переключить конфигурацию на default
aksManagedAutoUpgradeSchedule
конфигурацию или aksManagedNodeOSUpgradeSchedule
конфигурацию с помощью az aks maintenanceconfiguration update
команды.
Создание периода обслуживания
Примечание.
Если вы используете автоматическое обновление, чтобы обеспечить правильную функциональность, используйте период обслуживания с длительностью 4 часа или более.
Запланированные периоды обслуживания указываются в формате UTC.
Период default
обслуживания имеет следующие устаревшие свойства (больше не рекомендуется):
Имя | Описание: | Default value |
---|---|---|
timeInWeek |
default В конфигурации это свойство содержит day и hourSlots значения, определяющие период обслуживания. |
Нет данных |
timeInWeek.day |
День недели для выполнения обслуживания в default конфигурации. |
Нет данных |
timeInWeek.hourSlots |
Список часовых слотов для выполнения обслуживания в определенный день в default конфигурации. |
Нет данных |
notAllowedTime |
Диапазон дат, на которые обслуживание не может выполняться, определяется дочерними свойствамиstart .end Это свойство применимо только при создании периода обслуживания с помощью файла конфигурации. |
Неприменимо |
Примечание.
Начиная с версии API 2023-05-01, используйте приведенные ниже свойства для default
настройки.
aksManagedNodeOSUpgradeSchedule
Период aksManagedAutoUpgradeSchedule
обслуживания и default
конфигурация с версии API 2023-05-01 имеет следующие свойства:
Имя | Описание: | Default value |
---|---|---|
utcOffset |
Часовой пояс для обслуживания кластера. | +00:00 |
startDate |
Дата вступления в силу периода обслуживания. | Текущая дата во время создания |
startTime |
Время начала обслуживания в зависимости от часового пояса, определенного utcOffset . |
Нет данных |
schedule |
Частота обновления. Доступны три типа: Weekly , AbsoluteMonthly и RelativeMonthly . |
Нет данных |
intervalDays |
Интервал в днях для выполнения обслуживания. Применимо только к aksManagedNodeOSUpgradeSchedule . |
Нет данных |
intervalWeeks |
Интервал в неделях для выполнения обслуживания. | Нет данных |
intervalMonths |
Интервал в месяцы для выполнения обслуживания. | Нет данных |
dayOfWeek |
Указанный день недели для начала обслуживания. | Нет данных |
durationHours |
Длительность периода обслуживания для запуска. | Нет данных |
notAllowedDates |
Диапазон дат, на которые обслуживание не может выполняться, определяется дочерними свойствамиstart .end Это применимо только при создании периода обслуживания с помощью файла конфигурации. |
Нет данных |
Типы расписаний
Доступны четыре доступных типа расписания: Daily
, Weekly
, AbsoluteMonthly
и RelativeMonthly
.
Weekly
, AbsoluteMonthly
и RelativeMonthly
типы расписаний применимы только к aksManagedClusterAutoUpgradeSchedule
конфигурациям и aksManagedNodeOSUpgradeSchedule
конфигурациям. Daily
расписания применимы только к aksManagedNodeOSUpgradeSchedule
конфигурациям.
Все поля, отображаемые для каждого типа расписания, обязательны.
Расписание Daily
может выглядеть следующим образом:
"schedule": {
"daily": {
"intervalDays": 3
}
}
Weekly
Расписание может выглядеть как "каждые две недели в пятницу":
"schedule": {
"weekly": {
"intervalWeeks": 2,
"dayOfWeek": "Friday"
}
}
Расписание AbsoluteMonthly
может выглядеть как "каждые три месяца в первый день месяца":
"schedule": {
"absoluteMonthly": {
"intervalMonths": 3,
"dayOfMonth": 1
}
}
Расписание RelativeMonthly
может выглядеть как "каждые два месяца в последний понедельник":
"schedule": {
"relativeMonthly": {
"intervalMonths": 2,
"dayOfWeek": "Monday",
"weekIndex": "Last"
}
}
Допустимые значения для weekIndex
включенияFirst
, , Second
, Third
Fourth
и Last
.
Добавление конфигурации периода обслуживания
Добавьте конфигурацию периода обслуживания в кластер AKS с помощью az aks maintenanceconfiguration add
команды.
Первый пример добавляет новую default
конфигурацию, которая планирует обслуживание с 1:00 до 2:00 каждый понедельник. Второй пример добавляет новую aksManagedAutoUpgradeSchedule
конфигурацию, которая планирует обслуживание для выполнения каждые треть пятницу в период с 12:00 по 8:00 в часовом поясе UTC+5:30
.
# Add a new default configuration
az aks maintenanceconfiguration add --resource-group myResourceGroup --cluster-name myAKSCluster --name default --weekday Monday --start-hour 1
# Add a new aksManagedAutoUpgradeSchedule configuration
az aks maintenanceconfiguration add --resource-group myResourceGroup --cluster-name myAKSCluster --name aksManagedAutoUpgradeSchedule --schedule-type Weekly --day-of-week Friday --interval-weeks 3 --duration 8 --utc-offset +05:30 --start-time 00:00
Примечание.
При использовании default
типа конфигурации можно опустить --start-time
параметр, чтобы разрешить обслуживание в любое время в течение дня.
Обновление существующего периода обслуживания
Обновите существующую конфигурацию обслуживания с помощью az aks maintenanceconfiguration update
команды.
В следующем примере конфигурация обновляется default
, чтобы запланировать обслуживание с 2:00 до 3:00 каждый понедельник:
az aks maintenanceconfiguration update --resource-group myResourceGroup --cluster-name myAKSCluster --name default --weekday Monday --start-hour 2
Вывод списка всех периодов обслуживания в существующем кластере
Вывод списка текущих окон конфигурации обслуживания в кластере az aks maintenanceconfiguration list
AKS с помощью команды:
az aks maintenanceconfiguration list --resource-group myResourceGroup --cluster-name myAKSCluster
Отображение определенного периода конфигурации обслуживания в существующем кластере
Просмотрите определенное окно конфигурации обслуживания в кластере az aks maintenanceconfiguration show
AKS с помощью команды с параметром --name
:
az aks maintenanceconfiguration show --resource-group myResourceGroup --cluster-name myAKSCluster --name aksManagedAutoUpgradeSchedule
В следующем примере выходных данных показан период обслуживания для aksManagedAutoUpgradeSchedule
:
{
"id": "/subscriptions/<subscription>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/maintenanceConfigurations/aksManagedAutoUpgradeSchedule",
"maintenanceWindow": {
"durationHours": 4,
"notAllowedDates": [
{
"end": "2024-01-05",
"start": "2023-12-23"
}
],
"schedule": {
"absoluteMonthly": {
"dayOfMonth": 1,
"intervalMonths": 3
},
"daily": null,
"relativeMonthly": null,
"weekly": null
},
"startDate": "2023-01-20",
"startTime": "09:00",
"utcOffset": "-08:00"
},
"name": "aksManagedAutoUpgradeSchedule",
"notAllowedTime": null,
"resourceGroup": "myResourceGroup",
"systemData": null,
"timeInWeek": null,
"type": null
}
Удаление окна конфигурации обслуживания в существующем кластере
Удалите окно конфигурации обслуживания в кластере az aks maintenanceconfiguration delete
AKS с помощью команды.
В следующем примере удаляется autoUpgradeSchedule
конфигурация обслуживания:
az aks maintenanceconfiguration delete --resource-group myResourceGroup --cluster-name myAKSCluster --name autoUpgradeSchedule
Вопросы и ответы
Как проверить существующие конфигурации обслуживания в кластере?
Используйте команду
az aks maintenanceconfiguration show
.Может ли реактивное, незапланированное обслуживание происходит в течение
notAllowedTime
илиnotAllowedDates
периодов?Да. AKS оставляет за собой право разорвать эти окна для незапланированных, реактивных операций обслуживания, которые являются срочными или критически важными.
Как узнать, произошло ли событие обслуживания?
Для выпусков проверьте регион кластера и просмотрите сведения в еженедельные выпуски , чтобы узнать, соответствует ли оно расписанию обслуживания. Чтобы просмотреть состояние автоматических обновлений, просмотрите журналы действий в кластере. Вы также можете искать конкретные события, связанные с обновлением, как упоминалось в разделе "Обновление кластера AKS".
AKS также выдает события, связанные с обновлением Сетка событий Azure. Дополнительные сведения см. в статье AKS как источник сетки событий.
Можно ли одновременно использовать несколько конфигураций обслуживания?
Да, можно одновременно запускать все три конфигурации:
default
,aksManagedAutoUpgradeSchedule
иaksManagedNodeOSUpgradeSchedule
. Если окна перекрываются, AKS решает порядок выполнения.Я настроили период обслуживания, но обновление не произошло. Почему?
Автоматическое обновление AKS требует определенного времени, обычно не более 15 минут, чтобы принять во внимание период обслуживания. Рекомендуется по крайней мере 15 минут между созданием или обновлением конфигурации обслуживания и запланированным временем начала.
Кроме того, убедитесь, что кластер запущен при запуске запланированного периода обслуживания. Если кластер остановлен, его плоскость управления освобождена, и никакие операции не могут выполняться.
Почему один из пулов агентов обновлен за пределами периода обслуживания?
Если пул агентов не обновляется (например, так как бюджеты сбоев pod предотвратили его), он может быть обновлен позже за пределами периода обслуживания. Этот сценарий называется "догоняющий обновление". Это позволяет избежать обновления пулов агентов с другой версией, отличной от плоскости управления AKS.
Другая причина, по которой пул агентов может быть неожиданно обновлен, если не определена конфигурация обслуживания или если она была удалена. В этом случае кластер с автоматическим обновлением , но без конфигурации обслуживания будет обновляться случайным образом (резервное расписание), которое может быть нежелательным временем.
Существуют ли рекомендации по настройке обслуживания?
Мы рекомендуем задать расписание обновлений безопасности операционной системы узла на еженедельную периодичность, если вы используете
NodeImage
канал, так как новый образ узла поставляется каждую неделю. Вы также можете принять участие в каналеSecurityPatch
для получения ежедневных обновлений системы безопасности.Задайте для расписания автоматического обновления ежемесячное значение, чтобы оставаться в курсе политики поддержки Kubernetes N-2.
Подробное обсуждение рекомендаций по обновлению и других рекомендаций см . в руководстве по исправлению и обновлению AKS.
Можно ли настроить все кластеры в одной подписке для использования одной конфигурации обслуживания?
Мы не рекомендуем использовать одну конфигурацию обслуживания для нескольких кластеров в одной подписке, так как это может привести к ошибкам регулирования ARM, что приводит к сбою обновления кластера. Вместо этого рекомендуется ошеломить периоды обслуживания для каждого кластера, чтобы избежать этих ошибок.
Следующие шаги
- Чтобы приступить к обновлению кластера AKS, ознакомьтесь с параметрами обновления кластеров AKS.
Azure Kubernetes Service