Архитектура хранения
Содержание
Система хранения Sigil Gate состоит из двух слоёв: оперативного KV-хранилища (etcd) на управляющем кластере и Git-репозитория как источника истины. В отличие от предыдущей архитектуры, etcd больше не размещается на Core-нодах.
Два слоя хранения #
| Слой | Компонент | Назначение |
|---|---|---|
| Оперативный | etcd | Текущее состояние сети, маршруты, статусы, быстрое чтение |
| Долгосрочный | Git-репозиторий | Источник истины, версионирование, аудит, восстановление |
graph TD
Git["Git-репозиторий\n(источник истины)"]
KV["etcd\n(управляющий кластер)"]
Mgmt["Управляющий кластер"]
Entry["Entry-поды"]
Core["Core-ноды"]
Git <-->|"синхронизация"| Mgmt
Mgmt -->|"чтение / запись"| KV
Entry -->|"только чтение"| KV
Core -.->|"нет прямого доступа"| KV
style Git fill:#374151,color:#fff,stroke:#1f2937
style KV fill:#374151,color:#fff,stroke:#1f2937
style Mgmt fill:#7c3aed,color:#fff,stroke:#6d28d9
style Entry fill:#0891b2,color:#fff,stroke:#0e7490
style Core fill:#1d4ed8,color:#fff,stroke:#1e40af
Права доступа #
| Узел | etcd | Git |
|---|---|---|
| Управляющий кластер | Чтение / запись (полный доступ) | Чтение / запись |
| Entry-под | Только чтение (маршруты, конфигурации) | Нет доступа |
| Core-нода | Нет прямого доступа | Нет доступа |
Core-нода получает конфигурацию только через phone-home канал — управляющий кластер доставляет ей нужные данные из etcd. Прямого подключения Core-ноды к etcd нет.
Ключевые принципы #
- Централизованность etcd — хранилище находится только на управляющем кластере. Core-ноды больше не участвуют в кластере etcd.
- Git как страховка — при полной потере управляющего кластера сеть восстанавливается из Git-репозитория.
- Stateless Entry — Entry-поды не кешируют данные между сессиями. Вся информация — в etcd.
- Изоляция Core-нод — Core-ноды не имеют доступа ни к etcd, ни к Git. Данные получают только через управляющий кластер.