Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В рамках жизненного цикла приложения и кластера может потребоваться обновить до последней доступной версии 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.
- Кордоны и очистка одного из старых узлов, чтобы свести к минимуму нарушения работы приложений. Если вы используете максимальную вспышку, он одновременно блокирует и освобождает столько узлов, сколько это соответствует числу указанных буферных узлов.
- Когда старый узел полностью освобожден от данных, он перезаписывается для установки новой версии и становится буфером для следующего обновляемого узла.
- Этот процесс повторяется до тех пор, пока не будут обновлены все узлы в кластере.
- В конце процесса удаляется последний буферный узел, поддерживая существующее число узлов агента и баланс зоны.
Примечание.
Если исправление не указано, кластер автоматически обновляется до последнего GA выпущенного исправления указанной минорной версии. Например, установка --kubernetes-version
на 1.28
приводит к обновлению кластера до 1.28.9
.
Для получения дополнительной информации см. Поддерживаемые обновления минорных версий 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.westus2.azmk8s.io", "id": "/subscriptions/<Subscription ID>/resourcegroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster", "kubernetesVersion": "1.29.2", "location": "westus2", "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 westus2 myResourceGroup 1.29.2 1.29.2 Succeeded myaksclust-myresourcegroup-19da35-bd54a4be.hcp.westus2.azmk8s.io
Удаление кластера
Так как это руководство является последней частью серии, вы можете захотеть удалить кластер AKS, чтобы избежать расходов в Azure.
Удалите группу ресурсов, службу контейнеров и все связанные ресурсы с помощью
az group delete
команды.az group delete --name myResourceGroup --yes --no-wait
Примечание.
При удалении кластера субъект-служба Microsoft Entra, используемая кластером AKS, не удаляется. Инструкции по удалению доверенного лица службы см. в разделе Учётные записи службы AKS: соображения и удаление. Если вы использовали управляемую идентификацию, идентификация управляется платформой и не требует настройки или смены секретов.
Следующие шаги
В этом руководстве вы обновили Kubernetes в кластере AKS. Вы научились выполнять следующие задачи:
- Определите текущие и доступные версии Kubernetes.
- Обновите узлы Kubernetes.
- Проверка успешного обновления.
Дополнительные сведения об AKS см. в обзоре AKS. Рекомендации по созданию полных решений с помощью AKS см. в руководстве по решению AKS.
Azure Kubernetes Service