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


Автоматическое обновление кластера Службы Azure Kubernetes (AKS)

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

Примечание.

Любая операция обновления, выполняемая вручную или автоматически, обновляет версию образа узла, если она еще не установлена в последней версии. Новейшая версия обусловлена полноценным выпуском AKS и может быть определена путем посещения трекера релизов AKS.

Автоматическое обновление сначала обновляет плоскость управления, а затем обновляет пулы агентов по одному.

Почему используйте автоматическое обновление кластера

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

AKS следует строгому окну управления версиями поддержки. При правильном выборе каналов автоматического обновления можно избежать попадания кластеров в неподдерживаемую версию. Дополнительные сведения об окне поддержки AKS см. в разделе «Малые версии по псевдонимам».

Инициированное клиентом автоматическое обновление против автоматического обновления AKS

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

AKS также инициирует автоматическое обновление для неподдерживаемых кластеров. Если версия кластера уменьшается до n-3 (где n является последней поддерживаемой дополнительной версией AKS GA) и она вот-вот упадет до n-4, AKS автоматически обновляет кластер до n-2, чтобы соответствовать политике поддержки AKS. Автоматическое обновление поддерживаемого кластера платформы до поддерживаемой версии включено по умолчанию. Остановленные пулы узлов обновляются во время операции автоматического обновления. Обновление применяется к узлам при запуске пула узлов. Чтобы свести к минимуму нарушения, настройте периоды обслуживания.

Ограничения автоматического обновления кластера

Если вы используете автоматическое обновление кластера, вы больше не сможете сначала обновить плоскость управления, а затем обновить отдельные пулы узлов. Автоматическое обновление кластера всегда синхронно обновляет плоскость управления и пулы узлов. Вы не можете обновить только плоскость управления. При выполнении az aks upgrade --control-plane-only команды возникает следующая ошибка:

NotAllAgentPoolOrchestratorVersionSpecifiedAndUnchanged: Using managed cluster api, all Agent pools' OrchestratorVersion must be all specified or all unspecified. If all specified, they must be stay unchanged or the same with control plane.

Если используется канал автоматического node-image обновления кластера, который теперь является устаревшим и больше не должен использоваться, или NodeImage канал автоматического обновления образа узла, автоматические обновления без участия пользователя для Linux по умолчанию отключены.

Каналы автоматического обновления кластера

Автоматически завершенные обновления функционально совпадают с обновлениями вручную. Выбранный канал автоматического обновления определяет время обновления. При внесении изменений в автообновление, дайте 24 часа, чтобы изменения вступили в силу. Автоматическое обновление кластера выполняется так же, как и обновление кластера вручную. Дополнительные сведения см. в статье Обновление кластера службы Azure Kubernetes (AKS).

Доступны следующие каналы обновления.

Канал Действие Пример
none отключает автоматическое обновление и сохраняет кластер в текущей версии Kubernetes. Значение по умолчанию, если его не менять.
patch автоматически обновляет кластер до последней поддерживаемой версии патча, когда она становится доступной, при сохранении той же минорной версии. Например, если кластер работает с версией 1.17.7 и версиями 1.17.9, 1.18.4, 1.18.6 и 1.19.1 , кластер обновляется до версии 1.17.9.
stable автоматически обновляет кластер до последнего поддерживаемого патча на минорной версии N-1, где N является последней поддерживаемой минорной версией. Например, если кластер работает с версией 1.17.7 и версиями 1.17.9, 1.18.4, 1.18.6 и 1.19.1, кластер обновляется до версии 1.18.6.
rapid автоматически обновляет кластер до последнего поддерживаемого патча на последней поддерживаемой минорной версии. В случаях, когда версия Kubernetes кластера является минорной версией N-2, где N — это последняя поддерживаемая минорная версия, кластер сначала обновляется до последней поддерживаемой патч-версии для минорной версии N-1. Например, если кластер работает с версией 1.17.7 и версиями 1.17.9, 1.18.4, 1.18.6 и 1.19.1, кластер сначала обновляется до версии 1.18.6, а затем обновляется до версии 1.19.1.
node-image(устаревшая версия) автоматически обновляет образ узла до последней доступной версии. Корпорация Майкрософт предоставляет исправления и новые образы для узлов образов часто (еженедельно), но запущенные узлы не получают новые образы, если только не выполняется обновление образа узла. Активировав канал образов узла, вы автоматически обновляете изображения узлов всякий раз, когда доступна новая версия. Если вы используете этот канал, Linux [автоматические обновления] отключены по умолчанию. Обновления образов узлов работают с устаревшими версиями патчей, если минорная версия Kubernetes все еще поддерживается. Этот канал больше не рекомендуется и планируется для отмены в будущем. Чтобы получить параметр, который может автоматически обновлять образы узлов, см. канал NodeImage в автоматическом обновлении образа узла.

Примечание.

При использовании автоматического обновления кластера следует учитывать следующие сведения:

  • Автоматическое обновление кластера происходит только до версий общего доступа Kubernetes и не обновляется до предварительных версий.

  • С помощью AKS можно создать кластер без указания точной версии исправления. При создании кластера без назначения исправления кластер запускает последнюю GA-версию исправлений для минорной версии. Чтобы узнать больше, см. окно поддержки AKS.

  • Для автоматического обновления требуется, чтобы версия Kubernetes кластера была в окне поддержки AKS, даже при использовании node-image канала.

  • Если вы используете API 11-02-preview предварительной версии или более поздней версии, а затем выберите канал автоматического node-image обновления кластера, автоматически задается канал автоматического обновления NodeImage.

  • Каждый кластер может быть связан только с одним каналом автоматического обновления. Причина заключается в том, что указанный канал определяет версию Kubernetes, которая выполняется в кластере.

Используйте автоматическое обновление кластера для нового кластера AKS

Задайте канал автоградации при создании нового кластера с помощью az aks create команды и auto-upgrade-channel параметра.

az aks create \
  --resource-group <resource-group-name> \
  --name <cluster-name> \
  --auto-upgrade-channel stable \
  --generate-ssh-keys

Использование автоматического обновления кластера с существующим кластером AKS

Задайте канал автообновления в существующем кластере при помощи команды az aks update с параметром auto-upgrade-channel.

az aks update \
  --resource-group <resource-group-name> \
  --name <cluster-name> \
  --auto-upgrade-channel stable

Результаты:

{
  "id": "/subscriptions/aaaa6a6a-bb7b-cc8c-dd9d-eeeeee0e0e0e/resourceGroups/myResourceGroupabc123/providers/Microsoft.ContainerService/managedClusters/myAKSCluster",
  "properties": {
    "autoUpgradeChannel": "stable",
    "provisioningState": "Succeeded"
  }
}

Использовать автообновление с запланированным обслуживанием

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

Примечание.

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

Дополнительную информацию о том, как установить окно обслуживания с помощью функции Планового Обслуживания, можно найти в разделе Использование планового обслуживания для планирования периодов обслуживания в кластере Azure Kubernetes Service (AKS).

Лучшие практики автоматического обновления кластера

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

  • Чтобы убедиться, что кластер всегда находится в поддерживаемой версии, например в рамках правила N-2, выберите либо stable, либо rapid каналы.
  • Если вы заинтересованы в получении последних исправлений как можно скорее, используйте канал patch.
  • Чтобы автоматически обновить образы узлов при использовании другого канала обновления кластера, рассмотрите возможность использования канала автоматическогоNodeImage обновления образа узла.
  • Следуйте рекомендациям для оператора.
  • Следуйте рекомендациям podDisruptionBudget (PDB).
  • Сведения об устранении неполадок обновления см. в документации по устранению неполадок AKS.

Для подробного обсуждения рекомендаций по обновлению и других условий, см. руководство по исправлению и обновлению AKS.