docker swarm モードで 3 つのノードがあります。
1 つのマネージャー ノードと 2 つのワーカー ノード
ここで2つの疑問がありますか?
サービスを現在のノードよりも多くの数にスケーリングすると、どのような影響がありますか。( 1 つのサービスを 5 または 6 にスケーリングするとします)
サービスがマネージャー ノードでのみ実行されなければならないという制約があり、マネージャー ノードの数よりも大きい数をスケーリングする場合、スケールはどうなりますか (たとえば、3 にスケーリングします)。
マネージャー ノードで実行するように docker-compose で定義された制約配置を持つマネージャー ノードで mysql サービスを実行しています。これは、ノードが 3 つしかないのに6にスケーリングしようとしたときに見られる効果です。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: