Skip to content

Commit ec0ec47

Browse files
committed
work on multi-node swarm cluster
1 parent 62649db commit ec0ec47

File tree

6 files changed

+61
-17
lines changed

6 files changed

+61
-17
lines changed

swarm/0_swarm_cluster_mac.sh

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,11 @@
44
NUM_WORKERS=3
55
[ -z "$NUM_WORKERS" ] && NUM_WORKERS=3
66

7-
# init Swarm master
8-
docker swarm init
7+
# init swarm (need for service command); if not created
8+
docker node ls 2> /dev/null | grep "Leader"
9+
if [ $? -ne 0 ]; then
10+
docker swarm init > /dev/null 2>&1
11+
fi
912

1013
# get join token
1114
SWARM_TOKEN=$(docker swarm join-token -q worker)
@@ -16,7 +19,18 @@ sleep 5
1619

1720
# run NUM_WORKERS workers with SWARM_TOKEN
1821
for i in $(seq "${NUM_WORKERS}"); do
19-
docker run -d --privileged --name worker-${i} --hostname=worker-${i} -p ${i}2375:2375 docker:1.12.1-dind
22+
# remove node from cluster if exists
23+
docker node rm --force $(docker node ls --filter "name=worker-${i}" -q) > /dev/null 2>&1
24+
# remove worker contianer with same name if exists
25+
docker rm --force $(docker ps -q --filter "name=worker-${i}") > /dev/null 2>&1
26+
# run new worker container
27+
docker run -d --privileged --name worker-${i} --hostname=worker-${i} \
28+
-p ${i}2375:2375 \
29+
-p ${i}5000:5000 \
30+
-p ${i}5001:5001 \
31+
-p ${i}5601:5601 \
32+
docker:1.12.1-dind
33+
# add worker container to the cluster
2034
docker --host=localhost:${i}2375 swarm join --token ${SWARM_TOKEN} ${SWARM_MASTER}:2377
2135
done
2236

@@ -25,3 +39,11 @@ echo "Local Swarm Cluster"
2539
echo "==================="
2640

2741
docker node ls
42+
43+
# echo swarm visualizer
44+
echo "Local Swarm Visualizer"
45+
echo "==================="
46+
docker run -it -d --name swarm_visuzalizer \
47+
-p 8000:8000 -e HOST=localhost -e PORT=8000 \
48+
-v /var/run/docker.sock:/var/run/docker.sock \
49+
manomarks/visualizer > /dev/null 2>&1

swarm/1_deploy.sh

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,6 @@ echo "Overwrite DEMO_TAG, DEMO_REP, DEMO_NET and DEMO_DB_VOL to customize demo e
99
[ -z "$DEMO_NET" ] && DEMO_NET="voteapp"
1010
[ -z "$DEMO_DB_VOL" ] && DEMO_DB_VOL="db-data"
1111

12-
# init swarm (need for service command); if not created
13-
docker node ls 2> /dev/null | grep "Leader"
14-
if [ $? -ne 0 ]; then
15-
docker swarm init
16-
fi
1712

1813
# create network, if not exists
1914
docker network ls --filter "name=${DEMO_NET}" | grep -w "${DEMO_NET}"

swarm/2_deploy_tugbot.sh

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,34 @@
22

33
echo "Deploy Tugbot services ..."
44

5-
# create tugbot service
5+
# create tugbot service (global)
66
docker service ls --filter "name=tugbot-run" | grep "tugbot-run"
77
if [ $? -ne 0 ]; then
8-
docker service create --name tugbot-run --network voteapp --mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock gaiadocker/tugbot:latest
8+
docker service create --name tugbot-run \
9+
--network voteapp \
10+
--mode global \
11+
--mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \
12+
gaiadocker/tugbot:latest
913
fi
1014

1115
# create tugbot leader service (on each Swarm master)
1216
docker service ls --filter "name=tugbot-leader" | grep "tugbot-leader"
1317
if [ $? -ne 0 ]; then
14-
docker service create --constraint "node.role == manager" --name tugbot-leader --network voteapp --mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock gaiadocker/tugbot-leader:latest
18+
docker service create --constraint "node.role == manager" --name tugbot-leader \
19+
--env "TUGBOT_LEADER_INTERVAL=10s"\
20+
--network voteapp \
21+
--mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \
22+
gaiadocker/tugbot-leader:latest
1523
fi
1624

17-
# create tugbot collect
25+
# create tugbot collect (global)
1826
docker service ls --filter "name=tugbot-collect" | grep "tugbot-collect"
1927
if [ $? -ne 0 ]; then
20-
docker service create --name tugbot-collect --network voteapp --mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock gaiadocker/tugbot-collect:latest tugbot-collect -g null -c http://tugbot-result-service-es:8081/results
28+
docker service create --name tugbot-collect \
29+
--network voteapp \
30+
--mode global \
31+
--mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \
32+
gaiadocker/tugbot-collect:latest tugbot-collect -g null -c http://tugbot-result-service-es:8081/results
2133
fi
2234

2335
# create tugbot result-service-es

swarm/5_bug_on_off.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ else
1111
fi
1212

1313
if [ -z "$2" ]; then
14-
SLEEP=15
14+
SLEEP=30
1515
else
1616
SLEEP=$2
1717
fi

swarm/9_clean.sh

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,3 @@ while [ $? -ne 0 ]; do
1212
sleep 2
1313
docker volume rm db-data 2>/dev/null
1414
done
15-
16-
# remove swarm cluster
17-
docker swarm leave --force

swarm/9_x_clean_swarm_mac.sh

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#!/bin/bash
2+
3+
# vars
4+
NUM_WORKERS=3
5+
[ -z "$NUM_WORKERS" ] && NUM_WORKERS=3
6+
7+
# remove nodes
8+
# run NUM_WORKERS workers with SWARM_TOKEN
9+
for i in $(seq "${NUM_WORKERS}"); do
10+
docker node rm --force worker-${i} > /dev/null 2>&1
11+
docker rm --force worker-${i} > /dev/null 2>&1
12+
done
13+
14+
# remove swarm cluster master
15+
docker swarm leave --force > /dev/null 2>&1
16+
17+
# remove swarm visuzalizer
18+
docker rm --force swarm_visualizer > /dev/null 2>&1

0 commit comments

Comments
 (0)