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

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

Перед тем как начать

  • Если вы используете Azure CLI, для этой статьи требуется Azure CLI версии 2.34.1 или более поздней. Используйте команду az --version для поиска версии. Если вам нужно установить или обновить, см. статью "Установка Azure CLI".
  • Если вы используете Azure PowerShell, для этой статьи требуется Azure PowerShell версии 5.9.0 или более поздней. Используйте командлет Get-InstalledModule -Name Az для поиска версии. Если вам необходимо выполнить установку или обновление, см. статью об установке Azure PowerShell.
  • Для выполнения операций обновления требуется роль участника Служба Azure Kubernetes или эквивалентные разрешения.
  • Бета-api отключены по умолчанию при обновлении до Kubernetes версии 1.30 и 1.27 LTS.

Предупреждение

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

Общие сведения о типах обновления AKS

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

Тип обновления Scope Сценарий использования
Только плоскость управления Сервер API и т. д., диспетчер контроллеров, планировщик Тестирование новых API Kubernetes перед обновлением рабочих нагрузок
Полный кластер Плоскость контроля и все пулы узлов Стандартное обновление для поддержания актуальности кластера
Только пул узлов Конкретные пулы узлов Поэтапное развертывание после обновления контрольной плоскости

Подсказка

Обновление плоскости управления сначала позволяет проверить совместимость API Kubernetes, прежде чем влиять на выполнение рабочих нагрузок. Стратегии обновления пула узлов см. в разделе "Настройка последовательного обновления".

Правила обновления версий Kubernetes

При обновлении поддерживаемого кластера AKS, отличного от LTS, нельзя пропускать дополнительные версии Kubernetes. Необходимо выполнить все обновления последовательно по номеру младшей версии. Например, разрешены обновления между 1.28.x ->1.29.x или 1.29.x ->1.30.x . 1.28.x ->1.30.x не разрешено.

Кластер LTS может пропускать дополнительные версии при переходе на более высокую версию LTS, предлагаемую AKS, при условии, что обновление удовлетворяет требованиям к исправлению версий и проверкам. Дополнительные сведения см. в статье "Можно ли пропустить несколько версий AKS во время обновления кластера?".

Начиная с Kubernetes 1.28, плоскость управления может быть до трех дополнительных версий перед пулами узлов. Например, если уровень управления равен 1.35.x, пулы узлов могут иметь значение 1.32.x, 1.33.x, 1.34.x или 1.35.x. Сведения о текущих ограничениях см. в политике отклонений версий AKS.

Проверка доступных обновлений AKS

Подсказка

Чтобы оставаться в курсе последних выпусков и обновлений AKS, см. средство отслеживания выпусков AKS.

Проверьте наличие доступных выпусков Kubernetes для кластера AKS с помощью az aks get-upgrades команды.

az aks get-upgrades --resource-group <resource-group-name> --name <cluster-name> --output table

В следующем примере выходных данных показана текущая версия как 1.28.9 и перечислены доступные версии в разделе upgrades:

Name     ResourceGroup          MasterVersion    Upgrades
-------  ---------------        ---------------  --------------
default  <resource-group-name>  1.28.9           1.29.2, 1.29.4

Обновите только управляющую плоскость AKS

Important

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

  1. Обновите плоскость управления с помощью az aks upgrade команды с флагом --control-plane-only . В следующем примере уровень управления обновляется до Kubernetes версии 1.29.4:

    az aks upgrade \
        --resource-group <resource-group-name> \
        --name <cluster-name> \
        --kubernetes-version 1.29.4 \
        --control-plane-only
    
  2. Убедитесь, что обновление уровня управления успешно выполнено с помощью команды az aks show.

    az aks show --resource-group <resource-group-name> --name <cluster-name> --output table
    

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

    Name            Location    ResourceGroup          KubernetesVersion    ProvisioningState    Fqdn
    ------------    ----------  ---------------        -------------------  -------------------  ------------------------------------------------
    <cluster-name>  eastus      <resource-group-name>  1.29.4               Succeeded            <cluster-name>-dns-123abcd4.hcp.eastus.azmk8s.io
    
  3. Убедитесь, что версии пула узлов остаются неизменными с помощью az aks nodepool list команды.

    az aks nodepool list --resource-group <resource-group-name> --cluster-name <cluster-name> --query "[].{Name:name,Version:orchestratorVersion}" --output table
    

    В выходных данных пулы узлов по-прежнему должны отображать предыдущую версию Kubernetes.

Обновление полного кластера AKS

Замечание

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

Обновите полный кластер (плоскость управления и все пулы узлов) с помощью az aks upgrade команды. В следующем примере кластер обновляется до Kubernetes версии 1.29.4:

az aks upgrade \
    --resource-group <resource-group-name> \
    --name <cluster-name> \
    --kubernetes-version 1.29.4

Часто задаваемые вопросы об обновлении уровня управления AKS (часто задаваемые вопросы)

Обновляет ли пулы узлов только на уровне управления?

Нет. Обновление только на уровне управления не изменяет пулы узлов. Автоматическое обновление кластера работает по-разному: он не поддерживает обновления только на уровне управления и обновляет плоскость управления и все пулы узлов вместе.

Можно ли обновить пулы узлов до обновления плоскости управления?

Нет. Версия плоскости управления всегда должна быть равной или больше версии любого пула узлов. Сначала необходимо обновить плоскость управления.

Сколько времени занимает обновление плоскости управления?

Длительность обновления зависит от состояния кластера и условий Azure. Мониторинг provisioningState использования az aks show или Get-AzAksCluster. Обновление завершается после состояния Succeededподготовки.

Устранение проблем с обновлением контрольной плоскости

Нет доступных обновлений

Для неподдерживаемого кластера используйте az aks get-upgrades проверку того, предлагает ли AKS подходящий поддерживаемый целевой объект. Если целевой объект доступен, выполните полное обновление кластера. Обновления только на уровне управления не поддерживаются для этого пути восстановления.

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

Сбой обновления из-за устаревших API

Перед обновлением проверьте устаревшие API с помощью таких средств, как kube-no-trouble (kubent):

kubent

Команда сканирует ресурсы, доступные в текущем контексте kubeconfig для устаревших версий API Kubernetes. Выходные данные группируются по версии Kubernetes и определяют каждый затронутый ресурс , KINDNAMESPACENAMEи .API_VERSION Обновите исходный манифест для каждого указанного ресурса, чтобы использовать поддерживаемую версию API перед обновлением.