Sobes.tech
Middle

How to ensure stable connection to the master node in a PostgreSQL (Patroni) cluster during deployment?

sobes.tech AI

Answer from AI

To ensure a stable connection to the master node in a PostgreSQL cluster with Patroni during deployment, you need to:

  • Use a virtual IP (VIP) or DNS name that always points to the current master. Patroni can manage the VIP, switching it to the new master in case of failure.
  • Configure client applications to connect to this VIP or DNS, not directly to a specific node.
  • Ensure the failover mechanism in Patroni works correctly so that master switching occurs quickly and without failures.
  • During deployment, use rolling updates, updating nodes one by one, so the master is always available.

Example of connection setup via VIP:

# patroni.yml
restapi:
  listen: 0.0.0.0:8008
  connect_address: 10.0.0.1:8008

bootstrap:
  dcs:
    ttl: 30
    loop_wait: 10
    retry_timeout: 10
    maximum_lag_on_failover: 1048576

postgresql:
  listen: 0.0.0.0:5432
  connect_address: 10.0.0.1:5432

watchdog:
  mode: automatic

# VIP configuration in Patroni
tags:
  nofailover: false
  noloadbalance: false
  clonefrom: false
  nosync: false

# The VIP should be configured at the network and Patroni level

Thus, clients always connect to a single address, and Patroni manages which node is currently the master.

How to ensure stable connection to the master node in… - sobes.tech