Руководство. Обновление кластера Служба 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-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
В следующем примере выходных данных показаны некоторые из перечисленных выше событий во время обновления:
... 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.