← Back

Документация butlerd

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

Что такое butlerd?

butlerd предоставляет:

Философия дизайна

  1. Нет зависимостям: Единый бинарник, без внешних сервисов
  2. Полная репликация: Все узлы хранят полное состояние кластера
  3. Эффективная синхронизация: Деревья Меркла для O(log N) сравнения состояний
  4. Безопасность по умолчанию: ed25519 подписи, запечатанные секреты, зашифрованный оверлей

Разделы документации

Документ Описание
Архитектура Высокоуровневый дизайн системы
Консенсус QC-протокол, комитет, эпохи
Gossip-протокол Репликация состояния и синхронизация дельт
Синхронизация состояния Структура состояния и персистентность
Планирование Размещение рабочих нагрузок и топология
Сеть WireGuard, DNS, прокси, ingress
Хранилище KV-хранилище и консистентное хеширование
Безопасность Токены, запечатанные секреты, политики
Развёртывание Установка и конфигурация
Эксплуатация Мониторинг и устранение неполадок

Быстрый старт

# Инициализация кластера
butlerd init --name my-cluster --data-dir /var/lib/butlerd

# Запуск демона
butlerd daemon --data-dir /var/lib/butlerd

# Подключение дополнительных узлов
butlerd join --peer <first-node>:51821 --token <token> --data-dir /var/lib/butlerd

Структура кода

internal/
├── bootstrap/    # Инициализация кластера
├── compose/      # Парсер Docker Compose
├── config/       # Загрузка конфигурации
├── cplane/       # Логика control plane
├── daemon/       # Главная точка входа демона
├── dns/          # Авторитарный DNS-сервер
├── kv/           # Распределённое KV-хранилище
├── metrics/      # Метрики Prometheus
├── proxy/        # HTTP/HTTPS обратный прокси
├── registry/     # OCI-реестр
├── runtime/      # Абстракция container runtime
├── scheduler/    # Движок планирования рабочих нагрузок
├── seal/         # Шифрование AES-256-GCM для секретов
├── state/        # Модель состояния кластера + консенсус
├── syshealer/    # Самоисцеление системы
├── tmpl/         # Рендеринг шаблонов
├── ui/           # Web UI
└── wireguard/    # Управление WireGuard overlay

Лицензия