keepalived配置LVS
NAT模式
| 主机名 | ip(NAT) | ip(LAN区段) | 角色 |
|---|---|---|---|
| Centos8 | 192.168.159.105 | 192.168.160.105 | keepalived |
| Centos8-1 | 192.168.159.106(禁掉) | 192.168.160.106 | nginx1 |
| Centos8-2 | 192.168.159.107(禁掉) | 192.168.160.107 | nginx2 |
| 192.168.160.200 | vip |
准备工作
配置新网卡、关闭防火墙、两台机器都安装nginx、将02和03两个节点上的nginx都监听8080端口
安装配置keepalived(Centos8上)
yum安装keepalived
yum install -y keepalived
编辑配置文件
vi /etc/keepalived/keepalived.conf ##写入如下配置
global_defs {
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER
interface ens224
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass amingLi
}
virtual_ipaddress {
192.168.160.200
}
}
virtual_server 192.168.160.200 80 {
delay_loop 6
## 算法为wrr
lb_algo wrr
## LVS模式为NAT模式
lb_kind NAT
#persistence_timeout 50
protocol TCP
real_server 192.168.160.106 80 {
weight 3
HTTP_GET {
url {
path /
}
connect_timeout 3
retry 3
delay_before_retry 3
}
}
real_server 192.168.160.107 80 {
weight 1
HTTP_GET {
url {
path /
}
connect_timeout 3
retry 3
delay_before_retry 3
}
}
}
打开路由转发
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
启动keepalived
systemctl start keepalived
另外两个节点上配置默认路由
route add default gw 192.168.159.105
测试(01节点上)
curl 192.168.160.200
DR模式
| 主机名 | ip(NAT) | 角色 |
|---|---|---|
| Centos8 | 192.168.159.105 | keepalived |
| Centos8-1 | 192.168.159.106 | nginx1 |
| Centos8-2 | 192.168.159.107 | nginx2 |
| 192.168.160.200 | vip |
准备工作
关闭防火墙、三台机器都安装nginx、将Centos8-1和Centos8-2的nginx都监听80端口 如果做过上面的NAT实验,还需要恢复01和02上的第一块网卡,删除掉刚才配置的默认路由,01节点上的ip转发要关掉
安装配置keepalived(Centos8上)
yum安装keepalived
yum install -y keepalived
编辑配置文件
vi /etc/keepalived/keepalived.conf ##写入如下配置
global_defs {
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER
interface ens160
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass amingLi
}
virtual_ipaddress {
192.168.160.200
}
}
virtual_server 192.168.160.200 80 {
delay_loop 6
## 算法为wrr
lb_algo wrr
## LVS模式为DR模式
lb_kind DR
#persistence_timeout 50
protocol TCP
real_server 192.168.159.106 80 {
weight 3
HTTP_GET {
url {
path /
}
connect_timeout 3
retry 3
delay_before_retry 3
}
}
real_server 192.168.159.107 80 {
weight 1
HTTP_GET {
url {
path /
}
connect_timeout 3
retry 3
delay_before_retry 3
}
}
}
启动服务
systemctl start keepalived
另外两个节点上编辑脚本
vi /usr/local/sbin/lvs_rs.sh ##内容如下
#/bin/bash
vip=192.168.222.200
#把vip绑定在lo上,是为了实现rs直接把结果返回给客户端
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip lo:0
#以下操作为更改arp内核参数,目的是为了让rs顺利发送mac地址给客户端
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
执行脚本
sh /usr/local/sbin/lvs_rs.sh
测试
浏览器访问vip 或者 再开启一台虚拟机访问