我在 docker swarm 模式中有 3 个节点。
1 个 Manager 和 2 个 Worker 节点
我在这里有两个疑问?
如果我将服务扩展到比我们拥有的节点更大的数量,将会产生什么影响。(假设将一项服务扩展到 5 或 6 个)
如果服务有一个限制,即它必须仅在管理器节点上运行,并且我们扩展的数量高于管理器节点的数量,那么规模会发生什么。(例如扩展到 3)
我在管理器节点中运行 mysql 服务,该服务在 docker-compose 中定义了一个约束放置以在管理器节点中运行。这是我尝试将其扩展到6时看到的效果,尽管我只有 3 个节点。显示docker service logs
4/6 运行,甚至有时显示 6/6 和有时显示 5/6 波动
这里是 docker-compose.yml
version: '3.4'
networks:
smstake:
ipam:
config:
- subnet: 10.0.10.0/24
services:
db:
image: mysql:5.7
networks:
- smstake
ports:
- "3306"
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: mydb
MYSQL_USER: myuser
MYSQL_PASSWORD: password
volumes:
- mysql_data_2:/var/lib/mysql
deploy:
mode: replicated
replicas: 1
placement:
constraints:
- node.role == manager
app:
image: SMSTAKE_VERSION
ports:
- 8000:80
networks:
- smstake
depends_on:
- db
# - migration
deploy:
mode: replicated
replicas: 3
migration:
# build: .
image: SMSTAKE_VERSION
command: sh -xc "sleep 10 && pwd && php artisan migrate:fresh --seed 2>&1"
networks:
- smstake
depends_on:
- app
- db
deploy:
mode: replicated
replicas: 1
placement:
constraints:
- node.role == manager
volumes:
mysql_data_2: