日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

postgresql 高可用 etcd + patroni 之六 callback bind vip

發布時間:2025/3/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 postgresql 高可用 etcd + patroni 之六 callback bind vip 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

os: centos 7.4
postgresql: 9.6.9
etcd: 3.2.18
patroni: 1.4.4

本篇blog介紹下 etcd + patroni 發生切換時使用 callback 來重新設定 master 的 vip。
主要是方便自有機房或托管的,云環境貌似不能綁定固定的vip。

patroni 的一些參數

官方文檔描述在callback時又這幾個狀態:

on_reload: run this script when configuration reload is triggered.
on_restart: run this script when the cluster restarts.
on_role_change: run this script when the cluster is being promoted or demoted.
on_start: run this script when the cluster starts.
on_stop: run this script when the cluster stops.

# su - postgres $ vi /usr/patroni/conf/patroni_postgresql.ymlpostgresql:callbacks:on_start: /usr/patroni/conf/patroni_callback.shon_stop: /usr/patroni/conf/patroni_callback.shon_role_change: /usr/patroni/conf/patroni_callback.sh

patroni_callback.sh

這個腳本的作用就是,當本地postgresql變為 master 時,就綁定vip,變為slave時,就刪除vip。

# cd /usr/patroni/conf/ # vi patroni_callback.sh#!/bin/bashreadonly cb_name=$1 readonly role=$2 readonly scope=$3function usage() {echo "Usage: $0 <on_start|on_stop|on_role_change> <role> <scope>";exit 1; }echo "this is patroni callback $cb_name $role $scope"case $cb_name inon_stop)sudo ip addr del 192.168.56.100/24 dev enp0s8 label enp0s8:1 #sudo arping -q -A -c 1 -I enp0s8 192.168.56.100sudo iptables -F;;on_start);;on_role_change)if [[ $role == 'master' ]]; thensudo ip addr add 192.168.56.100/24 brd 192.168.56.255 dev enp0s8 label enp0s8:1sudo arping -q -A -c 1 -I enp0s8 192.168.56.100sudo iptables -Felif [[ $role == 'slave' ]]||[[ $role == 'replica' ]]||[[ $role == 'logical' ]]; thensudo ip addr del 192.168.56.100/24 dev enp0s8 label enp0s8:1 #sudo arping -q -A -c 1 -I enp0s8 192.168.56.100sudo iptables -Ffi;; *)usage;; esac

修改ip后,一定要使用 arping

配置 sudo

# visudo postgres ALL=(ALL) NOPASSWD:ALL

更改權限

# chown -R postgres:postgres /usr/patroni/conf/* # ls -l total 8 -rwxr--r-x 1 postgres postgres 768 Aug 8 18:59 patroni_callback.sh -rw-r--r-- 1 postgres postgres 1616 Aug 8 18:44 patroni_postgresql.yml

參考:
https://postgresconf.org/system/events/document/000/000/228/Patroni_tutorial_4x3-2.pdf

轉載于:https://www.cnblogs.com/ctypyb2002/p/9792860.html

總結

以上是生活随笔為你收集整理的postgresql 高可用 etcd + patroni 之六 callback bind vip的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。