attempting swarm mode with linux host

This commit is contained in:
Kaushik Narayan R 2024-11-28 17:51:53 -07:00
parent 6a4cdd6b50
commit 84e501cf4b
4 changed files with 43 additions and 22 deletions

View File

@ -11,6 +11,9 @@ services:
clickhouse-keeper-network: clickhouse-keeper-network:
aliases: aliases:
- clickhouse-keeper1 - clickhouse-keeper1
deploy:
placement:
constraints: [node.labels.main == true]
clickhouse-keeper2: clickhouse-keeper2:
image: clickhouse/clickhouse-server:latest image: clickhouse/clickhouse-server:latest
@ -23,6 +26,9 @@ services:
clickhouse-keeper-network: clickhouse-keeper-network:
aliases: aliases:
- clickhouse-keeper2 - clickhouse-keeper2
deploy:
placement:
constraints: [node.labels.main == true]
clickhouse-keeper3: clickhouse-keeper3:
image: clickhouse/clickhouse-server:latest image: clickhouse/clickhouse-server:latest
@ -35,6 +41,9 @@ services:
clickhouse-keeper-network: clickhouse-keeper-network:
aliases: aliases:
- clickhouse-keeper3 - clickhouse-keeper3
deploy:
placement:
constraints: [node.labels.main == true]
clickhouse-server1: clickhouse-server1:
image: clickhouse/clickhouse-server:latest image: clickhouse/clickhouse-server:latest
@ -56,8 +65,8 @@ services:
- clickhouse-server1 - clickhouse-server1
deploy: deploy:
replicas: 1 replicas: 1
# placement: placement:
# constraints: [node.labels.role == server] constraints: [node.labels.main == true]
update_config: update_config:
delay: 10s delay: 10s
resources: resources:
@ -90,8 +99,8 @@ services:
- clickhouse-server2 - clickhouse-server2
deploy: deploy:
replicas: 1 replicas: 1
# placement: placement:
# constraints: [node.labels.role == server] constraints: [node.labels.main == true]
update_config: update_config:
delay: 10s delay: 10s
resources: resources:

View File

@ -7,6 +7,8 @@ services:
- zookeeper - zookeeper
deploy: deploy:
replicas: 1 replicas: 1
placement:
constraints: [node.labels.worker == true]
restart_policy: restart_policy:
condition: on-failure condition: on-failure
environment: environment:
@ -40,6 +42,8 @@ services:
- kafka_data:/var/lib/kafka/data - kafka_data:/var/lib/kafka/data
deploy: deploy:
replicas: 1 replicas: 1
placement:
constraints: [node.labels.worker == true]
restart_policy: restart_policy:
condition: on-failure condition: on-failure
@ -56,6 +60,8 @@ services:
command: "sh -c 'sleep 30 && python /app/pcap_processor.py -c /data/csv/main.csv -x --stream_size 100000'" command: "sh -c 'sleep 30 && python /app/pcap_processor.py -c /data/csv/main.csv -x --stream_size 100000'"
deploy: deploy:
replicas: 1 replicas: 1
placement:
constraints: [node.labels.worker == true]
restart_policy: restart_policy:
condition: on-failure condition: on-failure

37
scripts/deploy.sh Normal file → Executable file
View File

@ -1,7 +1,8 @@
#!/bin/bash #!/bin/bash
while getopts "M:D:T:A" flag; do while getopts "SMDT:A" flag; do
case "${flag}" in case "${flag}" in
S) sudoRequired=true ;;
M) masterNode=true ;; M) masterNode=true ;;
D) downStack=true ;; D) downStack=true ;;
T) swarmToken=$OPTARG ;; T) swarmToken=$OPTARG ;;
@ -9,34 +10,36 @@ while getopts "M:D:T:A" flag; do
esac esac
done done
echo "masterNode: $masterNode" scriptDir=$(dirname $(readlink -f "$0"))
echo "downStack: $downStack"
echo "swarmToken: $swarmToken"
echo "managerAddr: $managerAddr"
$scriptDir = $(readlink -f "$0")
# echo $scriptDir # ===> /Project/scripts # echo $scriptDir # ===> /Project/scripts
$stackName="TheWebFarm" stackName="TheWebFarm"
dockerCmd="docker"
if [[ $sudoRequired ]]; then
dockerCmd="sudo docker"
fi
if [[ $downStack ]]; then if [[ $downStack ]]; then
echo "[+] Removing stack..." echo "[+] Removing stack..."
docker stack rm $stackName echo "$dockerCmd stack rm $stackName"
docker service rm registry $dockerCmd stack rm $stackName
$dockerCmd service rm registry
sleep 20 sleep 20
docker volume rm $(docker volume ls --filter name=$stackName -q) $dockerCmd volume rm $($dockerCmd volume ls --filter name=$stackName -q)
elif ($MasterNode); then elif ($masterNode); then
echo "[+] swarm master" echo "[+] swarm master"
$dockerCmd swarm init
# data streaming # data streaming
cd $scriptDir/../preprocessing cd $scriptDir/../preprocessing
docker service create --name registry -p 5000:5000 registry:2 $dockerCmd service create --name registry -p 5000:5000 registry:2
# docker build -t 127.0.0.1:5000/data-streamer:latest --no-cache --push -f Dockerfile.python . $dockerCmd build -t 127.0.0.1:5000/data-streamer:latest --no-cache --push -f Dockerfile.python .
docker build -t 127.0.0.1:5000/data-streamer:latest --push -f Dockerfile.python . # $dockerCmd build -t 127.0.0.1:5000/data-streamer:latest --push -f Dockerfile.python .
# execute # execute
cd $scriptDir cd $scriptDir
docker stack deploy -d \ $dockerCmd stack deploy -d \
-c ../preprocessing/docker-compose.yml \ -c ../preprocessing/docker-compose.yml \
-c ../clickhouse/docker-compose.yaml \ -c ../clickhouse/docker-compose.yaml \
-c ../ui/docker-compose.yaml \ -c ../ui/docker-compose.yaml \
@ -49,5 +52,5 @@ elif ($MasterNode); then
else else
echo "[+] swarm follower" echo "[+] swarm follower"
echo "[+] joining swarm with token $swarmToken" echo "[+] joining swarm with token $swarmToken"
docker swarm join --token $swarmToken $managerAddr $dockerCmd swarm join --token $swarmToken $managerAddr
fi fi

View File

@ -14,6 +14,9 @@ services:
clickhouse-server-network: clickhouse-server-network:
aliases: aliases:
- grafana - grafana
deploy:
placement:
constraints: [node.labels.worker == true]
depends_on: depends_on:
- clickhouse-server1 - clickhouse-server1
environment: environment: