keepalived双主多实例

本文介绍了一种使用Keepalived实现双主热备的配置方案,通过设置两个物理机作为主备节点,各自拥有一个虚拟IP地址,确保高可用性和负载均衡。详细展示了配置文件的具体内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

keepalived双主即在配置文件中加入第二个虚拟IP
物理机A:192.168.202.101
物理机B:192.168.202.102
VIP1:192.168.202.29(MASTER物理机A)
VIP2:192.168.202.30(MASTER物理机B)
物理机A:

! Configuration File for keepalived

global_defs { 
   notification_email {
    49000448@qq.com
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_3
}

vrrp_instance VI_1 {
    state MASTER            
    interface eno16777736
    virtual_router_id 51
    priority 150              
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
      192.168.202.29/24 
    }
}

virtual_server 192.168.202.29 80 {
    delay_loop 6            
    lb_algo wrr                
    lb_kind DR                
    nat_mask 255.255.255.0
    persistence_timeout 50     
    protocol TCP                

    real_server 192.168.202.103 80 {
        weight 1              
        TCP_CHECK {
        connect_timeout 8       
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }

    real_server 192.168.202.104 80 {
        weight 1              
        TCP_CHECK {
        connect_timeout 8       
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }
}
vrrp_instance VI_2 {        #只是在这里额外添加了一个模块
    state BACKUP            
    interface eno16777736
    virtual_router_id 52
    priority 100              
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
      192.168.202.30/24 
    }
}

virtual_server 192.168.202.30 80 {
    delay_loop 6            
    lb_algo rr                
    lb_kind DR                
    nat_mask 255.255.255.0
    persistence_timeout 50     
    protocol TCP                

    real_server 192.168.202.103 80 {
        weight 1              
        TCP_CHECK {
        connect_timeout 8       
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }

    real_server 192.168.202.104 80 {
        weight 1              
        TCP_CHECK {
        connect_timeout 8       
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }
}

物理机B:

! Configuration File for keepalived

global_defs {
   notification_email {
    49000448@qq.com
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_3
}

vrrp_instance VI_1 {
    state BACKUP        
    interface eno16777736
    virtual_router_id 51
    priority 150              
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
      192.168.202.29/24 
    }
}

virtual_server 192.168.202.29 80 {
    delay_loop 6            
    lb_algo wrr                
    lb_kind DR                
    nat_mask 255.255.255.0
    persistence_timeout 50     
    protocol TCP                

    real_server 192.168.202.103 80 {
        weight 1              
        TCP_CHECK {
        connect_timeout 8       
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }

    real_server 192.168.202.104 80 {
        weight 1              
        TCP_CHECK {
        connect_timeout 8       
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }
}
vrrp_instance VI_2 {
    state MASTER            
    interface eno16777736
    virtual_router_id 52
    priority 150              
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
      192.168.202.30/24 
    }
}

virtual_server 192.168.202.30 80 {
    delay_loop 6            
    lb_algo rr                
    lb_kind DR                
    nat_mask 255.255.255.0
    persistence_timeout 50     
    protocol TCP                

    real_server 192.168.202.103 80 {
        weight 1              
        TCP_CHECK {
        connect_timeout 8       
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }

    real_server 192.168.202.104 80 {
        weight 1              
        TCP_CHECK {
        connect_timeout 8       
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }
}
### Keepalived 配置概述 在构建高可用性网络架构时,Keepalived配置允许两台或多台服务器共同管理一个虚拟 IP 地址 (VIP),并确保即使其中一台服务器出现故障,另一台也能无缝接管 VIP 和相关服务。这种设置对于提高系统的可靠性和稳定性至关重要。 ### 实现 Keepalived 配置的关键要素 #### 1. 安装与基础环境准备 确保所有节点都安装了最新版本的 Keepalived 软件包,并且操作系统内核参数已适当调整以支持多播通信和其他必要的功能[^3]。 ```bash yum install -y keepalived ``` #### 2. 配置文件详解 编辑 `/etc/keepalived/keepalived.conf` 文件,在每台机器上定义不同的优先级来区分 MASTER 和 BACKUP 角色: - **MASTER** 设备上的配置片段: ```plaintext vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 12345678 } virtual_ipaddress { 192.168.126.111 } } ``` - **BACKUP** 设备上的配置片段: ```plaintext vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 51 priority 90 advert_int 1 authentication { auth_type PASS auth_pass 12345678 } virtual_ipaddress { 192.168.126.111 } } ``` 上述配置通过 `priority` 参数指定了不同角色间的切换逻辑;较高的数值表示更高的抢占权。此外,还设置了相同的 `virtual_router_id` 来标识同一组 VRRP 实例。 #### 3. 增强健壮性的措施 为了进一步增强系统的稳定性和安全性,建议采用额外的心跳检测机制以及预防脑裂现象发生的策略。例如,可以通过编写简单的 shell 脚本来监控集群成员间的状态变化,并在网络连接异常的情况下动降级本地实例的角色[^4]。 ```bash #!/bin/bash ping -c 3 peer_node_ip_address || systemctl stop keepalived.service ``` 此脚本会在探测到目标不可达三次之后停止当前节点上的 Keepalived 进程,从而促使其他健康节点接管 VIP。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值