Fox Boxсайты · AI · автоматизация
Controlled infrastructure lab · 16.08.2026

Docker Swarm: отказ проверен, результат сохранён.

Пять изолированных узлов, три manager и два worker. Реплицированный HTTP-сервис и Registry с TLS и авторизацией прошли baseline, потерю worker, потерю follower-manager и повторную проверку после восстановления.

Граница доказательства: это собственный контролируемый локальный process proof, не клиентский кейс и не доказательство для чужой production-среды.Controlled local process proof, not a client case and not evidence about a third-party production environment.

5изолированных Docker-узлов
9/9проверок baseline и recovery
3/3HTTP-задачи после отказов
6/6unit-тестов verifier
Метод

Один измеримый маршрут.

Сначала фиксируется здоровое состояние. Затем намеренно останавливается ровно один узел, проверяется сходимость и доступность, узел возвращается, а финальный read-only gate повторяется.

01

Построить

Три manager, два worker, overlay-сеть, три HTTP-реплики и Registry 2.

02

Защитить

Короткоживущий CA, TLS-сертификат и bcrypt htpasswd передаются как Swarm secrets.

03

Ломать по одному

Сначала worker-1, затем follower manager-2 — с ожиданием авторитетного статуса Down.

04

Принять

Топология, кворум, реплики и оба endpoint проходят повторяемый read-only verifier.

Наблюдение

Что произошло при отказе.

Проверка не ограничивалась строкой “service up”: сохранены состояния узлов и текущих задач именно в момент каждого отказа.

WORKER FAILOVER · PASS

Три задачи сошлись на оставшемся worker

worker-1|Down. Все три актуальные задачи proof_health зафиксированы Running на worker-2; HTTP endpoint вернул 200.

MANAGER FAILOVER · PASS

Кластер продолжил обслуживать сервисы

manager-2|Down|Unreachable. Leader остался доступен, а сервисы сохранили состояния proof_health|3/3 и proof_registry|1/1.

Raw evidence

Не пересказ — измерения.

JSON-отчёты содержат условия, узлы, сервисы, endpoints и результат каждой проверки. Текстовые снимки фиксируют состояние внутри fault window.

worker-failover.txtснято во время остановки worker-1
NODE_STATE_WHILE_WORKER_1_STOPPED
manager-1|Ready|Leader
manager-2|Ready|Reachable
manager-3|Ready|Reachable
worker-1|Down|
worker-2|Ready|

DESIRED_RUNNING_TASKS_WHILE_WORKER_1_STOPPED
proof_health.1|worker-2|Running 2 seconds ago
proof_health.2|worker-2|Running 18 seconds ago
proof_health.3|worker-2|Running 18 seconds ago
Воспроизведение

Код и evidence открыты.

Сценарий генерирует новый случайный пароль и runtime-ключи при каждом запуске. Ни пароль, ни private keys, ни join tokens не записываются в публичные результаты.

Lab source

Compose, stack, fault runner, verifier и шесть unit-тестов собраны в одной папке.

Открыть README ↗

Что это подтверждает

  • умение собрать изолированный 3-manager/2-worker Swarm;
  • TLS и basic auth для Registry через Swarm secrets;
  • проверяемую обработку worker и follower-manager failover;
  • read-only acceptance gate и машиночитаемое evidence.

Чего это не подтверждает

  • готовность конкретного production-кластера без его аудита;
  • поведение persistent storage при потере хоста;
  • сетевые правила, backup/restore, мониторинг или SLO третьей стороны;
  • нулевой downtime при любом сценарии отказа.