当前位置: 移动技术网 > 科技>操作系统>Linux > Linux系统keepalived高可用集群配置与使用

Linux系统keepalived高可用集群配置与使用

2020年05月03日  | 移动技术网科技  | 我要评论

十一、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.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.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反向代理监控地址信息
转自:https://www.cnblogs.com/cuiyongchao007/p/12820477.html

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网