Closed kashalls closed 8 months ago
You can navigate to docker-compose.yaml file, this file is a minimalism multi node configuration example.
Vorker have one master and multi agent, for production deployment, assume there are three nodes, one master and two agents, their dockercompose file should be as follows
More detailed documentation is still under construction, the configuration given below should work fine, if there are any issues please let me know and I'll be happy to fix them
version: '3'
services: vorker-master: image: vaalacat/vorker privileged: true volumes:
/tmp/workerd-master:/var/lib/litefs # if you want to enable litefs, switch to this and change to your own path environment:
WORKER_URL_SUFFIX=.example.com # worker url = SCHEME://WORKERNAME+WORKER_URL_SUFFIX eg: .example.com
SCHEME=http
ENABLE_REGISTER=false # only allow admin to register
COOKIE_DOMAIN=example.com
JWT_SECRET=123123
AGENT_SECRET=123123
RUN_MODE=master
LITEFS_ENABLED=true
LITEFS_IS_MASTER=true
LITEFS_LISTEN_ADDR=:20202
DB_PATH=/litefs/db.sqlite ports:
8080:8080 # reverse proxy port, this port is all workers entry
8888:8888 # admin webui port
18080:18080 # tunnel relay port, agent need this port connect to master restart: unless-stopped
- agent 1
```yaml
version: '3'
services: vorker-agent: privileged: true image: vaalacat/vorker volumes:
/tmp/workerd-agent:/var/lib/litefs # if you want to enable litefs, switch to this, and change to your own path environment:
WORKER_URL_SUFFIX=.example.com # worker url = SCHEME://WORKERNAME+WORKER_URL_SUFFIX eg: .example.com must be same as master
AGENT_SECRET=123123 # must be same as master
RUN_MODE=agent
TUNNEL_HOST=vorker-master # change here to master ip
MASTER_ENDPOINT=http://vorker-master:8888 # change here to master ip, you can modify http to https if you have a reverse proxy for vorker
NODE_NAME=agent-1 # must be different amone agents
LITEFS_ENABLED=true
LITEFS_IS_MASTER=false
LITEFS_LISTEN_ADDR=:20201 # must be different from master
DB_PATH=/litefs/db.sqlite
- agent 2
```yaml
version: '3'
services: vorker-agent: privileged: true image: vaalacat/vorker volumes:
/tmp/workerd-agent:/var/lib/litefs # if you want to enable litefs, switch to this, and change to your own path environment:
WORKER_URL_SUFFIX=.example.com # worker url = SCHEME://WORKERNAME+WORKER_URL_SUFFIX eg: .example.com must be same as master
AGENT_SECRET=123123 # must be same as master
RUN_MODE=agent
TUNNEL_HOST=vorker-master # change here to master ip
MASTER_ENDPOINT=http://vorker-master:8888 # change here to master ip, you can modify http to https if you have a reverse proxy for vorker
NODE_NAME=agent-2 # must be different amone agents
LITEFS_ENABLED=true
LITEFS_IS_MASTER=false
LITEFS_LISTEN_ADDR=:20201 # must be different from master
DB_PATH=/litefs/db.sqlite
Vorker have one master and multi agent, for production deployment, assume there are three nodes, one master and two agents, their dockercompose file should be as follows
Interesting, thanks for this. I'm going to try and push this to my kubernetes cluster for testing. I'm not too good with Chinese so I hope a internationalization can be implemented into the frontend as well.
Does the agent require individual volumes or can the agent's share the same volume? I brought up #15 as an seperate issue because I have already existing infrastructure that is made highly available. Ceph is on all k8s nodes, minio is located elsewhere in my network, postgres/mysql is also made HA.
Vorker's goal is to build a self-consistent system that does not need to rely on external components to achieve distribution.
Each agent uses an independent volume, and Vorker will implement all the functions of distributed HA internally.
No need to rely on external infrastructure.
internationalization has already implemented, Internationalization documentation is here: i18n, the front end should automatically detect the locale. If i18n does not work, you can open a new issue and let me fix it.
Thank you for your information!
Currently vorker seems to have
Multi Node
support as mentioned on the README. Is there any documentation to how you would set this up?