Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как настраивать политику нарушения работы узлов и управлять ею, чтобы определять, когда в кластере Azure Kubernetes Service (AKS) разрешены операции, требующие переустановки образа узла и инициирующие повторное развертывание узлов.
Необходимые условия
- Ознакомьтесь с обзором политики прерывания узла , чтобы узнать, как работает политика прерывания узла и операции, связанные с политикой прерывания узла.
- Azure CLI версии 2.76.0 или более поздней версии, установленной и настроенной. Чтобы найти версию CLI, выполните
az --versionкоманду. Если необходимо установить или обновить, см. раздел Install Azure CLI. - Существующий кластер AKS или можно создать новый с настроенной политикой прерывания узлов.
-
aks-previewУстановите расширение Azure CLI и зарегистрируйте предварительную версию политики прерывания узла.
Important
Предварительные версии функций AKS доступны на условиях самообслуживания и по выбору пользователя. Предварительные версии предоставляются "как есть" и "при наличии". На них не распространяются соглашения об уровне обслуживания и ограниченная гарантия. Предварительные версии AKS сопровождаются частичной поддержкой клиентов на основе принципа лучших усилий. Как таковые, эти функции не предназначены для использования в производстве. Для получения дополнительной информации ознакомьтесь со следующими статьями поддержки:
Установите расширение aks-preview Azure CLI
aks-previewУстановите расширение с помощьюaz extension addкоманды.az extension add --name aks-previewОбновите до последней версии расширения с помощью
az extension updateкоманды.az extension update --name aks-preview
Зарегистрировать функцию предварительной версии политики прерывания узла
Зарегистрируйте предварительную функцию Node Disruption Policy с помощью команды az feature register.
az feature register --namespace "Microsoft. ContainerService" --name "NodeDisruptionProfile"
В течение нескольких минут состояние отображается как зарегистрированное.
Настройка политики прерывания узлов в новом кластере
Создайте новый кластер AKS с политикой прерывания узла, настроенной с помощью az aks create команды с --node-disruption-policy параметром, заданным для одной из следующих конфигураций политик: Allow (по умолчанию) AllowDuringMaintenanceWindowили Block.
Разрешить разрушительные операции в любое время (по умолчанию)
az aks create \
--resource-group myResourceGroup \
--name myAKSCluster \
--node-count 3 \
--node-disruption-policy Allow \
--generate-ssh-keys
Разрешить разрушительные операции только во время периодов обслуживания
az aks create \
--resource-group myResourceGroup \
--name myAKSCluster \
--node-count 3 \
--node-disruption-policy AllowDuringMaintenanceWindow \
--generate-ssh-keys
Important
При использовании AllowDuringMaintenanceWindow обязательно настройте окно обслуживания aksManagedNodeOSUpgradeSchedule. Конфигурация обслуживания может задать расписание прямо в конфигурации или ссылаться на общее окно обслуживания. В противном случае операции, нарушающие работу, разрешены на неограниченный срок. Дополнительные сведения см. в статье "Использование планового обслуживания для планирования и управления обновлениями для кластера Служба Azure Kubernetes".
Блокировать все разрушительные операции
az aks create \
--resource-group myResourceGroup \
--name myAKSCluster \
--node-count 3 \
--node-disruption-policy Block \
--generate-ssh-keys
Обновить политику сбоев узлов в существующем кластере
Обновите политику прерывания узла в существующем кластере AKS с помощью az aks update команды с --node-disruption-policy параметром, заданным для одной из следующих конфигураций политик: Allow (по умолчанию) AllowDuringMaintenanceWindowили Block.
Измените политику, чтобы разрешить операции в периоды технического обслуживания
az aks update \
--resource-group myResourceGroup \
--name myAKSCluster \
--node-disruption-policy AllowDuringMaintenanceWindow
Изменение политики для блокировки всех разрушительных операций
az aks update \
--resource-group myResourceGroup \
--name myAKSCluster \
--node-disruption-policy Block
Снова измените политику, чтобы разрешить выполнение операций в любое время
az aks update \
--resource-group myResourceGroup \
--name myAKSCluster \
--node-disruption-policy Allow
Проверьте конфигурацию политики прерывания работы узла
Проверьте конфигурацию политики прерывания узла с помощью az aks show команды.
az aks show \
--resource-group myResourceGroup \
--name myAKSCluster \
--query "nodeDisruptionProfile.nodeDisruptionPolicy" \
--output tsv
Выходные данные показывают текущий параметр политики, например Allow, AllowDuringMaintenanceWindowили Block.
Обработка заблокированных операций
Когда политика нарушения работы узлов блокирует операцию, нарушающую работу, вы можете дождаться окна обслуживания или временно изменить политику.
Дождитесь периода обслуживания
Если вы используете AllowDuringMaintenanceWindow, запланируйте операцию во время следующего периода обслуживания. Вы можете просмотреть настроенные окна обслуживания с помощью команды az aks maintenanceconfiguration list.
az aks maintenanceconfiguration list \
--resource-group myResourceGroup \
--cluster-name myAKSCluster
Временно изменить политику
Обновите политику до
Allowс помощью командыaz aks update, задав для--node-disruption-policyзначениеAllow.az aks update \ --resource-group myResourceGroup \ --name myAKSCluster \ --node-disruption-policy AllowВыполните операцию с прерыванием работы. В следующем примере показано, как обновить пользовательские сертификаты CA с помощью команды
az aks update:az aks update \ --resource-group myResourceGroup \ --name myAKSCluster \ --custom-ca-trust-certificates <path-to-certificate-file>Восстановите исходную политику с помощью
az aks updateкоманды. В следующем примере показано, как восстановить--node-disruption-policyдоBlock:az aks update \ --resource-group myResourceGroup \ --name myAKSCluster \ --node-disruption-policy Block
Операции, требующие обновления пула узлов вручную в Kubernetes 1.36 и более ранних версиях
В Kubernetes 1.37 и более поздних версиях политика прерывания узлов охватывает следующие изменения конфигурации. В Kubernetes 1.36 и более ранних версиях эти изменения требуют обновления пула узлов вручную:
- Изменения конфигурации SSH, такие как изменение методов доступа SSH или обновление открытых ключей SSH.
- Изменения ограничений IMDS, такие как включение или отключение ограничения IMDS.
- Изменение имени ACR профиля начальной загрузки для кластеров с изоляцией сети.
- Изменения типа исходящего трафика, например изменение исходящей маршрутизации кластера.
В Kubernetes 1.36 и более ранних версий выполните az aks nodepool upgrade команду вручную после изменения конфигурации. Рассмотрим пример.
az aks nodepool upgrade \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name <nodepool-name> \
--node-image-only
Дополнительные сведения об операциях, охватываемых политикой прерывания узлов, см. в обзоре политики прерывания узла.
Устранение неполадок, связанных с политикой прерывания узлов
Непредвиденная операция заблокирована
Если операция заблокирована неожиданно, выполните следующие действия, чтобы устранить проблему:
Проверьте текущий параметр политики с помощью
az aks showкоманды.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query "nodeDisruptionProfile.nodeDisruptionPolicy" \ --output tsvЕсли вы используете
AllowDuringMaintenanceWindow, проверьте конфигурацию окна обслуживания с помощью командыaz aks maintenanceconfiguration show.az aks maintenanceconfiguration show \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name aksManagedNodeOSUpgradeScheduleПроверьте, входит ли текущее время в период обслуживания.
Окно обслуживания не настроено
Если задать для политики значение AllowDuringMaintenanceWindow, но не настроить окно обслуживания, будут разрешены все операции, нарушающие работу.
Настройте окно обслуживания с помощью команды az aks maintenanceconfiguration add. Чтобы повторно использовать одно и то же расписание в нескольких кластерах, свяжите aksManagedNodeOSUpgradeSchedule с общим окном обслуживания.
az aks maintenanceconfiguration add \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name aksManagedNodeOSUpgradeSchedule \
--schedule-type Weekly \
--day-of-week Sunday \
--interval-weeks 1 \
--duration 4 \
--start-time 02:00