Docker Swarm: кластер для малых команд
Docker Swarm — встроенный инструмент оркестрации Docker. В отличие от Kubernetes, он значительно проще в настройке и подходит для проектов с 2-10 серверами.
Инициализация кластера
# Manager нода
docker swarm init --advertise-addr 10.0.0.1
# Worker нода
docker swarm join --token SWMTKN-1-xxxxx 10.0.0.1:2377
docker node lsDeploy Stack
# docker-stack.yml
version: '3.8'
services:
web:
image: nginx:alpine
ports:
- "80:80"
- "443:443"
deploy:
replicas: 3
update_config:
parallelism: 1
delay: 10s
failure_action: rollback
networks:
- webnet
app:
image: myapp:latest
deploy:
replicas: 2
resources:
limits:
cpus: '0.5'
memory: 512M
networks:
- webnet
networks:
webnet:
driver: overlaydocker stack deploy -c docker-stack.yml myapp
docker stack services myapp
docker service ps myapp_webSecrets
echo "SuperSecretPass" | docker secret create db_password -
docker secret lsRolling Update без даунтайма
docker service update --image myapp:v2.0 --update-parallelism 1 --update-delay 15s myapp_app
docker service rollback myapp_app # откатМасштабирование
docker service scale myapp_web=5 myapp_app=4Swarm vs K8s? Swarm — правильный выбор для 2–20 серверов и команд без DevOps. Kubernetes оправдан при 20+ нодах.