Syndic
Тема дорожной карты · SaltStack
Syndic позволяет организовать мастера Salt в иерархию, где на вершине находится «мастер над мастерами» (master of masters), а под ним — промежуточные мастера со своими миньонами. Демон salt-syndic устанавливается рядом с промежуточным мастером и выступает в роли переводчика между уровнями: вверху он выглядит как обычный миньон, а внизу транслирует команды своего вышестоящего мастера собственным миньонам. Оператор на вершине выполняет одну команду и достигает всего парка, при этом каждый сегмент несёт свою нагрузку: файлы, pillar и возвраты обрабатываются локальным мастером. В отличие от multi-master, который добавляет отказоустойчивость на одном уровне, syndic решает задачи масштаба и сегментации — это разные инструменты, которые можно сочетать.
Как это работает
На вершине иерархии в конфиге мастера включается order_masters: True, без этого он не будет паковать публикации так, чтобы syndic мог их ретранслировать. На промежуточном узле работают два демона: обычный salt-master, обслуживающий локальных миньонов, и salt-syndic, в конфиге которого указан вышестоящий мастер (syndic_master: mom.example.com). Syndic подключается вверх как миньон — его ключ нужно принять на master of masters через salt-key. Механика такова: команда, опубликованная наверху, спускается через syndic на локальный мастер и раздаётся его миньонам; результаты собираются локальным мастером и пересылаются вверх, события локальной шины тоже пробрасываются на вышестоящую. Таргетинг работает сквозь иерархию: salt '*' test.ping наверху опросит миньонов всех сегментов. Поскольку возвраты идут через дополнительный уровень, агрегация занимает больше времени — тайминги ожидания (например, syndic_wait) подстраивают под задержки сети между уровнями.
Когда применять
Классический сценарий — географическая или организационная сегментация: региональные площадки, изолированные контуры, зоны с ограниченной связностью. В каждом сегменте живёт локальный мастер (быстрые файлы и pillar, работа при потере связи с центром), а сверху остаётся единая точка обзора и управления. Второй сценарий — чистый масштаб: когда миньонов больше, чем комфортно тянет один уровень мастеров, дерево syndic распределяет нагрузку. Третий — делегирование: командам сегментов отдают их локальные мастера, центр оставляет себе сквозные операции. Если же вам нужна только отказоустойчивость пары мастеров в одной сети — syndic избыточен, берите multi-master. И трезво оценивайте цену: каждый уровень — это свои конфиги, свои ключи и своя специфика отладки.
Типичные ошибки
Первая — забытый order_masters: True наверху: иерархия выглядит собранной, ключ syndic принят, но команды вниз не доходят. Вторая — ожидание, что file_roots и pillar «унаследуются» сверху: каждый мастер в дереве обслуживает свои файлы и pillar сам, и без синхронизации (GitFS на всех уровнях) сегменты разъезжаются по версиям состояний. Третья — неверная трактовка таймаутов: вершина показывает «Minion did not respond» для дальних сегментов не потому, что миньоны мертвы, а потому что возвраты не успели подняться, — сначала подстройте тайминги ожидания, потом делайте выводы. Четвёртая — дубли minion id в разных сегментах: наверху их результаты сливаются неразличимо, уникальность id должна соблюдаться во всём дереве, а не в пределах одного мастера.
Связанные понятия
Полезные ресурсы
🔤 Английские термины в этой теме
Слова из этой темы, которые русскоязычные часто произносят неверно. Кнопка 🔊 произносит голосом браузера.
- scenario /sɪˈnɑːrioʊ/ «синАриоу» разбор: Тестирование: flaky, coverage, mock, fixture, regression
- intermediate /ˌɪntərˈmiːdiət/ ударение на «ми», русское «интермедиа» звучит с другим ударением разбор: Какой уровень нужен: A2, B1, B2 по ролям
- operator /ˈɒpəreɪtər/ ударение на первый слог в обоих разбор: Операторы: not equal, greater or equal, arrow
- merge /mɜːrdʒ/ один слог, «мёрдж», без русского «е» разбор: Рунглиш vs английский: когда что уместно
- event /ɪˈvɛnt/ ударение на второй слог разбор: Немые буквы и ударение: cache, queue, suite, height
- architecture /ˈɑːrkɪtɛktʃər/ ударение на первый слог, «Аркитекчер» разбор: Письменная коммуникация
- command /kəˈmɑːnd/ ударение на второй слог разбор: Английский Linux и терминала