文档章节

keepalived学习

wzyuliyang
 wzyuliyang
发布于 2016/10/28 22:45
字数 738
阅读 79
收藏 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大蜗牛
前天
0
0
企业中MySQL高可用集群架构三部曲之MM+keepalived

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

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

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

weienjun
2017/11/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

文件的压缩与解压(linux)

Linux下*.tar.gz文件解压缩命令 1.压缩命令:   命令格式:tar -zcvf 压缩后文件名.tar.gz 被压缩文件名 可先切换到当前目录下。压缩文件名和被压缩文件名都可加入路径。 2.解压缩命令: ...

qimh
31分钟前
3
0
invalid character found in the request target 异常

这个异常时因为Tomcat 9不支持请求格式出现“{”等非法字符的问题 因为tomcat版本问题遇到的坑,记录一下。 问题 今天由于要测试一下订单详情页的异步查询,在本地起了一个服务,发送的请求是...

edwardGe
35分钟前
4
0
发现抓包软件fiddler的bug

1个请求他跳转之后,直接400,被拦在了Apache,使用fiddler 的,replay requests 是同样的结果,但是replay composer确是正常的。 也就是说这replay requests 是发原来的包,replay composer...

NLGBZJ
46分钟前
1
0
linux screen 命令详解

shell关闭后, 主机仍然运行 screen命令 启动jenkins以后, screen, 然后按ctrl+a 再按d 这样暂停了子界面, 这时候回到了父界面 用screen –ls查看目前子界面的状态 [root@free /]# screen -l...

SuShine
46分钟前
4
0
mac机器切换无线网络导致网页不能打开的问题

问题: 公司和家里使用不同的WI-FI,每次从家到公司时自动切换网络后,公司的许多地址不能访问, ping域名是可以ping同的,但是网页却打不开... 问题分析: 初步猜想是DNS缓存的问题? 对于MAC系统没...

Lennie002
49分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部