Руководство. Обновление кластера Служба Azure Kubernetes (AKS)

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

В этом руководстве, часть семь из семи, вы обновляете кластер AKS. Узнайте следующие темы:

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

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

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

При использовании Azure CLI в этом руководстве требуется Azure CLI версии 2.34.1 или более поздней. Чтобы узнать версию, выполните команду az --version. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0.

При использовании Azure PowerShell в этом руководстве требуется Azure PowerShell версии 5.9.0 или более поздней. Чтобы узнать версию, выполните команду Get-InstalledModule -Name Az. Если вам необходимо выполнить установку или обновление, см. статью об установке Azure PowerShell.

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

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

    az aks get-upgrades --resource-group myResourceGroup --name myAKSCluster
    

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

    {
      "agentPoolProfiles": null,
      "controlPlaneProfile": {
        "kubernetesVersion": "1.26.6",
        ...
        "upgrades": [
          {
            "isPreview": null,
            "kubernetesVersion": "1.27.1"
          },
          {
            "isPreview": null,
            "kubernetesVersion": "1.27.3"
          }
        ]
      },
      ...
    }
    

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

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

  • Добавляет новый буферный узел (или столько узлов, сколько настроено в максимальном всплеске) в кластер, на котором выполняется указанная версия Kubernetes.
  • Кордоны и очистка одного из старых узлов, чтобы свести к минимуму нарушения работы приложений. Если вы используете максимальный всплеск, он кордонирует и очищает столько узлов одновременно, сколько указанных буферных узлов.
  • Когда старый узел полностью осушен, он переимыслится для получения новой версии и становится буферным узлом для обновления следующего узла.
  • Этот процесс повторяется до тех пор, пока не будут обновлены все узлы в кластере.
  • В конце процесса удаляется последний буферный узел, поддерживая существующее число узлов агента и баланс зоны.

Примечание.

Если исправление не указано, кластер автоматически обновляется до последней версии последней общедоступной версии. Например, параметр --kubernetes-version для 1.21 получения результатов обновления 1.21.9кластера до .

Дополнительные сведения см. в статье Поддерживаемые обновления дополнительных версий Kubernetes в AKS.

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

Обновление кластера вручную

  • Обновите кластер с помощью az aks upgrade команды.

    az aks upgrade \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --kubernetes-version KUBERNETES_VERSION
    

    Примечание.

    Одновременно можно выполнить только одно обновление дополнительного номера версии. Например, можно выполнить обновление с версии 1.14.x до версии 1.15.x, но не удается выполнить обновление с версии 1.14.x до версии 1.16.x напрямую. Чтобы выполнить обновление с версии 1.14.x до версии 1.16.x, необходимо сначала выполнить обновление с версии 1.14.x до 1.15.x, а затем выполнить другое обновление с версии 1.15.x до 1.16.x.

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

    {
      "agentPoolProfiles": [
        {
          "count": 3,
          "maxPods": 110,
          "name": "nodepool1",
          "osType": "Linux",
          "vmSize": "Standard_DS1_v2",
        }
      ],
      "dnsPrefix": "myAKSClust-myResourceGroup-19da35",
      "enableRbac": false,
      "fqdn": "myaksclust-myresourcegroup-19da35-bd54a4be.hcp.eastus.azmk8s.io",
      "id": "/subscriptions/<Subscription ID>/resourcegroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster",
      "kubernetesVersion": "1.27.3",
      "location": "eastus",
      "name": "myAKSCluster",
      "type": "Microsoft.ContainerService/ManagedClusters"
    }
    

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

  • Задайте канал автоматического обновления в кластере az aks update с помощью команды с заданным параметром --auto-upgrade-channelpatch.

    az aks update --resource-group myResourceGroup --name myAKSCluster --auto-upgrade-channel patch
    

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

Обновление образов узлов AKS

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

Просмотр событий обновления

Примечание.

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

  • Всплеск: создание узла всплеска.
  • Очистка: вытеснение модулей pod с узла. Каждый модуль pod имеет пять минут времени ожидания для завершения вытеснения.
  • Обновление: обновление узла выполнено успешно или завершилось сбоем.
  • Удаление: удаление узла всплеска.
  • Просмотр событий обновления в пространствах имен по умолчанию с помощью kubectl get events команды.

    kubectl get events --field-selector source=upgrader
    

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

    ...
    default 2m1s Normal Drain node/aks-nodepool1-96663640-vmss000001 Draining node: [aks-nodepool1-96663640-vmss000001]
    ...
    default 9m22s Normal Surge node/aks-nodepool1-96663640-vmss000002 Created a surge node [aks-nodepool1-96663640-vmss000002 nodepool1] for agentpool %!s(MISSING)
    ...
    

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

  • Убедитесь, что обновление выполнено успешно с помощью az aks show команды.

    az aks show --resource-group myResourceGroup --name myAKSCluster --output table
    

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

    Name          Location    ResourceGroup    KubernetesVersion    CurrentKubernetesVersion  ProvisioningState    Fqdn
    ------------  ----------  ---------------  -------------------  ------------------------  -------------------  ----------------------------------------------------------------
    myAKSCluster  eastus      myResourceGroup  1.27.3               1.27.3                    Succeeded            myaksclust-myresourcegroup-19da35-bd54a4be.hcp.eastus.azmk8s.io
    

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

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

  • Удалите группу ресурсов, службу контейнеров и все связанные ресурсы с помощью az group delete команды.

    az group delete --name myResourceGroup --yes --no-wait
    

Примечание.

При удалении кластера субъект-служба Microsoft Entra, используемая кластером AKS, не удаляется. Инструкции по удалению субъекта-службы см. в разделе с дополнительными замечаниями. Если вы использовали управляемое удостоверение, удостоверение управляется платформой и не требует подготовки или смены секретов.

Следующие шаги

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

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

Дополнительные сведения об AKS см. в обзоре AKS. Рекомендации по созданию полных решений с помощью AKS см. в руководстве по решению AKS.