部署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集群节点健康检查功能
③. 作为系统网络服务的高可用功能
  1. 部署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 注:两个负载服务器上都需要部署nginx服务并开启
    解析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服务 注:两台lb01和lb02都要部署
    第一个里程:安装keepalived服务软件
    yum install -y keepalived

    第二个里程:编写keepalived配置文件
    vim /etc/keepalived/keepalived.conf

    man keepalived.conf --- 配置文件说明信息
    配置文件结构:
    GLOBAL CONFIGURATION --- 全局配置(
    VRRPD CONFIGURATION --- vrrp配置(

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

    lb01主负载均衡器配置
    ! Configuration File for keepalived
    global_defs {
    router_id lb01 -----不同处1
    }
    vrrp_instance gorup01 {
    state MASTER -----不同处2
    interface eth0
    virtual_router_id 51
    priority 150 -----不同处3
    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配置信息 注:ip a能看到eth0网卡上有多个地址
    ! Configuration File for keepalived
    global_defs {
    router_id lb02 -----不同处1
    }
    vrrp_instance group01 {
    state BACKUP -----不同处2
    interface eth0
    virtual_router_id 51
    priority 100 -----不同处3
    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)进行测试访问 注:用谷歌浏览器进行访问

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

    脑裂情况出现原因:

    1. 心跳线出现问题
      网卡配置有问题
      交换设备有问题
      线缆连接有问题
    2. 有防火墙软件阻止问题
    3. virtual_router_id配置数值不正确
      总之:只要备服务器收不到组播包,就会成为主,而主资源没有释放,就会出现脑裂

    利用shell脚本实现监控管理:
    备用设备有VIP就是表示不正常

    1. 真正实现主备切换
    2. 出现脑裂情况了

    #!/bin/bash
    check_info=$(ip a|grep -c 10.0.0.3)
    if [ $check_info -ne 0 ]
    then
    echo "keepalived server error!!!"
    fi

  3. 实现nginx反向代理监控虚拟IP地址
    1)编写nginx反向代理配置 注:lb01和lb02两台服务器都要配置
    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地址 注:lb01和lb02两台服务器都要配置
    [[email protected] keepalived]# /application/nginx/sbin/nginx -t
    nginx: the configuration file /application/nginx-14.0/conf/nginx.conf syntax is ok
    nginx: [emerg] bind() to 10.0.0.3:80 failed (99: Cannot assign requested address)
    nginx: configuration file /application/nginx-14.0/conf/nginx.conf test failed
    解决方法:
    echo ‘net.ipv4.ip_nonlocal_bind = 1‘ >>/etc/sysctl.conf
    sysctl -p

  4. 将keepalived服务和反向代理nginx服务建立联系
    nginx反向代理服务停止,keepalived服务也停止
    1)编写脚本
    vim /server/scripts/check_web
    #!/bin/bash
    web_info=$(ps -ef|grep [n]ginx|wc -l)
    if [ $web_info -lt 2 ]
    then
    /etc/init.d/keepalived stop
    fi

    chmod +x check_web.sh --- 修改脚本可执行权限
    2)修改nginx配置文件,实现监控nginx服务
    vim /etc/keepalived/keepalived.conf --------编辑keepalived服务配置文件
    vrrp_script check_web {
    #定义一个监控脚本,脚本必须有执行权限
    script "/server/scripts/check_web.sh"
    #指定脚本间隔时间
    interval 2
    #脚本执行完成,让优先级值和权重值进行运算,从而实现主备切换
    weight 2
    } 注意:放在global和vrrp之间

    调用 注:放在virtual后面
    track_script {
    check_web
    }

  5. 实现高可用集群架构中双主配置(互为主备配置)
    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反向代理监控地址信息
    www.etiantian.org 10.0.0.3:80
    bbs.etiantian.org 10.0.0.4:80

原文地址:http://blog.51cto.com/tangyong/2139633

时间: 2024-10-07 19:04:08

部署keepalived高可用服务的相关文章

十一.keepalived高可用服务实践部署

期中集群架构-第十一章-keepalived高可用集群章节======================================================================01. 作业题一说明: 先进行企业案例需求梳理:? 当用户请求www.etiantian.org/upload/xx 地址时,实现由upload上传服务器池处理请求.? 当用户请求www.etiantian.org/static/xx 地址时,实现由静态服务器池处理请求.? 除此以外,对于其他访问请求

Keepalived高可用服务

第1章 Keepalived高可用服务 1.1 Keepalived介绍     Keepalived软件起初是专为LVS负载均衡软件设计的, 用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能 Keepalived软件主要是通过VRRP协议实现高可用功能的.VRRP是Virtual Router Redundancy   Protocol(虚拟路由器冗余协议)的缩写, VRRP出现的目的就是为了解决静态路由单点故障问题的,它能够保证当个别节点宕机时,整个

Keepalived 高可用服务

一.Keepalived 详解配置 1.Keepalived 软件介绍:Keeplived 软件起初就是专为 LVS 负载均衡软件设计的,用来管理并监控 LVS 集群系统中各个服务器节点的状态,后来又加入了可以实现高可用的 VRRP 功能.因此 Keepalived 除了能够管理 LVS 软件外,还可以作为其他服务(Nginx.Haproxy.MySQL 等)的高可用解决方案软件.Keeplived 软件主要是通过 VRRP 协议实现高可用功能的,VRRP 出现的目的就是为了解决静态路由单点故障

keepalived高可用服务总结分享

一.keepalived介绍 keepalived软件起初是为LVS软件设计的,用来监控LVS集群中各个集群的节点状态,后来又加入了vrrp高可用功能,因此keepalived不但可以管理LVS集群节点,还可做其他服务(Nginx.Mysql.Haproxy等)的高可用解决方案 二.keepalived高可用工作原理 keepalived高可用服务之间的故障转移通过虚拟路由冗余协议vrrp来实现的,在keepalived正常工作的时候,主节点会不断的向备节点发送组播包,(224.0.0.18)告

实践:在CentOS7.3部署 keepalived 高可用nginx(负载均衡)

背景: 既然有了Lvs+keepalived这样高性能的组合,那为何还要有Nginx+keepalived呢,keepalived的初衷就是为了Lvs而设计的,我们都知道Lvs是一个四层的负载均衡设备,虽然有着高性能的优势,但同时它却没有后端服务器的健康检查机制,keepalived为lvs设计了一系列的健康检查机制TCP_CHECK,UDP_CHECK,HTTP_GET等.同时lvs也可以自己写健康检查脚脚本.或者结合ldirectory来实现后端检测.但是固LVS始终无法摆脱它是一个四层设备

CentOS6.5环境 keepalived高可用服务单实例配置

一.环境说明MASTER节点 192.168.89.100BACKUP节点 192.168.89.101VIP:192.168.89.102 二.MASTER节点的配置文件1.主节点配置文件! Configuration File for keepalived global_defs {   notification_email {     [email protected]     [email protected]     [email protected]   }   notificati

keepalived高可用服务安装

keepalived通过内核管理lvs ,所以没装没装kernel-devel configure 完看有没有下面三个yes 的Use VRRP Framework : YesUse VRRP VMAC : YesUse VRRP authentication : Yes 原文地址:http://blog.51cto.com/skinglzw/2154963

Nginx+Keepalived高可用集群应用实践

Nginx+Keepalived高可用集群应用实践 1.Keepalived高可用软件 1.1 Keepalived服务的三个重要功能 1.1.1管理LVS负载均衡软件 早期的LVS软件,需要通过命令行或脚本实现管理,并且没有针对LVS节点的健康检查功能.为了解决LVS的这些使用不便问题,Keepalived诞生了,可以说,Keepalived软件起初是专为解决LVS的问题而诞生的.因此,Keepalived和LVS的感情很深,他们的关系如同夫妻一样,可以紧密地结合,愉快地工作.Keepaliv

企业级Nginx负载均衡与keepalived高可用实战(二)keepalived篇

1.Keepalived高可用软件 1.1.Keepalived介绍 Keepalived软件起初是专门为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能.因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx,Haproxy,MySQL等)的高可用解决方案软件. Keepalived软件主要是通过VRRP协议实现高可用功能的.VRRP是Virtual Router Redundancy Pro