高可用虚拟IP-keepalived

个人觉得华为云这个文档十分详细:
使用虚拟IP和Keepalived搭建高可用Web集群_弹性云服务器 ECS_华为云

应用场景:虚拟IP技术。虚拟IP,就是一个未分配给真实主机的IP,也就是说对外提供数据库服务器的主机除了有一个真实IP外还有一个虚IP,使用这两个IP中的任意一个都可以连接到这台主机,所有项目中数据库链接一项配置的都是这个虚IP,当服务器发生故障无法对外提供服务时,动态将这个虚IP切换到备用主机。

1.需要同一vpc网络下。

创建虚拟ip

ifconfig eth0:1 10.0.4.10 netmask 255.255.0.0

删除虚拟IP

ip addr del 10.0.4.10 dev eth0

以上是本地测试是由。本文已腾讯云申请的高可用虚拟IP为例子

2.在主服务器和备服务器上安装 keepalived 软件

yum install -y keepalived

3.登录主节点云服务器 HAVIP-01,执行 vim /etc/keepalived/keepalived.conf,修改相关配置。

HAVIP-01 和 HAVIP-02 在本例中将被配置成"等权重节点",即 state 均为 BACKUP,priority 均为 100。优点是可以减少抖动造成的倒换次数

   ! Configuration File for keepalived
   global_defs {
      notification_email {
        acassen@firewall.loc
        failover@firewall.loc
        sysadmin@firewall.loc
      }
      notification_email_from Alexandre.Cassen@firewall.loc
      smtp_server 192.168.200.1   
      smtp_connect_timeout 30
      router_id LVS_DEVEL
      vrrp_skip_check_adv_addr
      vrrp_garp_interval 0
      vrrp_gna_interval 0
   }
   vrrp_script checkhaproxy
   {
        script "/etc/keepalived/do_sth.sh"   # 检测业务进程是否运行正常。其中"do_sth.sh"文件为用户自定义的业务进程检测脚本,请根据业务需要来执行,执行时"do_sth.sh"更换为实际的脚本名称。
        interval 5
   }
   vrrp_instance VI_1 {
   # 注意主备参数选择
   state BACKUP              # 设置初始状态均为"备"
       interface eth0          # 设置绑定 VIP 的网卡 例如 eth0  
       virtual_router_id 51    # 配置集群 virtual_router_id 值
       nopreempt               # 设置非抢占模式,
       # preempt_delay 10      # 仅 state MASTER 时生效    
       priority 100            # 两设备是相同值的等权重节点
       advert_int 5        
       authentication {
           auth_type PASS
           auth_pass 1111
       }
       unicast_src_ip 172.16.16.5  # 设置本机内网IP地址
       unicast_peer {
           172.16.16.6             # 对端设备的 IP 地址
       }
       virtual_ipaddress {
           172.16.16.12           # 设置高可用虚拟 VIP 
       }
       notify_master "/etc/keepalived/notify_action.sh MASTER"
       notify_backup "/etc/keepalived/notify_action.sh BACKUP"
       notify_fault "/etc/keepalived/notify_action.sh FAULT"
       notify_stop "/etc/keepalived/notify_action.sh STOP"
       garp_master_delay 1    # 设置当切为主状态后多久更新 ARP 缓存
       garp_master_refresh 5   # 设置主节点发送 ARP 报文的时间间隔

       track_interface {
                   eth0               # 使用绑定 VIP 的网卡 例如 eth0
           }
       track_script {
          checkhaproxy 
       }
   }

4.登录备节点云服务器 HAVIP-02,执行 vim /etc/keepalived/keepalived.conf,修改相关配置。

! Configuration File for keepalived
global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}
vrrp_script checkhaproxy
{
    script "/etc/keepalived/do_sth.sh"
     interval 5
}
vrrp_instance VI_1 {
# 注意主备参数选择
state BACKUP            # 设置初始状态均为"备"
    interface eth0          # 设置绑定 VIP 的网卡 例如 eth0  
    virtual_router_id 51    # 配置集群 virtual_router_id 值
    nopreempt               # 设置非抢占模式
    # preempt_delay 10      # 仅 state MASTER 时生效   
    priority 100            # 两设备是相同值的等权重节点
    advert_int 5       
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    unicast_src_ip 172.16.16.6  # 设置本机内网 IP 地址
    unicast_peer {
        172.16.16.5             # 对端设备的 IP 地址
    }
    virtual_ipaddress {
        172.16.16.12           # 设置高可用虚拟 VIP 
    }
    notify_master "/etc/keepalived/notify_action.sh MASTER"
    notify_backup "/etc/keepalived/notify_action.sh BACKUP"
    notify_fault "/etc/keepalived/notify_action.sh FAULT"
    notify_stop "/etc/keepalived/notify_action.sh STOP"
    garp_master_delay 1    # 设置当切为主状态后多久更新 ARP 缓存
    garp_master_refresh 5   # 设置主节点发送ARP报文的时间间隔
    track_interface {
                eth0               # 使用绑定 VIP 的网卡 例如 eth0
        }
    track_script {
       checkhaproxy 
    }
}

5.重启 keepalived 进程使配置生效。

systemctl restart keepalived

6.通过重启 keepalived 进程、重启子机等方式模拟主机故障,检测 VIP 是否能正常迁移。

如果完成了主备切换,则可以看到控制台的绑定主机已经切换为 backup 云服务器。

参考文档:

私有网络 用 HAVIP+Keepalived 搭建高可用主备集群-实践教程-文档中心-腾讯云

腾讯云配置高可用虚拟IP打造nginx+keepalived高可用_腾讯公有云高可用虚拟ip-CSDN博客

相关推荐
芯心智库11 分钟前
【DAPM杂谈之一】DAPM作用与内核文档解读
linux·c语言·c++·华为云·云计算·音视频·京东云
雷学习13 分钟前
shell脚本练习
linux·运维·服务器
rr_R_rr17 分钟前
处理机调度与死锁
linux·windows·操作系统
KeyPan1 小时前
【Ubuntu与Linux操作系统:十二、LAMP平台与PHP开发环境】
android·java·linux·运维·服务器·ubuntu
木人舟2 小时前
在VMware配置Ubuntu20.04静态ip的方法
网络·网络协议·tcp/ip
NightReader2 小时前
Ubuntu 24.04蓝牙失效之复活
linux·运维·ubuntu
dog2503 小时前
互联网架构变迁:从 TCP/IP “呼叫” 到 NDN “内容分发” 的逐浪之旅
网络·tcp/ip·架构
猫猫的小茶馆4 小时前
【IO编程】标准IO和文件IO的对比
linux·c语言·嵌入式硬件·microsoft·嵌入式实时数据库