【keepalived双机热备与 lvs(DR)】

目录

一、概述

1.简介

2.原理

3.作用

二、安装

1.配置文件

2.配置项

三、功能模块

1.core

2.vrrp

3.check

四、配置双机热备

1.master

2.backup

五、验证

1.ping验证

2.服务验证

六、双机热备的脑裂现象

七、keepalived+lvs(DR)

1.作用

2.调度器配置

[2.1 安装keepalived](#2.1 安装keepalived)

[2.2 安装ipvsadm](#2.2 安装ipvsadm)

[2.3 配置keepalived](#2.3 配置keepalived)

[2.3.1 主](#2.3.1 主)

[2.3.1 从](#2.3.1 从)

[2.4 查看lvs节点状态](#2.4 查看lvs节点状态)

3.web节点配置

[3.1 调整ARP参数](#3.1 调整ARP参数)

[3.2 配置虚拟IP地址](#3.2 配置虚拟IP地址)

[3.3 添加回环路由](#3.3 添加回环路由)

[3.4 安装nginx](#3.4 安装nginx)


一、概述

1.简介

Keepalived 是一个基于 VRRP 协议来实现的 LVS 服务高可用方案,可以解决静态路由出现的单点故障问题。

2.原理

在一个 LVS 服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但是对外表现为一个虚拟 IP,主服务器会发送 VRRP 通告信息给备份服务器,当备份服务器收不到 VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟 IP,继续提供服务,从而保证了高可用性。

3.作用

解决单点故障问题

二、安装

yum install -y keepalived

1.配置文件

/etc/keepalived/keepalived.conf

2.配置项

router_id 1 定义节点id

state MASTER|BACKUP 定义节点主从状态

interface ens33 配置监听的网卡

virtual_router_id 51 同一个热备组要保持一致

priority 100 节点优先级

advert_int 1 多少秒进行一次心跳检测

authentication {

auth_type PASS

auth_pass 1111

} keepalived节点的认证方式,同一个keepalived双机热备组一定要保持一致

virtual_ipaddress 配置VIP,即漂移地址

vrrp

vrrp_script chk_nginx_server {

script "/etc/keepalived/chk_nginx.sh "

interval 1

weight -2

}

三、功能模块

1.core

主进程启动

2.vrrp

vrrp协议:热备份路由协议

3.check

健康状态检测

四、配置双机热备

1.master

vrrp_instance VI_1 {

state MASTER

interface ens33

virtual_router_id 51

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.42.100

192.168.42.101

192.168.42.102

}

}

2.backup

vrrp_instance VI_1 {

state BACKUP

interface ens33

virtual_router_id 51

priority 90

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.42.100

192.168.42.101

192.168.42.102

}

}

五、验证

1.curl验证

2.关闭主服务验证

六、双机热备的脑裂现象

  • Keepalived配置里同一 VRRP实例如果 virtual_router_id两端参数配置不一致也会导致裂脑问题发生。
  • vrrp实例名字不一致、优先级一致
  • 防火墙打开,导致心跳无法正常通信
  • 网卡故障 网卡进行多路复用

:VIP无法通信,注释:vrrp_strict

七、keepalived+lvs(DR)

1.作用

  • 使用keepalived解决lvs的单点故障
  • 高可用集群

2.调度器配置

2.1 安装keepalived

yum install -y keepalived

2.2 安装ipvsadm

yum install -y ipvsadm

modprobe ip_vs

lsmod |grep ip_vs

2.3 配置keepalived

2.3.1 主

vim /etc/keepalived/keepalived.conf

global_defs {

notification_email {

acassen@firewall.loc

failover@firewall.loc

sysadmin@firewall.loc

}

notification_email_from Alexandre.Cassen@firewall.loc

smtp_server 192.168.200.1

smtp_connect_timeout 30

router_id LVS_DEVEL1

vrrp_skip_check_adv_addr

#vrrp_strict

vrrp_garp_interval 0

vrrp_gna_interval 0

}

vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.42.200
}
}

virtual_server 192.168.42.200 80 {
delay_loop 6
lb_algo rr
lb_kind DR
#persistence_timeout 50
protocol TCP

real_server 192.168.42.5 80 {
weight 1
HTTP_GET {
url {
path /
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.42.6 80 {
weight 1
HTTP_GET {
url {
path /
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3

}

}

}

2.3.1 从

vim /etc/keepalived/keepalived.conf

global_defs {

notification_email {

acassen@firewall.loc

failover@firewall.loc

sysadmin@firewall.loc

}

notification_email_from Alexandre.Cassen@firewall.loc

smtp_server 192.168.200.1

smtp_connect_timeout 30

router_id LVS_DEVEL2

vrrp_skip_check_adv_addr

#vrrp_strict

vrrp_garp_interval 0

vrrp_gna_interval 0

}

vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.42.200
}
}

virtual_server 192.168.42.200 80 {
delay_loop 6
lb_algo rr
lb_kind DR
#persistence_timeout 50
protocol TCP

real_server 192.168.42.5 80 {
weight 1
HTTP_GET {
url {
path /
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.42.6 80 {
weight 1
HTTP_GET {
url {
path /
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3

}

}

}

2.4 查看lvs节点状态

systemctl start keepalived

ipvsadm -ln

ip a

3.web节点配置

3.1 调整ARP参数

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

3.2 配置虚拟IP地址

cd /etc/sysconfig/network-scripts/

cp ifcfg-lo ifcfg-lo:0

vim ifcfg-lo:0

DEVICE=lo:0

IPADDR=192.168.115.200

NETMASK=255.255.255.255

ONBOOT=yes

NAME=loopback:0

3.3 添加回环路由

route add -host 192.168.42.200/32 dev lo:0

3.4 测试

断掉主,测试备

相关推荐
江畔何人初17 小时前
Docker、containerd、CRI、shim 之间的关系
运维·docker·云原生·容器·kubernetes
新手886017 小时前
Oracle VirtualBox虚拟机安装 和 安装 window11版本虚拟机 及 启用EFI和硬盘无法使用 问题
服务器·windows·计算机网络·安全·虚拟机
ALex_zry17 小时前
Docker Compose 配置文件完全指南:从基础到生产级安全实践
服务器·安全·docker
idolao18 小时前
CentOS 7 安装 nginx-1.3.15.tar.gz 详细步骤(从源码编译到启动配置)
linux·运维·数据库
@encryption18 小时前
TCP,IP
服务器·网络·tcp/ip
CDN36018 小时前
低成本游戏防护:360 SDK 游戏盾使用总结
运维·游戏·网络安全
万象.19 小时前
docker镜像仓库
运维·docker·容器
rosmis19 小时前
自动化文献检索与下载工作流:基于 Playwright 的 RPA 实践方案
运维·自动化·rpa
亚林瓜子19 小时前
linux账号强制密码过期导致私钥文件登录异常问题——(current) UNIX password:
linux·运维·服务器·ssh·aws·ec2·chage
姚不倒19 小时前
Docker 核心原理与运维实战:从入门到生产级理解
运维·docker·架构