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

keepalived和lvs高可用集群

keepavlied和lvs高可用集群搭建

主备模式:

在这里插入图片描述

关闭防火墙和selinux

systemctl stop firewalld
setenforce 0

部署master负载调度服务器 zyj86

安装ipvsadm keepalived

yum install -y keepalived ipvsadm

修改主节点配置

vim /etc/keepalived/keepalived.conf
! Configuration File for keepalivedglobal_defs {notification_email {root@localhost #邮件设置}notification_email_from root@localhost#发邮件的地址smtp_server 127.0.0.1#邮件服务器地址smtp_connect_timeout 30#邮件服务器连接timeoutrouter_id zyjhost86 #每个keepalived主机的唯一标识,建议使用主机名vrrp_skip_check_adv_addr#对所有通告报文都检查,会比较消耗性能,启用此配置后,如果收到的通告报文和上一个报文是同一个路由器,则跳过检查,默认值为全检查#vrrp_strict#严格遵守VRRP协议,启用此项后以下状况将无法启动服务:1.无VIP地址 2.配置了单播邻居 3.在VRRP版本2中有IPv6地址,开启动此项并且没有配置vrrp_iptables时会自动开启iptables防火墙规则,默认导致VIP无法访问,建议不加此项配置。vrrp_garp_interval 0#gratuitous ARP messages 免费ARP报文发送延迟,0表示不延迟vrrp_gna_interval 0 #unsolicited NA messages (不请自来)消息发送延迟
}vrrp_instance VI_1 {state MASTER #当前节点在此虚拟路由器上的初始状态,状态为MASTER或者BACKUPinterface ens160virtual_router_id 51 #每个虚拟路由器惟一标识,范围:0-255,每个虚拟路由器此值必须唯一,否则服务无法启动,同属一个虚拟路由器的多个keepalived节点必须相同,务必要确认在同一网络中此值必须唯一priority 100 #优先级,master优先级一定要大于backup#当前物理节点在此虚拟路由器的优先级,范围:1-254,值越大优先级越高,每个keepalived主机节点此值不同advert_int 1 #master和backup之间通告间隔的秒数(心跳频率)authentication {auth_type PASS #认证信息auth_pass 1111 #认证信息}virtual_ipaddress {192.168.3.188 #虚拟ip地址}
}#虚拟地址 端口
virtual_server 192.168.3.188 80 {delay_loop 6#健康间隔时间6秒lb_algo rr#调度算法轮询lb_kind DR#lvs模式为DR直连路由模式persistence_timeout 50#连接保持时间为50 可以修改为0 轮询较快protocol TCP#采用协议#后端真实服务器节点的ip地址real_server 192.168.3.88 80 {weight 1#节点权重TCP_CHECK {connect_port 80#检查目标端口connect_timeout 3#连接超时 nb_get_retry 3#重试次数delay_before_retry 3#重试间隔时间}#tcp检测后端服务器节点是否正常}real_server 192.168.3.89 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 3}}}
systemctl enable --now keepalived.service

部署backup负载调度服务器 zyj87

安装ipvsadm keepalived

yum install -y keepalived ipvsadm

修改备用节点配置

vim /etc/keepalived/keepalived.conf
! Configuration File for keepalivedglobal_defs {notification_email {root@localhost #邮件设置}notification_email_from root@localhost#发邮件的地址smtp_server 127.0.0.1#邮件服务器地址smtp_connect_timeout 30#邮件服务器连接timeoutrouter_id zyjhost87 #每个keepalived主机的唯一标识,建议使用主机名vrrp_skip_check_adv_addr#对所有通告报文都检查,会比较消耗性能,启用此配置后,如果收到的通告报文和上一个报文是同一个路由器,则跳过检查,默认值为全检查#vrrp_strict#严格遵守VRRP协议,启用此项后以下状况将无法启动服务:1.无VIP地址 2.配置了单播邻居 3.在VRRP版本2中有IPv6地址,开启动此项并且没有配置vrrp_iptables时会自动开启iptables防火墙规则,默认导致VIP无法访问,建议不加此项配置。vrrp_garp_interval 0#gratuitous ARP messages 免费ARP报文发送延迟,0表示不延迟vrrp_gna_interval 0 #unsolicited NA messages (不请自来)消息发送延迟
}vrrp_instance VI_1 {state BACKUP #当前节点在此虚拟路由器上的初始状态,状态为MASTER或者BACKUPinterface ens160virtual_router_id 51 #每个虚拟路由器惟一标识,范围:0-255,每个虚拟路由器此值必须唯一,否则服务无法启动,同属一个虚拟路由器的多个keepalived节点必须相同,务必要确认在同一网络中此值必须唯一priority 99 #优先级,master优先级一定要大于backup#当前物理节点在此虚拟路由器的优先级,范围:1-254,值越大优先级越高,每个keepalived主机节点此值不同advert_int 1 #master和backup之间通告间隔的秒数(心跳频率)authentication {auth_type PASS #认证信息auth_pass 1111 #认证信息}virtual_ipaddress {192.168.3.188 #虚拟ip地址}
}#虚拟地址 端口
virtual_server 192.168.3.188 80 {delay_loop 6#健康间隔时间6秒lb_algo rr#调度算法轮询lb_kind DR#lvs模式为DR直连路由模式persistence_timeout 50#连接保持时间为50 可以修改为0 轮询较快protocol TCP#采用协议#后端真实服务器节点的ip地址real_server 192.168.3.88 80 {weight 1#节点权重TCP_CHECK {connect_port 80#检查目标端口connect_timeout 3#连接超时 nb_get_retry 3#重试次数delay_before_retry 3#重试间隔时间}#tcp检测后端服务器节点是否正常}real_server 192.168.3.89 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 3}}}
systemctl enable --now keepalived.service

keepalived会在ens160网卡上生成一个vip虚拟地址192.168.3.188

[root@zyj86 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000link/ether 00:0c:29:29:83:01 brd ff:ff:ff:ff:ff:ffaltname enp3s0inet 192.168.3.86/24 brd 192.168.3.255 scope global noprefixroute ens160valid_lft forever preferred_lft foreverinet 192.168.3.188/32 scope global ens160valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fe29:8301/64 scope link noprefixroute valid_lft forever preferred_lft forever

当主节点(192.168.3.86 zyj86)宕机后vip虚拟地址(192.168.3.188)会飘移到备用节点上即(192.168.3.87 zyj87)主机上。

部署后端服务器zyj88

#配置lo口ip地址
ifconfig lo:1 192.168.3.188/32
echo "ifconfig lo:1 192.168.3.188/32" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local#添加系统只响应目的IP为本地IP的ARP请求
#系统不使用原地址来设置ARP请求的源地址,而是物理mac地址上的IP
vim /etc/sysctl.conf
#加入以下配置
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2#刷新配置
sysctl -p

安装web服务器 写入测试页面

yum install httpd -y
echo "zyj88" > /var/www/html/index.html
systemctl enable --now httpd

部署后端服务器zyj89

#配置lo口ip地址
ifconfig lo:1 192.168.3.188/32
echo "ifconfig lo:1 192.168.3.188/32" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local#添加系统只响应目的IP为本地IP的ARP请求
#系统不使用原地址来设置ARP请求的源地址,而是物理mac地址上的IP
vim /etc/sysctl.conf
#加入以下配置
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2#刷新配置
sysctl -p

安装web服务器 写入测试页面

yum install httpd -y
echo "zyj89" > /var/www/html/index.html
systemctl enable --now httpd

访问测试:
在这里插入图片描述

互为主备模式:

在这里插入图片描述

关闭防火墙和selinux

systemctl stop firewalld
setenforce 0

部署master/backup负载调度服务器 zyj86

安装ipvsadm keepalived

yum install -y keepalived ipvsadm

修改负载调度服务器 zyj86配置

vim /etc/keepalived/keepalived.conf
! Configuration File for keepalivedglobal_defs {notification_email {root@localhost #邮件设置}notification_email_from root@localhost#发邮件的地址smtp_server 127.0.0.1#邮件服务器地址smtp_connect_timeout 30#邮件服务器连接timeoutrouter_id zyjhost86 #每个keepalived主机的唯一标识,建议使用主机名vrrp_skip_check_adv_addr#对所有通告报文都检查,会比较消耗性能,启用此配置后,如果收到的通告报文和上一个报文是同一个路由器,则跳过检查,默认值为全检查#vrrp_strict#严格遵守VRRP协议,启用此项后以下状况将无法启动服务:1.无VIP地址 2.配置了单播邻居 3.在VRRP版本2中有IPv6地址,开启动此项并且没有配置vrrp_iptables时会自动开启iptables防火墙规则,默认导致VIP无法访问,建议不加此项配置。vrrp_garp_interval 0#gratuitous ARP messages 免费ARP报文发送延迟,0表示不延迟vrrp_gna_interval 0 #unsolicited NA messages (不请自来)消息发送延迟
}vrrp_instance VI_1 {state MASTER #当前节点在此虚拟路由器上的初始状态,状态为MASTER或者BACKUPinterface ens160virtual_router_id 51 #每个虚拟路由器惟一标识,范围:0-255,每个虚拟路由器此值必须唯一,否则服务无法启动,同属一个虚拟路由器的多个keepalived节点必须相同,务必要确认在同一网络中此值必须唯一priority 100 #优先级,master优先级一定要大于backup#当前物理节点在此虚拟路由器的优先级,范围:1-254,值越大优先级越高,每个keepalived主机节点此值不同advert_int 1 #master和backup之间通告间隔的秒数(心跳频率)authentication {auth_type PASS #认证信息auth_pass 1111 #认证信息}virtual_ipaddress {192.168.3.188 #虚拟ip地址}
}#互为主备就再加一组配置
vrrp_instance VI_2 {state BACKUP #当前节点在此虚拟路由器上的初始状态,状态为MASTER或者BACKUPinterface ens160virtual_router_id 40#每个虚拟路由器惟一标识,范围:0-255,每个虚拟路由器此值必须唯一,否则服务无法启动,同属一个虚拟路由器的多个keepalived节点必须相同,务必要确认在同一网络中此值必须唯一priority 90 #优先级,master优先级一定要大于backup#当前物理节点在此虚拟路由器的优先级,范围:1-254,值越大优先级越高,每个keepalived主机节点此值不同advert_int 1 #master和backup之间通告间隔的秒数(心跳频率)authentication {auth_type PASS #认证信息auth_pass 2222 #认证信息}virtual_ipaddress {192.168.3.199 #虚拟ip地址}
}#虚拟地址 端口
virtual_server 192.168.3.188 80 {delay_loop 6#健康间隔时间6秒lb_algo rr#调度算法轮询lb_kind DR#lvs模式为DR直连路由模式persistence_timeout 50#连接保持时间为50 可以修改为0 轮询较快protocol TCP#采用协议#后端真实服务器节点的ip地址real_server 192.168.3.88 80 {weight 1#节点权重TCP_CHECK {connect_port 80#检查目标端口connect_timeout 3#连接超时 nb_get_retry 3#重试次数delay_before_retry 3#重试间隔时间}#tcp检测后端服务器节点是否正常}real_server 192.168.3.89 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 3}}}#互为主备就再加一组配置
#虚拟地址 端口
virtual_server 192.168.3.199 80 {delay_loop 6#健康间隔时间6秒lb_algo rr#调度算法轮询lb_kind DR#lvs模式为DR直连路由模式persistence_timeout 50#连接保持时间为50 可以修改为0 轮询较快protocol TCP#采用协议#后端真实服务器节点的ip地址real_server 192.168.3.88 80 {weight 1#节点权重TCP_CHECK {connect_port 80#检查目标端口connect_timeout 3#连接超时 nb_get_retry 3#重试次数delay_before_retry 3#重试间隔时间}#tcp检测后端服务器节点是否正常}real_server 192.168.3.89 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 3}}}
systemctl enable --now keepalived.service

部署master/backup负载调度服务器 zyj87

安装ipvsadm keepalived

yum install -y keepalived ipvsadm

修改负载调度服务器 zyj87配置

vim /etc/keepalived/keepalived.conf
! Configuration File for keepalivedglobal_defs {notification_email {root@localhost #邮件设置}notification_email_from root@localhost#发邮件的地址smtp_server 127.0.0.1#邮件服务器地址smtp_connect_timeout 30#邮件服务器连接timeoutrouter_id zyjhost86 #每个keepalived主机的唯一标识,建议使用主机名vrrp_skip_check_adv_addr#对所有通告报文都检查,会比较消耗性能,启用此配置后,如果收到的通告报文和上一个报文是同一个路由器,则跳过检查,默认值为全检查#vrrp_strict#严格遵守VRRP协议,启用此项后以下状况将无法启动服务:1.无VIP地址 2.配置了单播邻居 3.在VRRP版本2中有IPv6地址,开启动此项并且没有配置vrrp_iptables时会自动开启iptables防火墙规则,默认导致VIP无法访问,建议不加此项配置。vrrp_garp_interval 0#gratuitous ARP messages 免费ARP报文发送延迟,0表示不延迟vrrp_gna_interval 0 #unsolicited NA messages (不请自来)消息发送延迟
}vrrp_instance VI_1 {state MASTER #当前节点在此虚拟路由器上的初始状态,状态为MASTER或者BACKUPinterface ens160virtual_router_id 51 #每个虚拟路由器惟一标识,范围:0-255,每个虚拟路由器此值必须唯一,否则服务无法启动,同属一个虚拟路由器的多个keepalived节点必须相同,务必要确认在同一网络中此值必须唯一priority 100 #优先级,master优先级一定要大于backup#当前物理节点在此虚拟路由器的优先级,范围:1-254,值越大优先级越高,每个keepalived主机节点此值不同advert_int 1 #master和backup之间通告间隔的秒数(心跳频率)authentication {auth_type PASS #认证信息auth_pass 1111 #认证信息}virtual_ipaddress {192.168.3.188 #虚拟ip地址}
}#互为主备就再加一组配置
vrrp_instance VI_2 {state MASTER #当前节点在此虚拟路由器上的初始状态,状态为MASTER或者BACKUPinterface ens160virtual_router_id 40#每个虚拟路由器惟一标识,范围:0-255,每个虚拟路由器此值必须唯一,否则服务无法启动,同属一个虚拟路由器的多个keepalived节点必须相同,务必要确认在同一网络中此值必须唯一priority 95 #优先级,master优先级一定要大于backup#当前物理节点在此虚拟路由器的优先级,范围:1-254,值越大优先级越高,每个keepalived主机节点此值不同advert_int 1 #master和backup之间通告间隔的秒数(心跳频率)authentication {auth_type PASS #认证信息auth_pass 2222 #认证信息}virtual_ipaddress {192.168.3.199 #虚拟ip地址}
}#虚拟地址 端口
virtual_server 192.168.3.188 80 {delay_loop 6#健康间隔时间6秒lb_algo rr#调度算法轮询lb_kind DR#lvs模式为DR直连路由模式persistence_timeout 50#连接保持时间为50 可以修改为0 轮询较快protocol TCP#采用协议#后端真实服务器节点的ip地址real_server 192.168.3.88 80 {weight 1#节点权重TCP_CHECK {connect_port 80#检查目标端口connect_timeout 3#连接超时 nb_get_retry 3#重试次数delay_before_retry 3#重试间隔时间}#tcp检测后端服务器节点是否正常}real_server 192.168.3.89 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 3}}}#互为主备就再加一组配置
#虚拟地址 端口
virtual_server 192.168.3.199 80 {delay_loop 6#健康间隔时间6秒lb_algo rr#调度算法轮询lb_kind DR#lvs模式为DR直连路由模式persistence_timeout 50#连接保持时间为50 可以修改为0 轮询较快protocol TCP#采用协议#后端真实服务器节点的ip地址real_server 192.168.3.88 80 {weight 1#节点权重TCP_CHECK {connect_port 80#检查目标端口connect_timeout 3#连接超时 nb_get_retry 3#重试次数delay_before_retry 3#重试间隔时间}#tcp检测后端服务器节点是否正常}real_server 192.168.3.89 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 3}}}
systemctl enable --now keepalived.service

部署后端服务器zyj88

#配置lo口ip地址
ifconfig lo:1 192.168.3.188/32
ifconfig lo:2 192.168.3.199/32
echo "ifconfig lo:1 192.168.3.188/32" >> /etc/rc.d/rc.local
echo "ifconfig lo:2 192.168.3.199/32" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local#添加系统只响应目的IP为本地IP的ARP请求
#系统不使用原地址来设置ARP请求的源地址,而是物理mac地址上的IP
vim /etc/sysctl.conf
#加入以下配置
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2#刷新配置
sysctl -p

安装web服务器 写入测试页面

yum install httpd -y
echo "zyj88" > /var/www/html/index.html
systemctl enable --now httpd

部署后端服务器zyj89

#配置lo口ip地址
ifconfig lo:1 192.168.3.188/32
ifconfig lo:2 192.168.3.199/32
echo "ifconfig lo:1 192.168.3.188/32" >> /etc/rc.d/rc.local
echo "ifconfig lo:2 192.168.3.199/32" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local#添加系统只响应目的IP为本地IP的ARP请求
#系统不使用原地址来设置ARP请求的源地址,而是物理mac地址上的IP
vim /etc/sysctl.conf
#加入以下配置
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2#刷新配置
sysctl -p

安装web服务器 写入测试页面

yum install httpd -y
echo "zyj89" > /var/www/html/index.html
systemctl enable --now httpd

访问测试:

在这里插入图片描述
关闭其中一台调度器再测试

访问测试:
在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【秋招笔试】9.07米哈游秋招改编题-三语言题解
  • Flutter之命名路由页面传值
  • 连接池-druid
  • 基于yolov8的人脸检测计数系统python源码+onnx模型+评估指标曲线+精美GUI界面
  • 最新HTML5中的文件详解
  • 使用python批量计算栅格像元值(像元总值等)
  • vulhub spring 远程命令执行漏洞(CVE-2016-4977)
  • 【ArcGIS Pro第一期】界面简介
  • Python开发学习之Python和Excel的数据实现互通
  • Vue 向标签中传入 this
  • 【Linux】进程控制(一)
  • 简单实用的php全新实物商城系统
  • 使用Ansible进行自动化运维
  • 期货赫兹量化-种群优化算法:进化策略,(μ,λ)-ES 和 (μ+λ)-ES
  • Mysql-数据库课程设计图书管理系统
  • [数据结构]链表的实现在PHP中
  • 《Java编程思想》读书笔记-对象导论
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • Docker下部署自己的LNMP工作环境
  • input实现文字超出省略号功能
  • Java 23种设计模式 之单例模式 7种实现方式
  • Laravel 中的一个后期静态绑定
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • mac修复ab及siege安装
  • mysql中InnoDB引擎中页的概念
  • nginx 负载服务器优化
  • Redis学习笔记 - pipline(流水线、管道)
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 今年的LC3大会没了?
  • 坑!为什么View.startAnimation不起作用?
  • 前端代码风格自动化系列(二)之Commitlint
  • 用mpvue开发微信小程序
  • 通过调用文摘列表API获取文摘
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ‌移动管家手机智能控制汽车系统
  • "无招胜有招"nbsp;史上最全的互…
  • #QT 笔记一
  • #vue3 实现前端下载excel文件模板功能
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • $NOIp2018$劝退记
  • (3)STL算法之搜索
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (蓝桥杯每日一题)love
  • (三)docker:Dockerfile构建容器运行jar包
  • (数据大屏)(Hadoop)基于SSM框架的学院校友管理系统的设计与实现+文档
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .Net Core 微服务之Consul(三)-KV存储分布式锁
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .net6解除文件上传限制。Multipart body length limit 16384 exceeded
  • /bin、/sbin、/usr/bin、/usr/sbin
  • @RestControllerAdvice异常统一处理类失效原因