作者:天飞的鹊桥会大美女 | 来源:互联网 | 2023-05-28 09:59
LVS负载均衡群集-Keepalived部署一、Keeplived简介二、Keepalived工作原理三.部署LVSKeepalived高可用群集1、实验需求:2.配
LVS负载均衡群集-Keepalived部署
- 一、Keeplived简介
- 二、Keepalived工作原理
- 三.部署LVS+Keepalived 高可用群集
- 2.配置节点服务器1
- 节点服务器2
- 主负载调度器
- 负载调度器
一、Keeplived简介
专为LVS和HA设计的一款健康检查工具
支持故障自动切换(Failover)
支持节点健康状态检查(Health Checking)
二、Keepalived工作原理
-
Keepalived是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题
-
在一个LVS服务集群中通常有主服(MASTER)和备份服务器(BACKUP)两种角色的服务器,但是对外表现为一个虚拟IP,主服务器会发送VRRP通告信息给备份服务器,当备份服务器收不到VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性
三.部署LVS+Keepalived 高可用群集
1、实验需求:
节点服务器1--------192.168.13.10
节点服务器2--------192.168.13.20
主负载调度器-------192.168.13.30
备负载调度器-------192.168.13.40
2.配置节点服务器1
(192.168.13.10)
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
setenforce: SELinux is disabled
[root@localhost ~]# yum install -y httpd
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@localhost network-scripts]# vim ifcfg-lo:0内部配置: DEVICE=lo:0IPADDR=192.168.13.100NETMASK=255.255.255.255ONBOOT=yes[root@localhost network-scripts]# ifup lo:0 ##开启网卡
[root@localhost network-scripts]# route add -host 192.168.13.100 dev lo:0 ##vip地址需要通过虚网卡进入
##永久配置##
[root@localhost network-scripts]# vim /etc/rc.local内部配置添加:route add -host 192.168.13.100 dev lo:0[root@localhost network-scripts]# chmod +x /etc/rc.d/rc.local ## 添加执行权限[root@localhost network-scripts]# vim /etc/sysctl.conf内部配置:net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.lo.arp_announce = 2net.ipv4.conf.all.arp_ignore = 1net.ipv4.conf.all.arp_announce = 2[root@localhost network-scripts]# sysctl -p ## 加载
net.ipv4.conf.lo.arp_ignore = 1 #系统只响应目的IP为本地IP的ARP请求
net.ipv4.conf.lo.arp_announce = 2 #系统不使用IP包的源地址来设置ARP
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
[root@localhost network-scripts]# cd /var/www/html/
[root@localhost html]# ls
[root@localhost html]# echo 'This is the first test web!
' > index.html
[root@localhost html]# systemctl start httpd
节点服务器2
[root@localhost ~]# yum install -y httpd
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 httpd.x86_64.0.2.4.6-88.el7.centos 将被 安装
--> 正在处理依赖关系 httpd-tools = 2.4.6-88.el7.centos,它被软件包 httpd-2.4.6-88.el7.centos.x86_64 需要
--> 正在处理依赖关系 /etc/mime.types,它被软件包 httpd-2.4.6-88.el7.centos.x86_64 需要
--> 正在检查事务
---> 软件包 httpd-tools.x86_64.0.2.4.6-88.el7.centos 将被 安装
---> 软件包 mailcap.noarch.0.2.1.41-2.el7 将被 安装
--> 解决依赖关系完成
.....
,,,,
.....
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0
内部:DEVICE=lo:0IPADDR=192.168.13.100NETMASK=255.255.255.255ONBOOT=yes[root@localhost ~]# ifup lo:0
[root@localhost ~]# route add -host 192.168.13.100 dev lo:0
[root@localhost ~]# vim /etc/rc.local
[root@localhost ~]# chmod +x /etc/rc.d/rc.local
[root@localhost ~]# vim /etc/sysctl.conf
[root@localhost ~]# sysctl -p
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# echo 'This is the second test web!
' > index.html
[root@localhost html]# systemctl start httpd
主负载调度器
[root@localhost ~]# cd /etc/keepalived
[root@localhost keepalived]# cp keepalived.conf keepalived.conf.bak
###复制配置文件####
[root@localhost keepalived]# vim keepalived.conf:set nu ##打开行号smtp_server 127.0.0.1 ## 第10行:邮箱地址改成本地iprouter_id LVS_01 ### 第12行:区分路由名称 改成01###### 下面4行 全部删掉 ############ vrrp 热备份实例配置#######
interface ens33 ## 第17行:第一张网卡名称 priority 100 这行的上方添加:nopreempt ### 非抢占模式192.168.58.100 ## 第27行:VIP地址 后面的两行多余ip删掉######### 虚拟服务器 ###########192.168.58.100 80 ## 第31行:虚拟IP地址为VIP地址,80端口为http协议lb_kind DR ## 第34行:LVS工作模式为DRpersistence_timeout 0 ### 第35行:长连接超时时间,单位秒protocol TCP ### 第36行:健康检查协议为tcp192.168.58.15 80 #### 第38行:真实节点服务器的ip地址,80号端口##### 下面为健康检查方式:########TCP_CHECK { #### 第40行 :端口检查的方式connect_port 80 #### 通过tcp协议 检查80号端口connect_timeout 3nb_get_retry 3delay_before_retry 3########## 后面的不需要一直删到第一个 "}" 为止:38,46 co 46 #### 末行模式 复制另外一台节点服务器配置记得将真实节点服务器ip地址改一下100 dd ###### 在第58行 删除后面不需要的虚拟服务器配置[root@localhost keepalived]# systemctl start keepalived
[root@localhost keepalived]# ip addr
### 查看相关配置
1: lo: 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: ens33: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:c7:ea:82 brd ff:ff:ff:ff:ff:ffinet 192.168.13.30/24 brd 192.168.13.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fec7:ea82/64 scope link noprefixroute valid_lft forever preferred_lft forever
3: virbr0: mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 52:54:00:83:ff:e2 brd ff:ff:ff:ff:ff:ffinet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0valid_lft forever preferred_lft forever
4: virbr0-nic: mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000link/ether 52:54:00:83:ff:e2 brd ff:ff:ff:ff:ff:ff[root@localhost keepalived]# scp keepalived.conf 192.168.13.30:`pwd` #远程传输文件到备负载调度器
The authenticity of host '192.168.13.30 (192.168.13.30)' can't be established.
ECDSA key fingerprint is SHA256:ka7ipT8mDX2Z2IxR+3inYCB+HuVmU+rIV5UU/HErCbQ.
ECDSA key fingerprint is MD5:8d:27:22:9b:97:78:5a:0a:dd:c8:2e:66:44:9a:64:57.Are you sure you want to continue connecting (yes/no)? YES
Warning: Permanently added '192.168.13.30' (ECDSA) to the list of known hosts.root@192.168.13.30's password:
keepalived.conf 100% 1281 3.3MB/s 00:00 [root@localhost keepalived]# ipvsadm-save > /etc/sysconfig/ipvsadm
[root@localhost keepalived]# systemctl start ipvsadm[root@localhost keepalived]# systemctl restart keepalived[root@localhost keepalived]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn
负载调度器
[root@localhost ~]# cd /etc/keepalived/
[root@localhost keepalived]# vim keepalived.confrouter_id LVS_02state BACKUPpriority 90[root@localhost keepalived]# systemctl start keepalived
[root@localhost keepalived]# ipvsadm-save > /etc/sysconfig/ipvsadm
[root@localhost keepalived]# systemctl start ipvsadm
[root@localhost keepalived]# systemctl restart keepalived
[root@localhost keepalived]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn