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


Обновление пулов узлов в службе Azure Kubernetes (AKS)

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

Замечание

Рекомендуется обновить все пулы узлов в кластере AKS до одной версии Kubernetes. Поведение по умолчанию [az aks upgrade][az-aks-upgrade] заключается в обновлении всех пулов узлов вместе с контрольной плоскостью для обеспечения согласованности. Возможность выполнять обновления отдельных пулов узлов позволяет проводить последовательное обновление и планировать перемещение подов между пулами узлов для поддержания времени работы приложения.

Обновление пула отдельных узлов

Замечание

Версия образа операционной системы (OS) пула узлов привязана к версии кластера Kubernetes. После обновления кластера вы получаете только обновления образа ОС.

  1. Проверьте наличие доступных обновлений с помощью команды [az aks get-upgrades][az-aks-get-upgrades].

    az aks get-upgrades --resource-group <resource-group-name> --name <cluster-name>
    
  2. Обновите определенный пул узлов с помощью команды [az aks nodepool upgrade][az-aks-nodepool-upgrade].

    az aks nodepool upgrade \
        --resource-group <resource-group-name> \
        --cluster-name <cluster-name> \
        --name <node-pool-name> \
        --kubernetes-version <kubernetes-version> \
        --no-wait
    
  3. Проверьте состояние пула узлов с помощью команды [az aks nodepool list][az-aks-nodepool-list].

    az aks nodepool list --resource-group <resource-group-name> --cluster-name <cluster-name>
    

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

    [
      {
        ...
        "count": 3,
        ...
        "name": "<node-pool-name>",
        "orchestratorVersion": "<kubernetes-version>",
        ...
        "provisioningState": "Upgrading",
        ...
        "vmSize": "Standard_DS2_v2",
        ...
      },
      {
        ...
        "count": 2,
        ...
        "name": "<node-pool-name-2>",
        "orchestratorVersion": "<kubernetes-version-2>",
        ...
        "provisioningState": "Succeeded",
        ...
        "vmSize": "Standard_DS2_v2",
        ...
      }
    ]
    

    Обновление узлов до указанной версии занимает несколько минут. После завершения обновления статус пула узлов provisioningState будет изменено на Успешно.

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

Кластер AKS имеет два объекта ресурсов кластера с версиями Kubernetes, связанными с ними: версия Kubernetes уровня управления кластером и пул узлов с версией Kubernetes.

Поведение обновления для пулов узлов и контрольной плоскости

Плоскость управления сопоставляется с одним или несколькими пулами узлов. Поведение операции обновления зависит от используемой команды Azure CLI и указанных флагов:

  • az aks upgrade обновляет контрольную плоскость и все пулы узлов в кластере до одной и той же версии Kubernetes.
  • az aks upgrade с флагом --control-plane-only выполняется обновление только контрольной плоскости кластера, оставляя все пулы узлов без изменений.
  • az aks nodepool upgrade обновляет только целевой пул узлов с указанной версией Kubernetes.

Правила валидации при обновлении

Замечание

Kubernetes использует стандартную схему управления версиями. См. раздел Семантическое управление версиями. Номер версии выражается в виде x. y. z, где x — основная версия, y — дополнительный номер версии, а z — версия исправления. Например, в версии 1.12.6, 1 является основной версией, 12 является дополнительной версией, а 6 — версией исправления. Версия Kubernetes плоскости управления и начальный пул узлов устанавливаются во время создания кластера. Другие пулы узлов получают свою версию Kubernetes при добавлении в кластер. Версии Kubernetes могут отличаться между пулами узлов и между пулом узлов и плоскостью управления.

Обновления Kubernetes для плоскости управления кластером и пулов узлов проверяются с помощью следующих наборов правил:

  • Правила для допустимых версий обновления пулов узлов:

    • Версия пула узлов должна иметь ту же основную версию, что и плоскость управления.
    • Версия минорная пула узлов должна находиться в пределах двух минорных версий версии контрольной плоскости.
    • Версия пула узлов не может быть больше версии контрольного major.minor.patch.
  • Правила отправки операции обновления:

    • Нельзя перейти на более раннюю версию уровня управления или пула узлов Kubernetes.
    • Если версия Kubernetes пула узлов не указана, поведение зависит от клиента. В шаблонах Azure Resource Manager (ARM) объявление возвращается к существующей версии, определенной для пула узлов. Если ничего не задано, он возвращается к версии плоскости управления.
    • Вы не можете одновременно отправлять несколько операций в одном уровне управления или ресурсе пула узлов. Вы можете обновить или масштабировать плоскость управления или пул узлов в определенное время.

Дальнейшие действия. Управление пулами узлов в AKS

Дополнительные сведения об управлении пулами узлов в AKS см. в статье "Управление пулами узлов" в службе Azure Kubernetes (AKS).