diff --git a/deploy/start_agent.sh b/deploy/start_agent.sh deleted file mode 100644 index caae258..0000000 --- a/deploy/start_agent.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -docker service create \ - --name yao-agent-slave105 \ - --hostname yao-agent-slave105 \ - --network swarm-net \ - --replicas 1 \ - --detach=true \ - --env ClientID=1 \ - --env ClientHost=yao-agent-slave105 \ - --env KafkaBrokers=kafka-node1:9092,kafka-node2:9092,kafka-node3:9092 \ - --mount type=bind,source=/etc/localtime,target=/etc/localtime \ - --mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \ - quickdeploy/yao-agent diff --git a/deploy/run_agent.sh b/sbin/run_agent.sh old mode 100644 new mode 100755 similarity index 54% rename from deploy/run_agent.sh rename to sbin/run_agent.sh index 6269477..3e445cf --- a/deploy/run_agent.sh +++ b/sbin/run_agent.sh @@ -7,7 +7,9 @@ docker run \ -p 8000:8000 \ -e ClientID=1 \ -e ClientHost=yao-agent \ - -e KafkaBrokers=kafka:9092 \ + -e KafkaBrokers=kafka-node1:9092,kafka-node2:9092,kafka-node3:9092 \ + --add-host=kafka-node1:192.168.0.1 \ + --add-host=kafka-node2:192.168.0.2 \ + --add-host=kafka-node3:192.168.0.3 \ --mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \ - --add-host=kafka:192.168.100.105 \ quickdeploy/yao-agent diff --git a/sbin/start_agent.sh b/sbin/start_agent.sh new file mode 100755 index 0000000..33ae56e --- /dev/null +++ b/sbin/start_agent.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +docker service create \ + --name yao-agent \ + --hostname {{.Node.Hostname}} \ + --network name=yao-net,alias={{.Node.Hostname}} \ + --mode global \ + --detach=true \ + --env ClientID={{.Node.Hostname}} \ + --env ClientHost={{.Node.Hostname}} \ + --env KafkaBrokers=kafka-node1:9092,kafka-node2:9092,kafka-node3:9092 \ + --mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \ + --mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \ + quickdeploy/yao-agent diff --git a/deploy/start_kafka.sh b/sbin/start_kafka.sh old mode 100644 new mode 100755 similarity index 66% rename from deploy/start_kafka.sh rename to sbin/start_kafka.sh index 6b03065..67a3822 --- a/deploy/start_kafka.sh +++ b/sbin/start_kafka.sh @@ -2,39 +2,39 @@ docker service create \ --name kafka-node1 \ - --hostname=kafka-node1 \ - --network swarm-net \ + --hostname kafka-node1 \ + --network yao-net \ --replicas 1 \ --detach=true \ --env BROKER_ID=1 \ --env ZOOKEEPER_CONNECT=zookeeper-node1:2181,zookeeper-node2:2181,zookeeper-node3:2181 \ --endpoint-mode dnsrr \ - --mount type=bind,source=/etc/localtime,target=/etc/localtime \ + --mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \ newnius/kafka:2.2 docker service create \ --name kafka-node2 \ - --hostname=kafka-node2 \ - --network swarm-net \ + --hostname kafka-node2 \ + --network yao-net \ --replicas 1 \ --detach=true \ --env BROKER_ID=2 \ --env ZOOKEEPER_CONNECT=zookeeper-node1:2181,zookeeper-node2:2181,zookeeper-node3:2181 \ --endpoint-mode dnsrr \ - --mount type=bind,source=/etc/localtime,target=/etc/localtime \ + --mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \ newnius/kafka:2.2 docker service create \ --name kafka-node3 \ - --hostname=kafka-node3 \ - --network swarm-net \ + --hostname kafka-node3 \ + --network yao-net \ --replicas 1 \ --detach=true \ --env BROKER_ID=3 \ --env ZOOKEEPER_CONNECT=zookeeper-node1:2181,zookeeper-node2:2181,zookeeper-node3:2181 \ --endpoint-mode dnsrr \ - --mount type=bind,source=/etc/localtime,target=/etc/localtime \ + --mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \ newnius/kafka:2.2 diff --git a/sbin/start_mysql.sh b/sbin/start_mysql.sh new file mode 100755 index 0000000..da12795 --- /dev/null +++ b/sbin/start_mysql.sh @@ -0,0 +1,15 @@ +#! /bin/bash + +docker service create \ + --name mysql \ + --hostname mysql \ + --network yao-net \ + --replicas 1 \ + --detach=true \ + --endpoint-mode dnsrr \ + -e MYSQL_ROOT_PASSWORD=123456 \ + -e MYSQL_DATABASE=yao \ + --mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \ + mysql:5.7 + +#--mount type=bind,source=/data/mysql,target=/var/lib/mysql \ diff --git a/sbin/start_portal.sh b/sbin/start_portal.sh new file mode 100755 index 0000000..d729824 --- /dev/null +++ b/sbin/start_portal.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +docker service create \ + --name yao-portal \ + --hostname yao-portal \ + --constraint node.role==manager \ + --network yao-net \ + --replicas 1 \ + --detach=true \ + --publish 80:80 \ + --mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \ + --mount type=bind,source=/data/yao-portal/config/,target=/config/ \ + quickdeploy/yao-portal diff --git a/sbin/start_redis.sh b/sbin/start_redis.sh new file mode 100755 index 0000000..d0f3103 --- /dev/null +++ b/sbin/start_redis.sh @@ -0,0 +1,10 @@ +#! /bin/bash + +docker service create \ + --name redis \ + --hostname redis \ + --network yao-net \ + --replicas 1 \ + --detach=true \ + --endpoint-mode dnsrr \ + redis redis-server --appendonly yes diff --git a/deploy/start_scheduler.sh b/sbin/start_scheduler.sh old mode 100644 new mode 100755 similarity index 66% rename from deploy/start_scheduler.sh rename to sbin/start_scheduler.sh index d016f0b..32959d4 --- a/deploy/start_scheduler.sh +++ b/sbin/start_scheduler.sh @@ -3,9 +3,10 @@ docker service create \ --name yao-scheduler \ --hostname yao-scheduler \ - --network swarm-net \ + --constraint node.role==manager \ + --network yao-net \ --replicas 1 \ --detach=true \ --mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \ - --mount type=bind,source=/data/yao/scheduler,target=/root/yao/ \ + --mount type=bind,source=/data/yao-scheduler/,target=/root/yao/ \ quickdeploy/yao-scheduler:dev sleep infinity diff --git a/deploy/start_zks.sh b/sbin/start_zks.sh old mode 100644 new mode 100755 similarity index 75% rename from deploy/start_zks.sh rename to sbin/start_zks.sh index b8b41ad..eda3a95 --- a/deploy/start_zks.sh +++ b/sbin/start_zks.sh @@ -1,12 +1,15 @@ +#!/bin/bash + docker service create \ --name zookeeper-node1 \ --hostname zookeeper-node1 \ --detach=true \ --replicas 1 \ - --network swarm-net \ + --network yao-net \ --endpoint-mode dnsrr \ --env ZOO_MY_ID=1 \ --env ZOO_SERVERS="server.1=zookeeper-node1:2888:3888 server.2=zookeeper-node2:2888:3888 server.3=zookeeper-node3:2888:3888" \ + --mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \ zookeeper:3.4 docker service create \ @@ -14,10 +17,11 @@ docker service create \ --hostname zookeeper-node2 \ --detach=true \ --replicas 1 \ - --network swarm-net \ + --network yao-net \ --endpoint-mode dnsrr \ --env ZOO_MY_ID=2 \ --env ZOO_SERVERS="server.1=zookeeper-node1:2888:3888 server.2=zookeeper-node2:2888:3888 server.3=zookeeper-node3:2888:3888" \ + --mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \ zookeeper:3.4 docker service create \ @@ -25,8 +29,9 @@ docker service create \ --hostname zookeeper-node3 \ --replicas 1 \ --detach=true \ - --network swarm-net \ + --network yao-net \ --endpoint-mode dnsrr \ --env ZOO_MY_ID=3 \ --env ZOO_SERVERS="server.1=zookeeper-node1:2888:3888 server.2=zookeeper-node2:2888:3888 server.3=zookeeper-node3:2888:3888" \ + --mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \ zookeeper:3.4 diff --git a/setup.md b/setup.md new file mode 100644 index 0000000..0f292fe --- /dev/null +++ b/setup.md @@ -0,0 +1,98 @@ +# Steps to bring up the YAO components + +## Install docker +```bash +curl -fsSL https://get.docker.com | sh +``` + + +## Install nvidia driver + + +## Install Nvidia-docker +Read [NVIDIA/nvidia-docker](https://github.com/NVIDIA/nvidia-docker) for guidance. + +Set default runtime to nvidia, see [Default runtime](https://github.com/NVIDIA/nvidia-docker/wiki/Advanced-topics#default-runtime). + + +## Init a docker swarm cluster +```bash +# on master node +docker swarm init + +# Add other nodes to the cluster +docker swarm join --token A-LONG-TOKEN-STRING-HERE 192.168.0.1:2377 +``` + + +## Create an overlay network named `yao` +```bash +docker network create --driver overlay yao-net +``` + + +## Start zk cluster +```bash +sbin/start_zks.sh +``` + + +## Start Kafka cluster +```bash +sbin/start_kafka.sh +``` + + +## Create kafka topic yao +```bash +# delete old +bin/kafka-topics.sh \ + --delete \ + --zookeeper zookeeper-node1:2181,zookeeper-node2:2181,zookeeper-node3:2181 \ + --topic yao + +# create new +bin/kafka-topics.sh \ + --create \ + --zookeeper zookeeper-node1:2181,zookeeper-node2:2181,zookeeper-node3:2181 \ + --replication-factor 3 \ + --partitions 1 \ + --topic yao +``` + + +## Start the agents +```bash +sbin/start_agent.sh +``` + + +## Start mysql +```bash +sbin/start_mysql.sh +``` + + +## Start yao-scheduler +```bash +sbin/start_scheduler.sh +``` + +## Start Redis +```bash +sbin/start_redis.sh +``` + +## Start the web portal +```bash +sbin/start_portal.sh +``` + +## Configure + +update `BASE_URL` in `/data/yao-portal/config/config.inc.php` & `/data/yao-portal/config/config.js` + +## Install + +Visit `http://YOUR_IP/install.php` +