2015-03-16 09:47:52 -07:00
2015-03-15 23:16:48 -07:00
2015-03-15 23:16:48 -07:00
2015-03-15 23:16:48 -07:00
2015-03-15 23:16:48 -07:00
2015-03-16 16:23:42 -07:00
2015-03-16 08:30:15 -07:00

Template for PostgreSQL HA with etcd

There are many ways to run high availability with PostgreSQL; here we present a template for you to create your own custom fit high availability solution using etcd and python for maximum accessibility.

To get started, do the following from different terminals:

> etcd --data-dir=data/etcd
> ./run.py postgres0.yml
> ./run.py postgres1.yml

From there, you will see a high-availability cluster start up. Test different settings in the YAML files to see how behavior changes. Kill some of the different components to see how the system behaves.

To get a haproxy load balancing between these two hosts, run:

> haproxy -f haproxy.cfg
> sh haproxy_status.sh 127.0.0.1 5432 15432
> sh haproxy_status.sh 127.0.0.1 5433 15433
> psql --host 127.0.0.1 --port 5000 postgres

Requirements on a Mac

Run the following on a Mac to install requirements:

brew install postgresql etcd haproxy libyaml
pip install psycopg2 pyyaml

Notice

There are many different ways to do HA with PostgreSQL, see the docs for a complete list.

We call this project a "template" because it is far from a one-size fits all, or a plug-and-play replication system. It will have it's own caveats. Use wisely.

S
Description
A template for PostgreSQL High Availability with Etcd, Consul, ZooKeeper, or Kubernetes
Readme MIT
10 MiB
Languages
Python 96.5%
Gherkin 2.4%
Dockerfile 0.6%
Shell 0.4%
Go Template 0.1%