Kubernetes install and components
April 17, 2023

Scheduler

Это компонент мастера, который отвечает за назначение подам конкретных нод. Для этого он создает объект класса Bindings, который связывает под с определенной нодой.

При назначении поду конкретной ноды Sheduller проверяет несколько факторов:
1. QOS у пода. Определяет приоритет выделения ресурсов поду, как быстро он будет эвакуирован в случае аварии и как быстро ему будет назначена нода для работы.
2. Ресурсы, которые запрашивает под. Здесь определяется есть ли на ноде необходимые ресурсы для запуска пода.
3. Affinity/Antiaffinity здесь проверяется можно ли запускать под на конкретной ноде.
Назначается та нода, которая набрала больше всего очков.

Scheduler мониторит API Server на предмет наличия там манифестов подов без проставленного поля nodes. Его задача проставить в манифест в поле nodes имя ноды и маякнуть etcd чтобы он обновил у себя конфигурацию заданного ресурса.