文档章节

keepalived学习

wzyuliyang
 wzyuliyang
发布于 2016/10/28 22:45
字数 738
阅读 82
收藏 3

keepalived学习

192.168.10.150 k1
192.168.10.151 k2
192.168.10.152 f1
192.168.10.153 f2
192.168.10.154 f3
192.168.10.155 f4

###备份keepalived的配置文件

! Configuration File for keepalived
global_defs {
   router_id LVS_DEVEL_RGW
}
vrrp_instance VI_RGW_1 {
    state BACKUP
    interface eno16777736
    virtual_router_id 239
    priority 95
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass onest123
    }
    virtual_ipaddress {
        192.168.10.160
  }
}
virtual_server  192.168.10.160 80 { 
    delay_loop 6
    lb_algo wlc
    lb_kind DR
#   persistence_timeout 0
    protocol TCP

    real_server  192.168.10.152 80 {
        weight 100
        TCP_CHECK {
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }
    real_server 192.168.10.153 80 {
        weight 100
        TCP_CHECK {
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
     }
    real_server  192.168.10.154 80 {
        weight 100
        TCP_CHECK {
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
     }
}

###主keepalived的配置文件

! Configuration File for keepalived
global_defs {
   router_id LVS_DEVEL_RGW
}
vrrp_instance VI_RGW_1 {
    state MASTER
    interface eno16777736
    virtual_router_id 239
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass onest123
    }
    virtual_ipaddress {
        192.168.10.160
  }
}
virtual_server  192.168.10.160 80 { 
    delay_loop 6
    lb_algo wlc
    lb_kind DR
#   persistence_timeout 0
    protocol TCP

    real_server  192.168.10.152 80 {
        weight 100
        TCP_CHECK {
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }
    real_server 192.168.10.153 80 {
        weight 100
        TCP_CHECK {
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
     }
    real_server  192.168.10.154 80 {
        weight 100
        TCP_CHECK {
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
     }
}

###绑定lo虚拟ip脚本

[root@f1 ~]# cat /etc/lvs/lvs_rgw.sh #设置systemctl开机启动
#!/bin/bash
# description: Config realserver
RGW_VIP=192.168.10.160 
. /etc/rc.d/init.d/functions
case "$1" in
start)
       /sbin/ifconfig lo:0 $RGW_VIP netmask 255.255.255.255 broadcast $RGW_VIP up
       /sbin/route add -host $RGW_VIP dev lo:0
       echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
       echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
       echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
       echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
       sysctl -p >/dev/null 2>&1
       echo "RealServer Start OK"
       ;;
stop)
       /sbin/ifconfig lo:0 down
       /sbin/route del $RGW_VIP >/dev/null 2>&1
       echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
       echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
       echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
       echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
       echo "RealServer Stoped"
       ;;
*)
       echo "Usage: $0 {start|stop}"
       exit 1
esac
exit 0

f1.f2.f3.f4上都有192.168.10.160/32

[root@f1 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet 192.168.10.160/32 brd 192.168.10.160 scope global lo:0
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
#开放80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
#开放keepalived相关端口
firewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 0 --out-interface eno16777736 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
#开放keepalived相关端口
firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface eno16777736 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
#reload
firewall-cmd --reload    

###并发访问测试

7:19 yuliyang@yuliyang-PC /home/yuliyang
% echo `seq 1 10000` | xargs -n 1 -P 100  sh -c  'curl http://192.168.10.160/'

##不部署lvs的配置

主keepalived:第一个rgw上安装keepalived并且配置/etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs {
    notification_email {
        test@example.com
    }
    notification_email_from itsection@example.com
    smtp_server mail.example.com
    smtp_connect_timeout 30
    router_id LVS_DEVEL
}

vrrp_script chk_rgw {
#    script "killall -0 nginx"
    script "/etc/keepalived/check_rgw.sh" 
    interval 2 
    weight -5 
    fall 3  
    rise 2 
}

vrrp_instance VI_1 {
    state MASTER
    interface eno16777728
#   mcast_src_ip 172.29.88.224
    virtual_router_id 51
    priority 101
    advert_int 2
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.10.161
    }
    track_script {
       chk_rgw 
    }
}

从keepalived:第二个rgw上安装keepalived并且配置/etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs {
    notification_email {
        test@example.com
    }
    notification_email_from itsection@example.com
    smtp_server mail.example.com
    smtp_connect_timeout 30
    router_id LVS_DEVEL
}

vrrp_script chk_rgw {
#    script "killall -0 nginx"
    script "/etc/keepalived/check_rgw.sh"
    interval 2
    weight -5
    fall 3
    rise 2
}

vrrp_instance VI_1 {
    state BACKUP
    interface eno16777728
#   mcast_src_ip 172.29.88.224
    virtual_router_id 51
    priority 100
    advert_int 2
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.10.161
    }
    track_script {
       chk_rgw
    }
}

#rgw挂掉再拉起来的脚本

[root@ceph02 ~]# cat /etc/keepalived/check_rgw.sh 
#!/bin/bash
counter=$(ps -C radosgw  --no-heading|wc -l)
if [ "${counter}" = "0" ]; then
    /usr/bin/radosgw -f --cluster ceph --name client.rgw.ceph02 --setuser ceph --setgroup ceph
    sleep 2
    counter=$(ps -C radosgw  --no-heading|wc -l)
    if [ "${counter}" = "0" ]; then
        /etc/init.d/keepalived stop
    fi
fi

© 著作权归作者所有

共有 人打赏支持
wzyuliyang
粉丝 3
博文 20
码字总数 16746
作品 1
苏州
程序员
keepalived 实用简介

带着问题去学习: 1. keepalived应该怎么部署,部署在几台服务器上面 ? 2. 如何配置keepalived? 答: 第一个问题,是我开始查找资料时,找了很久也没弄明白的一个问题,也是写这篇文字的初衷...

苗永超
2015/10/08
100
0
Keepalived学习总结

一、LVS负载均衡集群的缺点 二、Keepalived介绍 三、Keepalived的功能 四、Keepalived工作原理 五、Keepalived组件框架 六、Keepalived的安装 6.1 高可用集群配置的前提 6.2 Keepalived配置 ...

iTab
2017/08/03
0
0
如何搭建Keepalived+Nginx+Tomcat高可用负载均衡架构

一.概述 初期的互联网企业由于业务量较小,所以一般单机部署,实现单点访问即可满足业务的需求,这也是最简单的部署方式,但是随着业务的不断扩大,系统的访问量逐渐的上升,单机部署的模式已...

Java大蜗牛
08/20
0
0
企业中MySQL高可用集群架构三部曲之MM+keepalived

各位老铁们,老张与大家又见面了。看到各位在博客里面给我的留言和访问量的情况,我很是欣慰,也谢谢大家对我的认可。我写这些博客,就是想把自己对于MySQL数据库的一些看法和自己平时的实战...

superZS
06/26
0
0
Nginx与keepalived实现负载均衡

前言 之前小编在Nginx初识中介绍了Nginx作为反向代理服务器实现服务器分配资源负载均衡的原理,但是大家可以想一想,如果有一天Nginx服务器宕机了,那用户的请求如何发送到服务器来呢?于是,...

weienjun
2017/11/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Snackbar源码分析

目录介绍 1.最简单创造方法 1.1 Snackbar作用 1.2 最简单的创建 1.3 Snackbar消失的几种方式 2.源码分析 2.1 Snackbar的make方法源码分析 2.2 对Snackbar属性进行设置 2.3 Snackbar的show显示...

潇湘剑雨
22分钟前
1
0
分布式作业系统 Elastic-Job-Lite 源码分析 —— 作业数据存储

分布式作业系统 Elastic-Job-Lite 源码分析 —— 作业数据存储 摘要: 原创出处 http://www.iocoder.cn/Elastic-Job/job-storage/ 本文基于 Elastic-Job V2.1.5 版本分享 1. 概述 本文主要分享...

DemonsI
28分钟前
1
0
jmockit demo

1、@Mocked,标识一个指定的class的实例或被测对象的参数被Mock掉。 2、@Capturing,标识一个被Mock的对象,从该对象派生的子类也被Mock了。 3、@Injectable,标识只有一个指定的被测对象的内...

我的老腰啊
42分钟前
1
0
内容换行

用 <textarea>13611112222 这里想换行 13877779999</textarea><textarea>13611112222 13877779999</textarea>...

小黄狗
43分钟前
1
0
学习设计模式——单例模式

1. 认识单例模式 1. 定义:一个类中仅有一个实例,并提供一个访问它的全局访问点。 2. 结构:仅一个Singleton类,其中包含一个static类变量,而类变量的类型就是Singleton类,而且Singleton...

江左煤郎
50分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部