综合架构-高可用服务
高可用服务介绍说明
避免负载均衡服务出现单点问题
高可用服务工作原理
1、利用VRRP协议进行主备通讯
2、利用VRRP协议进行主备竞选
3、利用VRRP协议主向备发送组播包
4、利用VRRP协议但不传输密文信息
将多台主机逻辑成一台,客户端访问逻辑VIP地址
如何实现部署高可用服务
利用keepalived软件实现
作用:
1、为LVS服务而诞生出来的,LVS是负载均衡软件(4层)
2、实现高可用服务功能
高可用keepalived服务部署流程
- 准备高可用服务架构
准备两台负载均衡服务器 - 安装部署keepalived软件
yum install keepalived -y
需要在两台服务器上都安装 - 编写keepalived配置文件
vim /etc/keepalived/keepalived.conf
GLOBAL CONFIGURATION ----全局配置部分
VRRPD CONFIGURATION ----VRRP协议配置部分
LVS CONFIGURATION ----LVS服务配置部分
! Configuration File for keepalived
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_DEVEL ---高可用集群直接身份标识(集群中主机身份标识不能一样,这个必须配置)
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
#日后会用监控软件监控,一般不用设置邮件内容
vrrp_instance xcn { ----Vrrp协议家族 xcn
state MASTER ----标识所在家族中的身份(MASTER/BACKUP)
interface eth0 ----指定虚拟IP地址出现在什么网卡上
virtual_router_id 51 ----标识家族身份信息 多台高可用服务器配置要一致
priority 100 ----设定优先级,优先级越高,就越有可能成为主
advert_int 1
authentication { ----实现通讯需要有认证过程
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { ----配置虚拟IP地址信息
192.168.200.16
192.168.200.17
192.168.200.18
}
}
- 启动keepalived服务
高可用服务企业应用
高可用服务常见异常问题 ----脑裂问题
**出现原因:**高可用备服务器接收不到主服务器发送的组播包,备服务器上会自动生成VIP地址
物理原因:
高可用集群之间通讯线路出现问题
逻辑原因:
有安全策略阻止
如何解决脑裂问题:
1、进行监控,发出告警
2、直接关闭一台服务器的keepalived服务
如何实现keepalived自动释放vip地址资源
nginx + keepalived:nginx服务停止,keepalived服务也必须停止
1、需要编写监控nginx服务状态脚本
2、实时监控nginx服务状态 —keepalived配置文件
vrrp_script check_web{
script "/server/script/check_web.sh" #定义需要监控的脚本
interval 2 #定义脚本指定间隔时间
weight 2
}
放在全局和vrrp配置中间
track_script{
check_web #调用执行你的脚本信息
}
放在virtual_ipaddress后
高可以集群的双主配置
1、编写lb01的keepalived的配置文件
! Configuration File for keepalived
global_defs {
router_id lb01
}
vrrp_instance xcn {
state MASTER
interface eth0
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.168.2/24
}
}
vrrp_instance yy {
state BACKUP
interface eth0
virtual_router_id 52
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.168.3/24
}
}
2、编写lb02的配置文件
! Configuration File for keepalived
global_defs {
router_id lb02
}
vrrp_instance xcn {
state BACKUP
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.168.2/24
}
}
vrrp_instance yy {
state MASTER
interface eth0
virtual_router_id 52
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.168.3/24
}
}
高可用服务安装访问配置(负载均衡服务)
1、修改负载均衡配置文件
listen部分改成高可用的VIP的IP加端口
2、修改内核文件
监听网卡上没有的地址
echo ‘net.ipv4.ip_nonlocal_bind = 1’ >> /etc/sysctl.conf
sysctl -p