Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Documentation on multi-node system #17

Closed
kashalls opened this issue Jan 6, 2024 · 4 comments
Closed

Documentation on multi-node system #17

kashalls opened this issue Jan 6, 2024 · 4 comments
Assignees

Comments

@kashalls
Copy link

kashalls commented Jan 6, 2024

Currently vorker seems to have Multi Node support as mentioned on the README. Is there any documentation to how you would set this up?

@VaalaCat
Copy link
Owner

VaalaCat commented Jan 6, 2024

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

  • master
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
      # - 10080:10080 # tunnel reverse proxy port, only when debug need expose this
      - 18080:18080 # tunnel relay port, agent need this port connect to master
    restart: unless-stopped
  • agent 1
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
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

@VaalaCat VaalaCat self-assigned this Jan 6, 2024
@kashalls
Copy link
Author

kashalls commented Jan 6, 2024

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.

@VaalaCat
Copy link
Owner

VaalaCat commented Jan 6, 2024

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.

#15 I have explained Vorker's goals in detail under this question

@kashalls
Copy link
Author

kashalls commented Jan 6, 2024

Thank you for your information!

@kashalls kashalls closed this as completed Jan 6, 2024
@VaalaCat VaalaCat pinned this issue Jan 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants