Docker Swarm на VPS: оркестрация без Kubernetes
Docker Swarm на VPS: когда имеет смысл, создание кластера, сервисы, rolling update, secrets. Альтернатива k3s для 2–3 серверов.
Краткий ответ: Docker Swarm — встроенный оркестратор Docker для 2–5 VPS. Проще Kubernetes/k3s, даёт rolling updates, service discovery и secrets. Имеет смысл при 2+ серверах; на одном VPS достаточно Docker Compose.
Kubernetes моден, но для команды из двух человек и трёх микросервисов Swarm часто прагматичнее.
Swarm vs Compose vs k3s
| Compose | Swarm | k3s/K8s | |
|---|---|---|---|
| Серверов | 1 | 2+ | 1+ |
| Сложность | Низкая | Средняя | Высокая |
| Rolling update | Нет | Да | Да |
| Экосистема | Большая | Умеренная | Огромная |
Архитектура кластера
- Manager node — оркестрация (можно 1–3)
- Worker nodes — запуск контейнеров
- Минимум production: 1 manager + 1 worker на разных VPS
Связь между VPS — приватная сеть провайдера или WireGuard mesh.
Инициализация Swarm
На manager:
docker swarm init --advertise-addr ВАШ_IP
# сохраните join token
На worker:
docker swarm join --token SWMTKN-... MANAGER_IP:2377
Деплой сервиса
# stack.yml
services:
web:
image: nginx:alpine
ports:
- "80:80"
deploy:
replicas: 2
update_config:
parallelism: 1
delay: 10s
restart_policy:
condition: on-failure
networks:
- frontend
api:
image: myapi:latest
deploy:
replicas: 2
networks:
- frontend
networks:
frontend:
driver: overlay
docker stack deploy -c stack.yml myapp
docker service ls
docker service ps myapp_web
Secrets и configs
echo "db_password" | docker secret create db_pass -
services:
api:
secrets:
- db_pass
secrets:
db_pass:
external: true
Rolling update
docker service update --image myapi:v2 myapp_api
Swarm обновляет по одной реплике — zero-downtime при 2+ replicas.
Ingress и SSL
Варианты:
- Nginx на manager как reverse proxy
- Traefik в Swarm mode с Let’s Encrypt
- Cloudflare перед балансировщиком
SSL — Let’s Encrypt.
Мониторинг Swarm
docker node ls
docker service logs myapp_api
Централизованный стек — Grafana + Prometheus + cAdvisor.
Когда НЕ нужен Swarm
- Один VPS, один compose-файл
- Команда планирует K8s через 3 месяца — сразу k3s
- Нет опыта Docker — начните с Compose
Итог
Docker Swarm — недооценённый вариант для 2–3 VPS: rolling updates, overlay network, secrets — без YAML-ада Kubernetes.
Несколько VPS — StormNet Cloud. IaC для серверов — Terraform.
Рекомендуем прочитать
Частые вопросы
Docker Swarm ещё актуален в 2026?
Да, для 2–5 VPS без команды K8s. Swarm проще Kubernetes, но Docker Inc. фокусируется на Compose — для новых проектов оцените k3s.
Сколько VPS нужно для Swarm?
Минимум 1 (dev), для production отказоустойчивости — 2+: manager + worker. Один manager достаточен для малых кластеров.






