Поделиться через


429 слишком много ошибок запросов

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

Симптомы

Вы получаете ошибки, похожие на следующий текст:

Служба вернула ошибку.

Status=429

Code="OperationNotAllowed"

Message="Сервер отклонил запрос, так как для этой подписки было получено слишком много запросов".

Details=[{
"code":"TooManyRequests",
"message":"{
\"operationGroup\":\"HighCostGetVMScaleSet30Min\",
\"startTime\":\"2020-09-20T07:13:55.2177346+00:00\",
\"endTime\":\"2020-09-20T07:28:55.2177346+00:00\",
\"allowedRequestCount\":1800,
\"measuredRequestCount\":2208
}",
"target":"HighCostGetVMScaleSet30Min"
}]

InnerError={"internalErrorCode":"TooManyRequestsReceived"}"}

Причина. Чрезмерные объемы вызовов вызывают регулирование подписки в Azure

Кластер Kubernetes в Azure (с AKS или без нее), который часто масштабируется и масштабируется или использует автомасштабирование кластера, может привести к большому объему HTTP-вызовов. Этот том вызова может привести к сбою, так как он превышает назначенную квоту для подписки Azure.

Дополнительные сведения об этих ошибках см. в разделе Регулирование запросов Azure Resource Manager и устранение ошибок регулирования API. Сведения о том, как анализировать и определять причину этих ошибок и получать рекомендации по их устранению, см. в статье "Анализ и выявление ошибок с помощью AKS Диагностики и решения проблем".

Решение 1. Обновление до более поздней версии Kubernetes

Запустите Kubernetes 1.18.x или более поздней версии. Эти версии содержат множество улучшений, описанных в ошибках регулирования AKS/429 и поддержке больших кластеров без регулирования. Однако если вы по-прежнему видите регулирование (из-за фактической загрузки или количества клиентов в подписке), можно попробовать следующие решения.

Решение 2. Увеличение интервала проверки автомасштабирования

Если обнаружено регулирование автоматического масштабирования кластера, отчеты диагностики, вызванные автомасштабированием кластера, можно попытаться увеличить интервал сканирования автомасштабирования кластера, чтобы уменьшить количество вызовов масштабируемых наборов виртуальных машин (VMSS) из автомасштабирования кластера.

Решение 3. Перенастройка сторонних приложений для меньшего количества вызовов

При фильтрации по агентам пользователей в диагностике "Просмотр частоты запросов и сведений о регулировании" при поиске сторонних приложений (таких как приложения мониторинга), которые делают чрезмерное количество запросов GET, измените параметры этих приложений, чтобы уменьшить частоту вызовов GET. Кроме того, убедитесь, что клиенты приложений используют экспоненциальный откат при вызове API Azure.

Решение 4. Разделение кластеров на разные подписки или регионы

Если существует множество кластеров и пулов узлов, использующих масштабируемые наборы виртуальных машин, попробуйте разделить кластеры на разные подписки или регионы (в одной подписке). Большинство ограничений API Azure являются общими ограничениями на уровне региона подписки. Например, все кластеры и клиенты в под одной и регионе "Восточная часть США" используют ограничение для масштабируемых наборов виртуальных машин GET API. Таким образом, вы можете перемещать или масштабировать новые кластеры AKS в новом регионе и разблокироваться в регулировании API Azure. Этот метод помогает, если кластеры будут иметь высокую активность (например, если у вас есть активный автомасштабатор кластера). Это также помогает, если у вас много клиентов (таких как Ранчер, Terraform и т. д.). Так как все кластеры отличаются в их эластичности и количестве клиентов, опрошенных API Azure, нет универсальных рекомендаций по количеству кластеров, которые можно запускать на уровне региона подписки. Для конкретных рекомендаций можно создать запрос в службу поддержки.

Анализ и выявление ошибок с помощью AKS Диагностики и решения проблем

Для кластера AKS можно использовать AKS Диагностику и решение проблем для анализа и выявления причины этих ошибок и получения рекомендаций по их устранению. Перейдите к кластеру в портал Azure, а затем выберите "Диагностика и решение проблем" в левой области навигации, чтобы открыть AKS Диагностика и решение проблем. Выполните поиск и откройте регулирование запросов ресурсов Azure, где можно получить отчет с рядом диагностика. Эти диагностика могут показать, есть ли в кластере регулирование скорости запросов (429 ответов) Azure Resource Manager (ARM) или поставщика ресурсов (RP) и где происходит регулирование. Например:

  • Регулирование частоты запросов обнаружено для кластера: эта диагностика предоставляет некоторые общие рекомендации, если регулирование обнаружено в текущем кластере AKS.

  • Обнаружена регулирование автомасштабирования кластера: эта диагностика показывает, обнаружена ли регулирование и возникла из автомасштабирования кластера.

    Чтобы уменьшить объем запросов из автомасштабирования кластера, используйте следующие методы:

    • Увеличьте интервал проверки автомасштабирования, чтобы уменьшить количество вызовов из автомасштабирования кластера на масштабируемые наборы виртуальных машин. Этот метод может оказать негативное влияние на задержку, затраченную на масштабирование, так как автомасштабирование кластера ожидает дольше, прежде чем вызывать поставщика вычислительных ресурсов Azure (CRP) для новой виртуальной машины.
    • Убедитесь, что кластер находится в минимальной версии Kubernetes версии 1.18. Kubernetes версии 1.18 и более поздних версий лучше обрабатывают откат запросов при получении ответов на регулирование 429. Мы настоятельно рекомендуем оставаться в поддерживаемых версиях Kubernetes для получения исправлений безопасности.
  • Регулирование — Azure Resource Manager: эта диагностика показывает количество регулируемых запросов в указанном диапазоне времени в кластере AKS.

  • Частота запросов — Azure Resource Manager: эта диагностика показывает общее количество запросов в указанном диапазоне времени в кластере AKS.

  • Просмотр сведений о частоте запросов и регулирования. Эта диагностика содержит несколько схем для определения сведений о регулировании, включая регулирование запросов и общих запросов. Вы также можете отфильтровать результаты с помощью следующих измерений:

    • Узел: узел, в котором обнаружены ответы состояния HTTP 429. Регулирование Azure Resource Manager происходит из management.azure.com; что-либо другое является поставщиком ресурсов более низкого уровня.
    • Агент пользователя: запросы с указанным агентом пользователя, который был регулированием.
    • Операция: операции, в которых обнаружены ответы состояния HTTP 429.
    • IP-адрес клиента: IP-адрес клиента, отправляющий регулируемые запросы.

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

Пример 1. Регулирование автомасштабирования кластера

В этом примере показано, как проанализировать регулирование, вызванное автомасштабированием кластера.

Если обнаружена диагностика автоматического масштабирования кластера в AKS Диагностика и решение>известных проблем, регулирование запросов ресурсов Azure доступности и производительности>, указывает, что запросы, выданные автомасштабированием кластера, были регулированием.

Схема, показывающая регулирование запросов автомасштабирования кластера.

Количество регулируемых запросов и регулирование запросов в диагностике Azure Resource Manager можно регулировать.

Схема, показывающая, когда запросы автомасштабирования кластера регулируются.

Число всех запросов ARM можно найти в один и тот же период времени.

Схема всех запросов ARM.

Чтобы найти сведения о регулировании, можно проверить частоту запросов представления и диагностику сведений о регулировании. Выберите 429s по агенту пользователя в раскрывающемся списке "Выбор фильтра", и вы увидите, что запросы автомасштабирования регулируются с 15:00 до 16:00.

Схема регулирования по агентам пользователей.

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

Схема общего регулирования по агенту пользователя.

Можно также фильтровать регулирование по операциям. Операция удаления виртуальной машины VMSS регулируется в этом случае.

Схема регулирования операций.

Количество регулируемых запросов и всех запросов, сгруппированных по операциям.

Схема общих регулирования операций.

Затем вы можете следовать рекомендациям в рекомендуемом действии , чтобы уменьшить регулирование.

Схема показывает, что обнаружена регулирование запросов автомасштабирования кластера.

Пример 2. Регулирование поставщика облачных служб

В этом примере приводятся ограничения, вызванные поставщиком облачных служб. Часто происходит, когда операционные ресурсы в больших кластерах, например подготовка Azure Load Balancer в кластере с более чем 500 узлами.

Если вы найдете регулирование в кластере, вы увидите сведения о регулировании в разделе "Скорость запроса представления" и диагностические сведения о регулировании . Выберите 429s по агенту пользователя в раскрывающемся списке "Выбор фильтра", и вы можете увидеть, что запросы поставщика облачных служб регулируются с 03:00 до 06:00.

Схема, показывающая регулирование, обнаружена.

Схема регулирования по агенту пользователя.

Вы также можете отфильтровать по операциям, чтобы узнать, что регулирование операции — network/loadBalancers/read.

Схема регулирования по операции.

Вы можете использовать ip-адрес подсистемы балансировки нагрузки на основе IP-адресов узла AKS для уменьшения этого ограничения.

Свяжитесь с нами для получения помощи

Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.