Всем привет!
Descheduler – полезный механизм, который позволяет реализовать rescheduling запущенных на кластере нагрузок (интересно, почему его не назвали Rescheduler). Это может быть полезно, например, при добавлении узлов кластера, чтобы не ждать перезапуска приложений, а оптимизировать нагрузку на вычислительные ресурсы для уже запущенных нагрузок.
В статье Автор описывает основные концепты механизма:
🍭 Назначение, примеры использования, возможности установки
🍭 Архитектура, ключевые компоненты и сущности (Evictor, Strategy)
🍭 Логика работы и то, на основании чего Descheduler принимает решение о том, что нагрузку надо перенести и условия, которые этому предшествуют
В завершении статьи Автор приводит небольшой пример: Descheduler настраивается с использованием Strategy
RemovePodsHavingTooManyRestarts со значением равным 5. После – запускаем «нестабильный» pod и наблюдаем за работой Descheduler «вживую».Отдельно ознакомиться со всеми доступными Strategy и нюансами их использования можно в документации.