1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/gocrane-crane-scheduler

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
dynamic-scheduler.md 4.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 15.03.2025 23:50 0b5fb0b

Динамический планировщик: плагин осведомленного о нагрузке планировщика

Введение

Нативный планировщик Kubernetes может распределять контейнеры только по заявленным ресурсам, что легко приводит к ряду проблем с неравномерной нагрузкой:

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

Чтобы решить эти проблемы, Динамический планировщик строит простую, но эффективную модель на основе данных использования узлов, и фильтрует узлы с высокой нагрузкой для балансировки кластера.

Подробности дизайна

Архитектура

Как показано выше, Динамический планировщик использует Prometheus и Node-exporter для сбора и агрегации метрик, и состоит из двух компонентов:

  • Node-annotator периодически получает данные из Prometheus и помечает их временной меткой в виде аннотаций на узле.

Примечание: Node-annotator в настоящее время является модулем Crane-scheduler-controller.

  • Динамический плагин читает данные нагрузки напрямую из аннотаций узла, фильтрует и оценивает кандидатов на основе простого алгоритма.### Политика планировщика Динамический планировщик предоставляет по умолчанию политику планировщика и поддерживает пользовательски-определенные политики. По умолчанию политика основана на следующих метриках:
  • cpu_usage_avg_5m
  • cpu_usage_max_avg_1h
  • cpu_usage_max_avg_1d
  • mem_usage_avg_5m
  • mem_usage_max_avg_1h
  • mem_usage_max_avg_1d

На этапе фильтрации (Filter) узел будет исключен, если фактический уровень использования этого узла превышает порог любых из указанных метрик. На этапе оценки (Score) окончательная оценка представляет собой взвешенную сумму этих метрик.

Грейтчмаркер

В производственном кластере могут часто возникать горячие точки планирования, так как нагрузка узлов не увеличивается сразу после создания контейнера. Поэтому мы определили дополнительную метрику под названием Грейтчмаркер, которая представляет частоту распределения контейнеров на узле за последнее время. И окончательный приоритет узла равен его окончательной оценке минус Грейтчмаркер.

Здесь замечено, что термин "Грейтчмаркер" может быть ошибкой или специфическим термином, который требует уточнения. Однако, поскольку нет дополнительного контекста, было решено оставить этот термин без изменения.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/gocrane-crane-scheduler.git
git@api.gitlife.ru:oschina-mirror/gocrane-crane-scheduler.git
oschina-mirror
gocrane-crane-scheduler
gocrane-crane-scheduler
main