From 2a4ceaeda9d8477202236955a8e49f00ade9c004 Mon Sep 17 00:00:00 2001 From: colben Date: Wed, 4 Dec 2024 22:33:57 +0800 Subject: [PATCH] update --- content/post/keepalived.md | 85 +++++++++++++------------------------- 1 file changed, 29 insertions(+), 56 deletions(-) diff --git a/content/post/keepalived.md b/content/post/keepalived.md index 5e4f02e..2d97fac 100644 --- a/content/post/keepalived.md +++ b/content/post/keepalived.md @@ -5,27 +5,34 @@ lastmod: 2019-10-30T11:22:03+08:00 tags: ["keepalived", "高可用", "负载均衡"] categories: ["ha/lb"] --- - -## 两个 haproxy 不抢占 +## keepalive 服务器 - 环境 - - haproxy 服务器 - - haproxy101: 10.1.1.101 - - haproxy102: 10.1.1.102 + - 应用服务器 + - ka101: 10.1.1.101 + - ka102: 10.1.1.102 - 虚拟地址 - ip: 10.1.1.100 -- 在全部 haproxy 服务器上安装 keepalived + +- 安装 keepalived ```bash yum install keepalived ``` -- 在全部 haproxy 服务器上配置 haproxy 和 keepalived 自启动 + +- 配置虚拟 ip ```bash - systemctl enable haproxy - systemctl enable keepalived + echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore + echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce + echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore + echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce + ip addr add 10.1.1.100/32 brd 10.1.1.100 dev lo + ip route add 10.1.1.100 dev lo ``` + +## 两个 haproxy 不抢占 - MASTER/BACKUP 完整配置 ``` global_defs { - router_id haproxy101 #BACKUP 这里是 haproxy102 + router_id ka101 #BACKUP 这里是 ka102 script_user root enable_script_security } @@ -58,11 +65,6 @@ categories: ["ha/lb"] ## 两个 LVS-DR 调度器不抢占均衡后端 MySQL 和 Ceph 负载 - 环境 - - keepalived 服务器 - - ka101: 10.1.1.101 - - ka102: 10.1.1.102 - - 虚拟地址 - - ip: 10.1.1.100 - mysqld 服务器 - mysql103: 10.1.1.103 - mysql104: 10.1.1.104 @@ -71,19 +73,12 @@ categories: ["ha/lb"] - ceph106: 10.1.1.106 - ceph107: 10.1.1.107 - ceph108: 10.1.1.108 -- 在全部 keepalived 服务器上安装 keepalived - ```bash - yum install keepalived - ``` -- 在全部 keepalived 服务器上配置 keepalived 自启动 - ```bash - systemctl enable keepalived - ``` + - MASTER/BACKUP 完整配置 - 全局和实例配置 ``` global_defs { - router_id keepalive101 #BACKUP 配置 keepalive102 + router_id ka101 #BACKUP 配置 ka102 } vrrp_instance V1_1 { state BACKUP #BACKUP 也配置 BACKUP @@ -101,6 +96,7 @@ categories: ["ha/lb"] } } ``` + - LVS 均衡 mysql galera cluser 负载 ``` virtual_server 10.1.1.100 3306 { @@ -134,6 +130,7 @@ categories: ["ha/lb"] } } ``` + - LVS 均衡 ceph radosgw 负载 ``` virtual_server 10.1.1.100 7480 { @@ -182,36 +179,12 @@ categories: ["ha/lb"] } } ``` -- 在全部 mysql 和 ceph-radosgw 服务器上配置虚拟 ip - ```bash - echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore - echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce - echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore - echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce - ip addr add 10.1.1.100/32 brd 10.1.1.100 dev lo - ip route add 10.1.1.100 dev lo - ``` ## 不抢占自动切换两台 Redis 主从状态 -- 环境 - - Redis 服务器 - - redis101: 10.1.1.101 - - redis102: 10.1.1.102 - - 虚拟地址 - - ip: 10.1.1.100 -- 在全部 redis 服务器上安装 keepalived - ```bash - yum install keepalived - ``` -- 在全部 redis 服务器上配置 redis 和 keepalived 自启动 - ```bash - systemctl enable redis - systemctl enable keepalived - ``` - MASTER/BACKUP 完整配置 ``` global_defs { - router_id redis101 #BACKUP 这里是 redis102 + router_id ka101 #BACKUP 这里是 ka102 script_user root enable_script_security } @@ -243,6 +216,7 @@ categories: ["ha/lb"] } } ``` + - 在全部 redis 服务器上创建 /etc/keepalived/scripts/master.sh 脚本,内容如下 ```bash #!/bin/bash @@ -250,7 +224,8 @@ categories: ["ha/lb"] /usr/bin/sed -i '/^slaveof/d' /etc/redis.conf /usr/bin/systemctl restart redis ``` -- 在 redis101 上创建 /etc/keepalived/scripts/backup.sh 脚本,内容如下 + +- 在 ka101 上创建 /etc/keepalived/scripts/backup.sh 脚本,内容如下 ```bash #!/bin/bash # @@ -258,7 +233,8 @@ categories: ["ha/lb"] echo 'slaveof 10.1.1.102 6379' >> /etc/redis.conf /usr/bin/systemctl restart redis ``` -- 在 redis102 上创建 /etc/keepalived/scripts/backup.sh 脚本,内容如下 + +- 在 ka102 上创建 /etc/keepalived/scripts/backup.sh 脚本,内容如下 ```bash #!/bin/bash # @@ -266,10 +242,12 @@ categories: ["ha/lb"] echo 'slaveof 10.1.1.101 6379' >> /etc/redis.conf /usr/bin/systemctl restart redis ``` + - 在全部 redis 服务器上赋予脚本可执行权限 ```bash chmod 0755 /etc/keepalived/scripts/*.sh ``` + - 修改 redis 配置 ``` requirepass redis_password @@ -277,9 +255,4 @@ categories: ["ha/lb"] maxmemory 4294967296 maxmemory-policy volatile-lru ``` -- 在全部 redis 服务器上启动 redis 和 keepalived 服务 - ```bash - systemctl start redis - systemctl start keepalived - ```