Docker Swarm на VPS: оркестрация без Kubernetes — иллюстрация к статье Storm Cloud Blog, категория Docker
Docker Swarm на VPS: оркестрация без Kubernetes — иллюстрация к статье Storm Cloud Blog, категория Docker
Docker·2 мин··

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 достаточен для малых кластеров.