Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как использовать плановое обслуживание для планирования и управления обновлениями образов кластера и узлов в службе 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 для всех сценариев обновления версий Kubernetes кластера и aksManagedNodeOSUpgradeSchedule для всех сценариев исправления безопасности ос узла.
Этот default вариант предназначен исключительно для еженедельных выпусков AKS. Используйте default, если вы хотите управлять расписанием обновления компонентов уровня управления AKS (например, сервер API, ETCD и т. д.) и дополнений (например, CoreDNS, Metrics Server и т. д.).
Все три типа конфигураций могут сосуществовать.
Создание периода обслуживания
Замечание
Если вы используете автоматическое обновление, чтобы обеспечить правильную функциональность, используйте период обслуживания с длительностью 4 часа или более.
Замечание
Начиная с версии API 2023-05-01, используйте свойства в следующей таблице для default настройки.
Период обслуживания aksManagedAutoUpgradeSchedule или aksManagedNodeOSUpgradeSchedule и конфигурация default, начиная с версии API от 2023-05-01, имеют следующие свойства:
| Имя | Описание | Значение по умолчанию |
|---|---|---|
utcOffset |
Часовой пояс для обслуживания кластера. | +00:00 |
startDate |
Дата вступления в силу периода обслуживания. | Текущая дата во время создания |
startTime |
Время начала обслуживания в зависимости от часового пояса, определенного utcOffset. |
Неприменимо |
schedule |
Частота обновления. Доступны три типа: Weekly, AbsoluteMonthlyи RelativeMonthly. |
Неприменимо |
intervalDays |
Интервал в днях для выполнения обслуживания. Применимо только к aksManagedNodeOSUpgradeSchedule. |
Неприменимо |
intervalWeeks |
Интервал в неделях для технического обслуживания. | Неприменимо |
intervalMonths |
Интервал в месяцах для проведения обслуживания. | Неприменимо |
dayOfWeek |
Указанный день недели для начала обслуживания. | Неприменимо |
durationHours |
Продолжительность окна проведения обслуживания. | Неприменимо |
notAllowedDates |
Диапазон дат, на которые обслуживание не может выполняться, определяется дочерними свойствами start и end. Это применимо только при создании окна обслуживания с помощью файла конфигурации. |
Неприменимо |
Устаревшие свойства
Замечание
Если вы создаете default конфигурацию со следующими устаревшими свойствами, она автоматически переносится на новые свойства, отображаемые в предыдущей таблице.
[Устаревшее] Окно default обслуживания имеет следующие устаревшие свойства:
| Имя | Описание | Значение по умолчанию |
|---|---|---|
timeInWeek |
В конфигурации default это свойство содержит значения day и hourSlots, определяющие период обслуживания. |
Неприменимо |
timeInWeek.day |
День недели для проведения технического обслуживания в default конфигурации. |
Неприменимо |
timeInWeek.hourSlots |
Список часовых интервалов времени для выполнения обслуживания в определенный день в default конфигурации. |
Неприменимо |
notAllowedTime |
Диапазон дат, на которые обслуживание не может выполняться, определяется дочерними свойствами start и end. Это свойство применимо только при создании периода обслуживания, используя файл конфигурации. |
Неприменимо |
Типы расписаний
Поддерживаются четыре типа расписаний: Daily, Weekly, AbsoluteMonthlyи RelativeMonthly.
В следующей таблице показано, какие типы доступны для каждого варианта конфигурации обслуживания:
| Тип расписания | default |
aksManagedClusterAutoUpgradeSchedule |
aksManagedNodeOSUpgradeSchedule |
|---|---|---|---|
| Ежедневно | Неподдерживаемые ❌ | Поддерживается ✅ (после июня 2025 г.) | Добавлена поддержка ✅. |
| Еженедельно | Добавлена поддержка ✅. | Добавлена поддержка ✅. | Добавлена поддержка ✅. |
| AbsoluteMonthly | Неподдерживаемые ❌ | Добавлена поддержка ✅. | Добавлена поддержка ✅. |
| Относительный Ежемесячный | Неподдерживаемые ❌ | Добавлена поддержка ✅. | Добавлена поддержка ✅. |
Все поля, отображаемые для каждого типа расписания, обязательны.
Расписание 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 до 5:00 каждый понедельник в часовом поясе UTC . Второй пример добавляет новую aksManagedAutoUpgradeSchedule конфигурацию, которая планирует выполнение обслуживания в каждую третью пятницу в период с 12:00 ночи до 8:00 утра в часовом поясе UTC+5:30.
# Add a new default configuration
az aks maintenanceconfiguration add --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name default --schedule-type Weekly --day-of-week Monday --interval-weeks 1 --duration 4 --utc-offset +00:00 --start-time 01:00
# Add a new aksManagedAutoUpgradeSchedule configuration
az aks maintenanceconfiguration add --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name aksManagedAutoUpgradeSchedule --schedule-type Weekly --day-of-week Friday --interval-weeks 3 --duration 8 --utc-offset +05:30 --start-time 00:00
Обновление существующего окна обслуживания
Обновите существующую конфигурацию обслуживания с помощью az aks maintenanceconfiguration update команды.
В следующем примере конфигурация default обновляется, чтобы запланировать техническое обслуживание, которое будет выполняться с 2:00 до 6:00 каждую пятницу.
az aks maintenanceconfiguration update --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name default --schedule-type Weekly --day-of-week Friday --interval-weeks 1 --duration 4 --utc-offset +00:00 --start-time 02:00
Перечислите все окна обслуживания в существующем кластере
Перечислите текущие окна конфигурации обслуживания в вашем кластере AKS с помощью команды az aks maintenanceconfiguration list.
az aks maintenanceconfiguration list --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME
Показать конкретное окно конфигурации обслуживания в существующем кластере
Просмотрите конкретное окно конфигурации обслуживания в кластере AKS с помощью команды az aks maintenanceconfiguration show и параметра --name.
az aks maintenanceconfiguration show --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --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
}
Удаление окна конфигурации обслуживания в существующем кластере
Удалите окно конфигурации обслуживания в кластере AKS с помощью az aks maintenanceconfiguration delete команды.
В следующем примере удаляется конфигурация обслуживания autoUpgradeSchedule.
az aks maintenanceconfiguration delete --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name autoUpgradeSchedule
Часто задаваемые вопросы (FAQ)
Как проверить существующие конфигурации обслуживания в кластере?
Используйте команду az aks maintenanceconfiguration show.
Может ли реактивное, незапланированное обслуживание также произойти в периоды notAllowedDates ?
Да. AKS оставляет за собой право разорвать эти окна для незапланированных, реактивных операций обслуживания, которые являются срочными или критически важными.
Как узнать, произошло ли событие обслуживания?
Для выпусков проверьте регион кластера и уточните информацию в еженедельных версиях, чтобы узнать, соответствуют ли они расписанию обслуживания. Чтобы просмотреть состояние автоматических обновлений, просмотрите журналы действий в кластере. Вы также можете искать конкретные события, связанные с обновлением, как упоминалось в разделе "Обновление кластера AKS".
AKS также эмитирует события Azure Event Grid, связанные с обновлением. Дополнительные сведения см. в статье AKS как источник сетки событий.
Можно ли одновременно использовать несколько конфигураций обслуживания?
Да, можно одновременно запускать все три конфигурации: default, aksManagedAutoUpgradeScheduleи aksManagedNodeOSUpgradeSchedule. Если окна перекрываются, AKS решает порядок выполнения.
Я настроил период обслуживания, но обновление не произошло. Почему?
Автоматическое обновление AKS требует определенного времени, обычно не более 15 минут, чтобы принять во внимание период обслуживания. Рекомендуется по крайней мере 15 минут между созданием или обновлением конфигурации обслуживания и запланированным временем начала.
Кроме того, убедитесь, что кластер работает, когда начинается запланированный период обслуживания. Если кластер остановлен, его контрольный план деактивирован, и никакие операции не могут быть выполнены.
Почему один из пулов агентов был обновлён вне периода обслуживания?
Если пул агентов не обновляется (например, так как бюджеты сбоев pod предотвратили его), он может быть обновлен позже за пределами периода обслуживания. Этот сценарий называется обновлением. Это позволяет избежать обновления пулов агентов на версию, отличающуюся от контрольной плоскости AKS.
Другая причина, из-за которой пул агентов может быть неожиданно обновлен, если не определена конфигурация обслуживания или если она была удалена. В этом случае кластер с автоматическим обновлением , но без конфигурации обслуживания обновляется в произвольное время (резервное расписание), что может быть нежелательной временной рамкой.
Существуют ли рекомендации по настройке обслуживания?
Мы рекомендуем задать расписание обновлений безопасности операционной системы узла на еженедельную периодичность, если вы используете NodeImage канал, так как новый образ узла поставляется каждую неделю. Вы также можете принять участие в канале SecurityPatch для получения ежедневных обновлений системы безопасности.
Вы можете настроить расписание автоматического обновления на ежемесячное время, чтобы оставаться в курсе политики поддержки Kubernetes N-2.
Подробное обсуждение лучших практик обновления и других аспектов смотрите в руководстве по исправлению и обновлению AKS.
Можно ли настроить все кластеры в одной подписке для использования одной конфигурации обслуживания?
Мы не рекомендуем использовать одну конфигурацию обслуживания для нескольких кластеров в одной подписке, так как это может привести к ошибкам регулирования ARM, что приводит к сбою обновления кластера. Вместо этого мы рекомендуем расставить периоды обслуживания в шахматном порядке для каждого кластера, чтобы избежать этих ошибок.
Почему пулы узлов были обновлены дважды во время одного периода обслуживания?
Если новая версия образа узла становится доступной во время периода обслуживания, AKS выполняет второе обновление, чтобы убедиться, что пулы узлов работают с последней версией. Это нормальное поведение и не указывает на проблему.
Связанный контент
Чтобы приступить к обновлению кластера AKS, ознакомьтесь с параметрами обновления кластеров AKS.