У меня есть несколько уникальных вариантов использования, когда я хочу запустить большое количество (от тысяч до десятков тысяч) рабочих мест Kubernetes одновременно. Каждое задание состоит из одного контейнера, параллелизма 1 и завершений 1, без коляски или агента. В моем кластере достаточно ресурсов для ресурсов, которые я запрашиваю.
Моя проблема заключается в том, что статус задания не переходит в состояние «Завершено» в течение значительного периода времени, когда я запускаю много заданий одновременно.
Мое приложение отправляет задания и имеет наблюдателя в пространстве имен - как только статус задания изменяется на «успешно выполнено 1», мы удаляем задание и отправляем информацию обратно в приложение. Приложению необходимо, чтобы это произошло как можно скорее, чтобы определить и отправить последующие задания.
Я могу отправлять новые запросы заданий так быстро, как мне хочется, и планирование Pod происходит без задержек, но в Одна или две сотни одновременных заданий Я получаю значительную задержку между завершением Блока задания и обновлением статуса задания до Полного. Всего около 1000 заданий в кластере может легко занять 5-10 минут для обновления статуса задания.
Это говорит о том, что в плоскости управления Kubernetes есть процесс, требующий больше ресурсов для обработки завершения Pod. события быстрее, или опция конфигурации, которая позволяет ему обрабатывать больше задач параллельно. Тем не менее, мои инструменты мониторинга системы еще не смогли определить какие-либо службы плоскости управления, которые максимизируют свои доступные ресурсы, пока кластер обрабатывает резерв, а все другие операции в кластере выглядят нормально.
My вопрос - где искать узкие места системного ресурса или конфигурации? Я не знаю достаточно о Kubernetes, чтобы точно знать, какие компоненты отвечают за обновление статуса задания.