Руководство. Обновление кластера Служба 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.28.9 и перечислены доступные версии в разделе
upgrades
:{ "agentPoolProfiles": null, "controlPlaneProfile": { "kubernetesVersion": "1.28.9", ... "upgrades": [ { "isPreview": null, "kubernetesVersion": "1.29.4" }, { "isPreview": null, "kubernetesVersion": "1.29.2" } ] }, ... }
Обновление кластера AKS
Узлы AKS тщательно оцеплены и стекаются, чтобы свести к минимуму возможные нарушения работы приложений. В ходе этого процесса AKS выполняет следующие действия:
- Добавляет новый буферный узел (или столько узлов, сколько настроено в максимальном всплеске) в кластер, на котором выполняется указанная версия Kubernetes.
- Кордоны и очистка одного из старых узлов, чтобы свести к минимуму нарушения работы приложений. Если вы используете максимальный всплеск, он кордонирует и очищает столько узлов одновременно, сколько указанных буферных узлов.
- Когда старый узел полностью осушен, он переимыслится для получения новой версии и становится буферным узлом для обновления следующего узла.
- Этот процесс повторяется до тех пор, пока не будут обновлены все узлы в кластере.
- В конце процесса удаляется последний буферный узел, поддерживая существующее число узлов агента и баланс зоны.
Примечание.
Если исправление не указано, кластер автоматически обновляется до последней общедоступной версии исправления указанной дополнительной версии. Например, параметр --kubernetes-version
для 1.28
получения результатов обновления 1.28.9
кластера до .
Дополнительные сведения см. в статье Поддерживаемые версии Kubernetes в Службе Azure Kubernetes (AKS).
Вы можете вручную обновить кластер или настроить автоматическое обновление кластера. Мы рекомендуем настроить автоматическое обновление кластера, чтобы убедиться, что кластер всегда работает с последней версией Kubernetes.
Обновление кластера вручную
Обновите кластер с помощью
az aks upgrade
команды.az aks upgrade \ --resource-group myResourceGroup \ --name myAKSCluster \ --kubernetes-version KUBERNETES_VERSION
Вам будет предложено подтвердить операцию обновления и подтвердить, что вы хотите обновить плоскость управления и все пулы узлов до выбранной версии Kubernetes:
Are you sure you want to perform this operation? (y/N): y Since control-plane-only argument is not specified, this will upgrade the control plane AND all nodepools to version 1.29.2. Continue? (y/N): y
Примечание.
Одновременно можно выполнить только одно обновление дополнительного номера версии. Например, можно выполнить обновление с версии 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.29.2. Обратите внимание,
kubernetesVersion
что теперь отображается 1.29.2:{ ... "agentPoolProfiles": [ { ... "count": 3, "currentOrchestratorVersion": "1.29.2", "maxPods": 110, "name": "nodepool1", "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202405.27.0", "orchestratorVersion": "1.29.2", "osType": "Linux", "upgradeSettings": { "drainTimeoutInMinutes": null, "maxSurge": "10%", "nodeSoakDurationInMinutes": null, "undrainableNodeBehavior": null }, "vmSize": "Standard_DS2_v2", ... } ], ... "currentKubernetesVersion": "1.29.2", "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.29.2", "location": "eastus", "name": "myAKSCluster", "type": "Microsoft.ContainerService/ManagedClusters" ... }
Настройка автоматического обновления кластера
Задайте канал автоматического обновления в кластере
az aks update
с помощью команды с заданным параметром--auto-upgrade-channel
patch
.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
В следующем примере выходных данных показаны некоторые из перечисленных выше событий во время обновления:
LAST SEEN TYPE REASON OBJECT MESSAGE ... 5m Normal Drain node/aks-nodepool1-96663640-vmss000000 Draining node: aks-nodepool1-96663640-vmss000000 5m Normal Upgrade node/aks-nodepool1-96663640-vmss000000 Deleting node aks-nodepool1-96663640-vmss000000 from API server 4m Normal Upgrade node/aks-nodepool1-96663640-vmss000000 Successfully reimaged node: aks-nodepool1-96663640-vmss000000 4m Normal Upgrade node/aks-nodepool1-96663640-vmss000000 Successfully upgraded node: aks-nodepool1-96663640-vmss000000 4m Normal Drain node/aks-nodepool1-96663640-vmss000000 Draining node: aks-nodepool1-96663640-vmss000000 ...
Проверка обновления
Убедитесь, что обновление выполнено успешно с помощью
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.29.2 1.29.2 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.
Azure Kubernetes Service