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


Обновление уровня управления кластером Службы 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.
  • Для выполнения операций обновления требуется роль RBAC Microsoft.ContainerService/managedClusters/agentPools/write. Дополнительные сведения о ролях Azure RBAC см. в операциях поставщика ресурсов Azure.
  • Начиная с версий Kubernetes версии 1.30 и 1.27 LTS, бета-интерфейсы API по умолчанию отключены при обновлении до них.

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

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

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

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

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

Подсказка

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

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

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

Уровень управления может опережать пулы узлов на две минорные версии. Например, если уровень управления равен 1.30.x, пулы узлов могут иметь значение 1.28.x, 1.29.x или 1.30.x.

Проверка доступных обновлений 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

  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 listaz-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 может инициировать поэтапное обновление пула узлов одновременно с обновлением плоскости управления, чтобы поддерживать соответствие и работоспособность кластера. Это обновление обычно происходит, когда предыдущее обновление узлов не удалось или узлы остались в смешанных версиях.

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

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

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

Обновление уровня управления обычно выполняется в течение 5–15 минут в зависимости от конфигурации кластера и загрузки региона Azure. Обновление пула узлов занимает больше времени, так как они включают очистку и повторное создание узлов.

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

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

Если az aks get-upgrades отображается отсутствие доступных обновлений, кластер может быть следующим:

  • Уже на последней поддерживаемой версии.
  • Версия, которая не поддерживается и требует миграции.

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

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

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

kubent

Обновите манифесты, чтобы использовать поддерживаемые версии API перед обновлением.