Linux三阶段之十一:keepalived高可用集群

编程

十一、keepalived高可用集群章节

(一)keepalived服务概念说明

keepalived软件能干什么?

Keepalived软件起初是专为LVS负载均衡软件设计的,

用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能

Keepalived软件主要是通过VRRP协议实现高可用功能的。

VRRP是Virtual Router Redundancy Protocol(虚拟路由器冗余协议)的缩写,

VRRP出现的目的就是为了解决静态路由单点故障问题的,它能够保证当个别节点宕机时,

整个网络可以不间断地运行

keepalived软件工作原理?(重点)

原理

1)VRRP协议,全称Virtual Router Redundancy Protocol,中文名为虚拟路由冗余协议,

VRRP的出现是为了解决静态路由的单点故障。

2)VRRP是用过IP多播的方式(默认多播地址(224.0.0.18))实现高可用对之间通信的。

3)工作时主节点发包,备节点接包,当备节点接收不到主节点发的数据包的时候,

就启动接管程序接管主节点的资源。备节点可以有多个,通过优先级竞选,

但一般Keepalived系统运维工作中都是一对。

keepalived软件主要功能?

①. 管理LVS负载均衡软件

②. 实现对LVS集群节点健康检查功能

③. 作为系统网络服务的高可用功能

(二)部署keepalived高可用服务

1)确认反向代理服务是否工作正常

第一个里程:在lb01/lb02上测试web服务器是否可以正常

 curl -H host:www.etiantian.org 10.0.0.7/oldboy.html

curl -H host:www.etiantian.org 10.0.0.8/oldboy.html

curl -H host:www.etiantian.org 10.0.0.9/oldboy.html

curl -H host:bbs.etiantian.org 10.0.0.7/oldboy.html

curl -H host:bbs.etiantian.org 10.0.0.8/oldboy.html

curl -H host:bbs.etiantian.org 10.0.0.9/oldboy.html

第二个里程:在浏览器上测试访问lb01/lb02

解析hosts文件,将域名解析为10.0.0.5,进行测试访问

解析hosts文件,将域名解析为10.0.0.6,进行测试访问

scp -rp /application/nginx/conf/nginx.conf 10.0.0.6:/application/nginx/conf/ ---测试前同步lb01和lb02配置文件

2)安装部署高可用keepalived服务

第一个里程:安装keepalived服务软件

   yum install -y keepalived

第二个里程:编写keepalived配置文件

vim /etc/keepalived/keepalived.conf

man keepalived.conf --- 配置文件说明信息

配置文件结构:

GLOBAL CONFIGURATION --- 全局配置(*)

VRRPD CONFIGURATION --- vrrp配置(*)

LVS CONFIGURATION --- LVS服务相关配置

lb01主负载均衡器配置

global_defs {

router_id lb01

}

vrrp_instance gorup01 {

state MASTER

interface eth0

virtual_router_id 51

priority 150

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

10.0.0.3/24 dev eth0 label eth0:1

}

}

/etc/init.d/keepalived reload

lb02配置信息

global_defs {

router_id lb02

}

vrrp_instance group01 {

state BACKUP

interface eth0

virtual_router_id 51

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

10.0.0.3/24 dev eth0 label eth0:1

}

}

/etc/init.d/keepalived reload

3)进行测试访问

(三)部署keepalived高可用服务问题

同时在keepalived高可用集群中,出现了两个虚拟IP地址信息,这种情况就称为脑裂

脑裂情况出现原因:

1. 心跳线出现问题

网卡配置有问题

交换设备有问题

线缆连接有问题

2. 有防火墙软件阻止问题

3. virtual_router_id配置数值不正确

总之:只要备服务器收不到组播包,就会成为主,而主资源没有释放,就会出现脑裂

利用shell脚本实现监控管理:

备用设备有VIP就是表示不正常

01. 真正实现主备切换

02. 出现脑裂情况了

#!/bin/bash

check_info=$(ip a|grep -c 10.0.0.3)

if [ $check_info -ne 0 ]

then

echo "keepalived server error!!!"

fi

(四)实现nginx反向代理监控虚拟IP地址

1)编写nginx反向代理配置

server {

listen 10.0.0.3:80;

server_name www.etiantian.org;

root html;

index index.html index.htm;

location / {

proxy_pass http://oldboy;

proxy_set_header host $host;

proxy_set_header X-Forwarded-For $remote_addr;

}

}

server {

listen 10.0.0.3:80;

server_name bbs.etiantian.org;

root html;

index index.html index.htm;

location / {

proxy_pass http://oldboy;

proxy_set_header host $host;

proxy_set_header X-Forwarded-For $remote_addr;

}

}

/application/nginx/sbin/nginx -s stop

/application/nginx/sbin/nginx

netstat -lntup|grep nginx

tcp 0 0 10.0.0.3:80 0.0.0.0:* LISTEN 53334/nginx

实现监听本地网卡上没有的IP地址

echo "net.ipv4.ip_nonlocal_bind = 1" >>/etc/sysctl.conf

sysctl -p

(五)将keepalived服务和反向代理nginx服务建立联系

nginx反向代理服务停止,keepalived服务也停止

1)编写脚本

    #!/bin/bash

web_info=$(ps -ef|grep [n]ginx|wc -l)# [n]过滤grep自身的进程。

if [ $web_info -lt 2 ]

then

/etc/init.d/keepalived stop

fi

2)运行脚本,实现监控nginx服务

    编辑keepalived服务配置文件

vrrp_script check_web {

#定义一个监控脚本,脚本必须有执行权限

script "/server/scripts/check_web.sh"

#指定脚本间隔时间

interval 2

#脚本执行完成,让优先级值和权重值进行运算,从而实现主备切换

weight 2

}

track_script {

check_web

}

chmod +x check_web.sh --- 修改脚本可执行权限

(六)实现高可用集群架构中双主配置(互为主备配置)

   lb01

vrrp_instance gorup01 {

state MASTER

interface eth0

virtual_router_id 51

priority 150

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

10.0.0.3/24 dev eth0 label eth0:1

}

}

vrrp_instance gorup02 {

state BACKUP

interface eth0

virtual_router_id 52

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

10.0.0.4/24 dev eth0 label eth0:1

}

}

lb02

vrrp_instance gorup01 {

state BACKUP

interface eth0

virtual_router_id 51

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

10.0.0.3/24 dev eth0 label eth0:1

}

}

vrrp_instance gorup02 {

state MASTER

interface eth0

virtual_router_id 52

priority 150

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

10.0.0.4/24 dev eth0 label eth0:1

}

}

修改nginx反向代理监控地址信息

以上是 Linux三阶段之十一:keepalived高可用集群 的全部内容, 来源链接: utcz.com/z/516100.html

回到顶部