Multi-node Docker deployments
This is a sample approach that you can follow to set up the database and other infrastructure of your choice.
The production setup for Release, as described here, can be implemented using Docker Compose as outlined below.
note
- For production deployments, it is advised to use Kubernetes to orchestrate the deployment of the applications. Docker Compose is not ideal for a production setup. Proceed at your own risk.
- For HA setup to work, you need to mount a license file or provide an environment variable
XL_LICENSE
containing a license text converted to base64 for the Release instances. - The folders you mount must be owned by user
10001
. For example, you can runsudo chown -R 10001 xl-release
if you are going to mount directories under the$PWD/xl-release
folder.
Setup
- A load balancer with HAProxy
- PostgreSQL database single-node setup
- Release nodes
Limitations
- Release should have at least three nodes to form a valid cluster.
- The database setup is for demo purposes, use your own setup or use an external database.
- The MQ setup is for demo purposes, use your own setup or use an external MQ.
- The HAProxy setup is for demo purposes, use your own setup.
Steps
Follow these steps to deploy the sample:
-
Save Docker Compose sample in your working directory and modify as needed.
-
Optionally, save this run.sh file. Change the passwords as required.
-
View the logs of individual containers using the
docker logs <container_name> -f
command. -
Access the Release UI at
http://localhost:8081
. -
To shut down the setup, run the following command:
# Shutdown deployments
docker-compose -f docker-compose-xlr-ha.yaml downFor upgrade procedures, please see Upgrading Multi-Node Docker Deployments.