当前位置: 首页 > news >正文

高可用虚拟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 keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.200.1   smtp_connect_timeout 30router_id LVS_DEVELvrrp_skip_check_adv_addrvrrp_garp_interval 0vrrp_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 PASSauth_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.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.200.1smtp_connect_timeout 30router_id LVS_DEVELvrrp_skip_check_adv_addrvrrp_garp_interval 0vrrp_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 PASSauth_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博客

http://www.lryc.cn/news/520545.html

相关文章:

  • AI多模态技术介绍:视觉语言模型(VLMs)指南
  • 高效工作流:用Mermaid绘制你的专属流程图;如何在Vue3中导入mermaid绘制流程图
  • uniApp通过xgplayer(西瓜播放器)接入视频实时监控
  • ws 配置 IngressRoute 和 http一样
  • IMX6ULL的IOMUXC寄存器和SNVS复用寄存器似乎都是对引脚指定复用功能的,那二者有何区别?
  • LabVIEW实现动态水球图的方法
  • 【江协STM32】11-2/3 W25Q64简介、软件SPI读写W25Q64
  • 《自动驾驶与机器人中的SLAM技术》ch2:基础数学知识
  • 算法日记2:洛谷p3853路标设置(二分答案)
  • 浅谈云计算06 | 云管理系统架构
  • Blender常规设置
  • c++ 中的容器 vector、deque 和 list 的区别
  • 【物流管理系统 - IDEAJavaSwingMySQL】基于Java实现的物流管理系统导入IDEA教程
  • 数据集-目标检测系列- 电话 测数据集 call_phone >> DataBall
  • VUE3 自定义指令的介绍
  • HTML学习笔记记录---速预CSS(2) 复合属性、盒子模型、边框线、浮动、定位
  • 二 RK3568 固件中打开 ADB 调试
  • centos9设置静态ip
  • 【Python】Python之Selenium基础教程+实战demo:提升你的测试+测试数据构造的效率!
  • 内网服务器添加共享文件夹功能并设置端口映射
  • 第三十六章 Spring之假如让你来写MVC——拦截器篇
  • TypeScript语言的学习路线
  • Python爬虫-汽车之家各车系周销量榜数据
  • C#格式化输出
  • Open FPV VTX开源之默认MAVLink设置
  • 【初识扫盲】逆概率加权
  • Ubuntu中双击自动运行shell脚本
  • 理解AJAX与Axios:异步编程的世界
  • 分组通道自注意力G-CSA详解及代码复现
  • 汽车基础软件AutoSAR自学攻略(四)-AutoSAR CP分层架构(3) (万字长文-配21张彩图)