一、需具备环境
两台Keepalived服务器
192.168.3.119
192.168.3.122
两台nginx服务器
192.168.3.120
192.168.3.121
VIP:192.168.3.200(虚拟IP)
二、主节点Keepalived配置
ip : 192.168.3.119
global_defs {
# 路由id:当前安装keepalived的节点主机标识符,保证全局唯一
router_id keep_119
}
vrrp_instance VI_1 {
# 状态是(MASTER)主机还是备用机(BACKUP)
state MASTER
# 该实例绑定的网卡
interface enp0s3
# 保证主备节点一致
virtual_router_id 200
# 权重,master权重一般高于backup,有多个就选举,谁权重高谁当选
priority 100
# 主备之间同步检查时间间隔,单位秒
advert_int 2
# 认证权限密码,防止非法节点进入
authentication {
auth_type PASS
auth_pass 1111
}
# 虚拟出来的ip,可以有多个(vip)
virtual_ipaddress {
192.168.3.200
}
}
# 配置集群地址访问的IP+端口,端口和nginx保持一致 都是80
virtual_server 192.168.3.200 80 {
# 健康检查的时间 单位 秒
delay_loop 6
# 配置负载均衡的算法 默认是轮询 rr:轮询
lb_algo rr
# 设置lvs的模式 NAT|TUN|DR
lb_kind DR
# 会话持久的时间
persistence_timeout 10
protocol TCP
# 负载均衡的真是服务器,也就是nvinx节点的具体的真是ip地址
real_server 192.168.3.120 80 {
# 轮询的默认权重配比设置为1
weight 1
# 设置健康检查
TCP_CHECK {
# 检查80端口
connect_port 80
# 超时时间
connect_time 2s
# 重试次数
connect_retry 2
# 间隔时间3s
connect_before_retry 3
}
}
real_server 192.168.3.121 80 {
weight 1
# 设置健康检查
TCP_CHECK {
# 检查80端口
connect_port 80
# 超时时间
connect_time 2s
# 重试次数
connect_retry 2
# 间隔时间3s
connect_before_retry 3
}
}
}
三、备用节点配置
ip : 192.168.3.122
global_defs {
router_id keep_122
}
vrrp_instance VI_1 {
state BACKUP
interface enp0s3
virtual_router_id 200
priority 50
advert_int 2
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.3.200
}
}
virtual_server 192.168.3.200 80 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 10
protocol TCP
real_server 192.168.3.120 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_time 2s
connect_retry 2
connect_before_retry 3
}
}
real_server 192.168.3.121 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_time 2s
connect_retry 2
connect_before_retry 3
}
}
}
四、启动Keepalived
启动两台Keepalived:
systemctl start keepalived
查看集群状态
ipvsadm -Ln
看效果: