Руководство. Обновление Kubernetes в AKS с поддержкой Azure Arc

Область применения: AKS в Azure Stack HCI 22H2, AKS в Windows Server

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

В этом руководстве, часть 7 из семи, описывается обновление кластера Kubernetes. Вы узнаете, как:

  • Определение текущей и доступной версии Kubernetes.
  • Обновление версии Kubernetes узлов Kubernetes
  • Обновление версии ОС узлов Kubernetes
  • Обновление кластера Kubernetes до последней версии
  • Проверка успешного обновления.
  • Удаление кластера Kubernetes

Какие доступные варианты обновления?

Существует несколько типов обновлений, которые могут выполняться независимо друг от друга и в определенных поддерживаемых сочетаниях:

  • Обновите узел AKS до последней версии.
  • Обновите кластер рабочей нагрузки AKS до новой версии Kubernetes.
  • Обновите узлы контейнеров AKS до более новой версии операционной системы.
  • Объединенное обновление операционной системы и версии Kubernetes.

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

В примерах, приведенных в этом руководстве, предполагается, myclusterчто кластер рабочей нагрузки , в настоящее время использует Kubernetes версии 1.18.8 и использует версию операционной системы более 30 дней.

Подготовка к работе

В предыдущих руководствах вы узнали, как упаковать приложение в образ контейнера, отправить его в Реестр контейнеров Azure и создать кластер Kubernetes. Затем вы развернули приложение в кластере. Если вы еще не выполнили эти действия, начните с учебника 1. Создание образов контейнеров.

Обновление версии Kubernetes кластера рабочей нагрузки

Сначала необходимо обновить модули PowerShell и узел AKS, прежде чем обновлять версию Kubernetes.

Важно!

Обновление кластера рабочей нагрузки до более новой версии Kubernetes работает только в том случае, если целевая версия Kubernetes поддерживается текущей версией операционной системы. Чтобы проверка поддерживаемых сочетаний версий операционной системы и Kubernetes, используйте Get-AksHciUpdates команду .

Чтобы обновить версию Kubernetes, выполните следующие действия.

  1. Чтобы получить текущую версию кластера рабочей нагрузки, выполните следующую команду:

    Get-AksHciCluster
    
    ProvisioningState     : provisioned
    KubernetesVersion     : v1.20.7
    NodePools             : linuxnodepool
    WindowsNodeCount      : 0
    LinuxNodeCount        : 0
    ControlPlaneNodeCount : 1
    Name                  : mycluster   
    
  2. Чтобы получить доступные версии Kubernetes, выполните следующую команду:

    Get-AksHciKubernetesVersion
    
    OrchestratorType OrchestratorVersion OS      IsPreview
    ---------------- ------------------- --      ---------
    Kubernetes       v1.19.9             Linux       False
    Kubernetes       v1.19.11            Linux       False
    Kubernetes       v1.20.5             Linux       False
    Kubernetes       v1.20.7             Linux       False
    Kubernetes       v1.21.1             Linux       False
    Kubernetes       v1.19.9             Windows     False
    Kubernetes       v1.19.11            Windows     False
    Kubernetes       v1.20.5             Windows     False
    Kubernetes       v1.20.7             Windows     False
    Kubernetes       v1.21.1             Windows     False
    

    В выходных данных показаны версии Kubernetes и операционные системы, в которых эта версия доступна. Вы увидите, что доступны дополнительные версии обновления. Однако при обновлении кластеров нельзя пропускать версии. Например, версия 1.18.xx —> версия 1.19.xx разрешена, а v1.18.xx —> v1.20.xx — нет.

  3. Запуск обновления версии Kubernetes

    Чтобы обновить версию Kubernetes, выполните следующую команду:

    Update-AksHciCluster -name mycluster -kubernetesVersion v1.21.1
    

    Примечание

    Эта команда обновляет только существующие узлы кластера в кластере mycluster рабочей нагрузки до новой версии Kubernetes.

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

Важно!

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

Выполните действия, описанные в следующем примере, чтобы обновить версию ОС:

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

    Get-AksHciClusterUpdates -name mycluster
    
    details                             kubernetesversion                operatingsystemversion
    -------                             -----------------                ----------------------
    This is a patch kubernetes upgrade. (i.e v1.1.X  to v1.1.Y) v1.19.9  @{mariner=April 2021; windows=April 2021}
    This is a minor kubernetes upgrade. (i.e v1.X.1 to v1.Y.1)  v1.20.5  @{mariner=April 2021; windows=April 2021}
    
  2. Чтобы запустить обновление версии операционной системы, выполните следующую команду:

    Update-AksHciCluster -clusterName mycluster -kubernetesVersion v1.21.1 -operatingSystem
    

Обновление ос и версии Kubernetes

Важно!

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

В следующем примере предполагается, что доступна новая версия Kubernetes, а текущий номер версии — v1.20.7.

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

    Get-AksHciClusterUpdates -name mycluster
    
    details                             kubernetesversion                  operatingsystemversion
    -------                             -----------------                  ----------------------
    This is a patch kubernetes upgrade. (i.e v1.1.X  to v1.1.Y) v1.19.9    @{mariner=April 2021; windows=April 2021}
    This is a minor kubernetes upgrade. (i.e v1.X.1 to v1.Y.1)  v1.20.5    @{mariner=April 2021; windows=April 2021}
    
  2. Чтобы инициировать обновление кластера рабочей нагрузки, выполните следующую команду:

    Update-AksHciCluster -name mycluster -kubernetesVersion v1.21.1
    

Проверка обновления

Убедитесь, что обновление прошло успешно, используя команду Get-AksHciCluster , следующим образом:

Get-AksHciCluster -name mycluster

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

ProvisioningState     : provisioned
KubernetesVersion     : v1.21.1
NodePools             : linuxnodepool
WindowsNodeCount      : 0
LinuxNodeCount        : 0
ControlPlaneNodeCount : 1
Name                  : mycluster

Удаление кластера

Так как это руководство является последней частью серии, может потребоваться удалить кластер. Используйте команду Remove-AksHciCluster , чтобы удалить группу ресурсов, службу контейнеров и все связанные ресурсы:

Remove-AksHciCluster -name mycluster

Дальнейшие действия

В этом руководстве вы обновили Kubernetes в кластере Kubernetes в AKS, включенном Arc. Вы узнали, как:

  • Определение текущей и доступной версии Kubernetes.
  • Обновление версии Kubernetes узлов Kubernetes
  • Обновление версии ОС узлов Kubernetes
  • Обновление кластера Kubernetes до последней версии
  • Проверка успешного обновления.

Дополнительные сведения об AKS, включенном Azure Arc, см. в статье Обзор AKS и кластеры и рабочие нагрузки.