Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция отката версии пула узлов в Azure Kubernetes Service (AKS) позволяет вам восстановиться после непредвиденного поведения, возникающего в результате обновления версии Kubernetes. Если возникают проблемы, можно откатить пулы узлов до предыдущей версии Kubernetes и сочетания образов узлов, обеспечивая непрерывность бизнес-процессов и минимизируя время простоя. В этой статье объясняется, когда и как использовать функцию отката, ее возможности и ограничения, а также рекомендации по выполнению действий после отката.
Предпосылки
- Требуется Azure CLI версии 2.88.0 или более поздней. Найдите свою версию с помощью команды
az --version. Если необходимо установить или обновить, см. раздел Install Azure CLI. Расширениеaks-previewне требуется. - Версия API
2026-04-01или более поздняя.
Поддерживаемые возможности для отката версии узлового пула
Функция восстановления версии пула узлов поддерживает следующие возможности:
| Функция | Description |
|---|---|
| Вернуть версию | Восстанавливает версии образов kubernetes и узлов до предыдущего состояния. |
| Ручной триггер, автоматическое выполнение | Для отката требуется запуск вручную, но после активации система автоматически обрабатывает весь процесс отката без дальнейшего вмешательства. |
| Совместимость пула узлов | Работает со всеми типами пулов узлов, включая пулы виртуальных машин и пулы на основе наборов масштабирования виртуальных машин (VMSS). |
| Поддержка операционной системы | Совместима со всеми единицами хранения запасов операционной системы (OS), включая Ubuntu, Azure Linux и пулы Windows. |
| Упрощенный процесс | Управление моментальными снимками не требуется. |
Ограничения и соображения по откату пула узлов
При использовании функции отката узлового пула учитывайте следующие ограничения:
- Ограничено только изменениями версий. Другие изменения пула узлов не отменяются.
- Параллельные операции не разрешены во время отката.
- Перед откатом необходимо отключить канал автоматического обновления Kubernetes. Если канал обновления ОС узла включен, откат версии Kubernetes может продолжиться, но предыдущий образ узла может быть не восстановлен. Отключите канал обновления ОС узла, если необходимо откатить и версию Kubernetes, и образ узла.
- Доступно только через семь дней после завершения обновления.
- Невозможно выполнить непрерывные откаты к предыдущим нескольким версиям.
- Откат не поддерживает отмену изменений номера SKU ОС. Если вы изменили номер SKU ОС пула узлов (например, с Ubuntu на Azure Linux), откат пытается восстановить предыдущую версию образа узла, которая принадлежит другому номеру SKU ОС и отклоняется. Чтобы вернуть изменение номера SKU ОС, используйте
az aks nodepool update --os-skuвместо этого команду.
При использовании отката пула узлов следует учитывать следующие рекомендации.
| Последствия для безопасности | Рабочие соображения |
|---|---|
| * Уязвимость системы: откат устраняет исправления безопасности и обновления из более новой версии. Поэтому мы рекомендуем использовать откат только временно для разрешения проблем, а затем как можно скорее проводить повторное обновление. |
*
Нарушение работы службы: процесс отката может привести к временным прерываниям рабочей нагрузки. * Доступность ресурсов: Убедитесь в наличии достаточной емкости для операции отката. * Требования к тестированию: планируйте устранение базовых проблем перед попыткой обновления еще раз. |
Почему использовать откат изменений
Откат обеспечивает критически важный механизм восстановления для рабочих сред:
- Непрерывность бизнес-процессов: минимизация простоя при возникновении непредвиденных проблем
- Устранение рисков: быстрое восстановление известных хороших конфигураций без сложных процедур восстановления
- Упрощенное восстановление. Избегайте ручного вмешательства или перестроения кластеров из резервных копий
Когда следует использовать откат пула узлов
Рассмотрите возможность отката в качестве варианта восстановления в следующих сценариях:
- Сбои обновления возникают: проблемы инфраструктуры, ограничения ресурсов или проблемы совместимости препятствуют успешному обновлению.
- Сбой приложений: рабочие процессы испытывают критические сбои или повреждение данных на новых версиях Kubernetes.
- Снижение производительности: новые версии вызывают неприемлемую задержку, проблемы с пропускной способностью или потребление ресурсов.
- Пробелы в тестировании возникают: проблемы проявляются в производственной среде, которые не были обнаружены во время предварительного тестирования.
Процесс отката пула узлов
Диаграмма ниже иллюстрирует процесс отката пула узлов:
Процесс отката восстанавливает все узлы в пуле до их предыдущей версии. К ключевым аспектам рабочего процесса относятся:
- Подход "все или ничего": все узлы должны успешно вернуться к предыдущей версии, чтобы откат завершился успешно. Если ни одному из узлов не удается выполнить откат, вся операция прерывается, чтобы четко указать состояние кластера, подобно тому, как это происходит при операции обновления.
- Отслеживание прогресса: мониторинг состояния отката с помощью журнала активности Azure для истории операций и API статуса операций для обновлений в режиме реального времени.
Откат версии пула узлов
Это важно
При откате версии пула узлов следует учитывать следующие сведения:
- Оставаясь на старых версиях, увеличиваются риски для безопасности на длительный срок и в конечном итоге может помешать обновлению из-за ограничений несовместимости версий. Рассматривайте откат как временный механизм восстановления, а не постоянное решение.
- Откат изменений заменяет узлы в пуле узлов и может временно нарушить рабочие нагрузки. Прежде чем начать, убедитесь, что нагрузки имеют достаточно ресурсов и что бюджеты нарушений Pod допускают требуемые нарушения работы узлов.
- При использовании REST API можно сначала вызвать API-интерфейс Agent Pools - Get Upgrade Profile, чтобы получить недавно использованные версии. Используйте эту информацию для указания целевой версии в запросе на откат.
Команда отката Azure CLI автоматически выбирает последнюю записанную версию, также известную как N-1. Вы не можете использовать команду для выбора произвольной версии образа Kubernetes или узла, и вы не можете выполнить последовательные откаты для перемещения по нескольким предыдущим версиям.
Просмотрите конфигурацию автоматического обновления кластера.
az aks show \ --name myAKSCluster \ --resource-group myResourceGroup \ --query autoUpgradeProfileОтключите канал автоматического обновления Kubernetes перед откатом. Если необходимо восстановить предыдущий образ узла, отключите канал обновления ОС узла.
Просмотрите доступную цель отката с помощью команды
az aks nodepool get-rollback-versions.az aks nodepool get-rollback-versions \ --name myNodePool \ --resource-group myResourceGroup \ --cluster-name myAKSClusterЕсли команда не возвращает ни одной версии, пул узлов не имеет подходящего целевого объекта отката. Пул узлов должен был быть обновлен в течение предыдущих семи дней, и записанная версия Kubernetes по-прежнему должна поддерживаться AKS.
Откатите пул узлов с помощью команды
az aks nodepool rollback.az aks nodepool rollback \ --name myNodePool \ --resource-group myResourceGroup \ --cluster-name myAKSClusterПроверьте версию Kubernetes, версию образа узла и состояние подготовки ресурсов после завершения отката.
az aks nodepool show \ --name myNodePool \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --query '{provisioningState:provisioningState,kubernetesVersion:currentOrchestratorVersion,nodeImageVersion:nodeImageVersion}'Успешный откат возвращает
SucceededдляprovisioningStateи отображает записанные версии Kubernetes и образа узла.
Если вы изменили параметры автоматического обновления кластера перед откатом, восстановите нужные параметры после изучения и устранения проблемы с обновлением.
Следить за статусом отката пула узлов
Для мониторинга состояния операции отката пула узлов и проверки успешности отката можно использовать следующие методы:
- Найдите журналы действий в вашем кластере.
- Найдите конкретные события, связанные с обновлением на своём кластере.
- Подпишитесь на события AKS с помощью Сетка событий Azure.
- При подписке на канал автоматического обновления можно использовать AKS Communication Manager для уведомлений об обновлении.
Устранение неполадок с откатом пула узлов
В следующей таблице описываются распространенные проблемы с откатом и способы их устранения.
| Проблема | Причина и разрешение |
|---|---|
| Версии отката не возвращаются. | Пул узлов может не иметь записанного обновления, 7-дневное окно отката, возможно, истекло или предыдущая версия Kubernetes больше не поддерживается. Проверьте журнал обновления пула узлов и политику поддержки версий AKS Kubernetes. |
| AKS сообщает, что выполняется другая операция. | Дождитесь завершения текущей операции кластера или пула узлов, прежде чем повторить откат. Если необходимо остановить операцию, используйте команду az aks nodepool operation-abort. |
| Версия Kubernetes откатывается, но образ узла не откатывается. | Канал обновления ОС узла может быть включен. Отключите канал, когда необходимо восстановить предыдущий образ узла. |
| AKS откатывает предыдущую версию образа узла. | Номер SKU ОС пула узлов, возможно, изменился со времени зафиксированной версии. Откат не поддерживает отмену изменений номера SKU ОС. Вместо этого используйте az aks nodepool update --os-sku для восстановления SKU ОС. |
| AKS не поддерживает предыдущую версию Kubernetes. | Сохранённая версия может больше не поддерживаться. Проверьте политику поддержки версий AKS Kubernetes. |
Рекомендации по лучшим практикам после отката
После успешного отката пула узлов используйте следующие рекомендации для обеспечения стабильности и безопасности:
- Изучите первопричину: определите, почему обновление завершилось сбоем перед попыткой другого обновления. Просмотрите журналы приложений, метрики ресурсов и требования к совместимости.
- Тестирование в нерабокой среде. Проверьте более новую версию в среде разработки или промежуточной среды, чтобы воспроизвести и устранить проблемы перед обновлением рабочей среды еще раз.
-
Запланируйте повторное обновление: не оставайтесь на откатной версии на неопределенный срок. Запланируйте повторное обновление для поддержания исправлений безопасности и поддержки:
- Для критических проблем с безопасностью: повторное обновление в течение нескольких дней после проверки исправлений.
- Для проблем совместимости приложений: повторное обновление в течение нескольких недель после корректировки кода.
- Максимальный рекомендуемый период времени: 30 дней, чтобы избежать накопления уязвимостей безопасности.
Часто задаваемые вопросы
Можно ли выполнять другие операции во время возврата пула узлов к предыдущему состоянию?
Нет, откат должен завершиться перед запуском других операций. Чтобы выполнить различные операции, сначала прервите откат.
Восстанавливает ли откат пула узлов как версию Kubernetes, так и образ узла?
Да, откат возвращается к последней используемой версии Kubernetes и соответствующему образу узла. Если оба компонента изменились, система восстанавливает предыдущую версию Kubernetes с последним совместимым образом узла для этой версии.
Можно ли откатить только образ узла, не изменив версию пула узлов?
Да, если вы выполнили обновление образа узла за последние семь дней (без обновления версии пула узлов), откат позволяет восстановить прежний образ виртуального жесткого диска (VHD), сохраняя ту же версию Kubernetes.
Можно ли вернуться к версии, которая больше не поддерживается?
Нет, вы не можете откатить версию Kubernetes, которая больше не поддерживается службой AKS. Например, если пул узлов был в версии 1.27.9 (теперь не поддерживается) и вы обновили до версии 1.28.5, вы не можете откатить до версии 1.27.9, так как она больше не находится в поддерживаемом списке версий. Всегда проверяйте политику поддержки версий AKS Kubernetes , чтобы проверить доступность версий.
По той же причине вы не можете откатить обновление, инициированное платформой. Когда AKS обновляет кластер с неподдерживаемой версии, предыдущая версия больше не доступна.
Нужно ли отключить автоматическое обновление перед откатом пула узлов?
Да, перед выполнением отката необходимо отключить канал автоматического обновления Kubernetes. Если включить только канал обновления ОС узла, откат версии Kubernetes может быть выполнен, но предыдущий образ узла может быть не восстановлен. Отключите канал обновления ОС узла, если необходимо откатить и версию Kubernetes, и образ узла.
Если кластер включен в группу обновлений в профиле автоматического обновления Kubernetes Fleet Manager Azure, необходимо также удалить кластер из группы обновлений перед выполнением отката. В противном случае процесс автоматического обновления может автоматически обновить пул узлов после завершения отката.
Можно ли возвратиться к предыдущему состоянию после изменения редакции ОС (например, с Ubuntu на Azure Linux)?
Нет. Откат пула узлов ограничен изменениями версий и не отменяет изменения номера SKU ОС. После миграции с одного номера SKU ОС на другой (например, Ubuntu на Azure Linux), предыдущая версия образа узла принадлежит старому номеру SKU ОС и несовместима с текущей конфигурацией. Операция отката отклоняет предыдущую версию образа с ошибкой, аналогичной следующей:
NodeImageVersion 'AKSUbuntu-2204gen2containerd-202602.13.5' is not accepted. NodeImageVersion can only be current version 'AKSAzureLinux-V3gen2-202602.13.5' or 'latest'
Чтобы вернуть номер SKU ОС, используйте az aks nodepool update команду с параметром --os-sku . Дополнительные сведения см. в статье «Откат версии ОС».
Связанный контент
Дополнительные сведения об обновлениях пула узлов в AKS см. в следующих статьях: