设为首页 收藏本站
查看: 1185|回复: 0

[经验分享] keepalived双机热备原理及实例部署LVS+keepalived

[复制链接]

尚未签到

发表于 2018-12-28 11:36:25 | 显示全部楼层 |阅读模式
  keepalived简介

  它是由C语言编写的路由热备软件,主要提供简单高效的负载均衡及高可用解决方案。keepalived通过VRRP协议实现高可用架构。lvs实现集群分发,keepalived实现调度器的主备方案,两者结合实现集群系统的高负载高可用。
  VRRP协议是为了防止单点故障而设计的主从灾备协议,VRRP将两台或者多台路由设备虚拟成一个设备,对外提供一个虚拟路由ip地址,主路由设备处于启用状态时,不断的发送自身信息到备用设备,以表明主路由状态正常,当备用设备收不到主设备的信息时,备用设备会根据自身的优先级选举出新的主设备,并保证提供所有业务功能。
  

  

  LVS+keepalived实例

  服务器名称                                        网络接口                                        IP地址
  
router外网接口eth1122.126.152.183
内网接口eth0192.168.1.1
lvs_1.test.cometh0192.168.1.5
eth0 VIP192.168.1.2
lvs_2.test.cometh0192.168.1.6
eth0 VIP192.168.1.2
web1.test.cometh0192.168.1.7
lo:0 VIP192.168.1.2
web1.test.cometh0192.168.1.8
lo:0 VIP192.168.1.2
  首先安装配置web1和web2
  设置web1网路参数及回环设备lo:0设置VIP
  vim /etc/sysconfig/network-scripts/ifcfg-eth0
  DEVICE=eth0
  BOOTPROTO=static
  IPADDR=192.168.1.7
  NETMASK=255.255.255.0
  GATEWAY=192.168.1.1
  ONBOOT=yes
  

  
vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
BOOTPROTO=static
IPADDR=192.168.1.2
NETMASK=255.255.255.255
GATEWAY=192.168.1.1
ONBOOT=yes


修改ARP参数
vim /etc/sysctl.conf
net.ipv4.conf.eth0.arp_ignore = 1
net.ipv4.conf.eth0.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2


执行 sysctl -p
service network restart
iptables -F
iptables -X
service iptables save
setenforce 0
sed -i s/enforcing/disabled/g /etc/sysconfig/selinux
yum install -y httpd
echo "web1  192.168.1.7" > /var/www/html/index.html
service httpd restart
chkconfig httpd on
web2机器上执行与web1相同步骤,注意修改部分参数



lvs_1调度器操作
首先设置网络


vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.1.5
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
ONBOOT=yes
TYPE=Ethernet


service network restart
安装部署keepalived ipvsadm
yum install -y gcc openssl-devel popt-devel libnl libnl-devel kernel-devel ipvsadm
下载keepalived
wget http://www.keepalived.org/software/keepalived-1.3.0.tar.gz
tar zxf keepalived-1.3.0.tar.gz -C /usr/src/
cd /usr/src/keepalived-1.3.0/
./configure
make && make install
ln -s /usr/local/etc/keepalived/ /etc/
ln -s /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/
ln -s /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/sbin/keepalived /usr/sbin/


lvs_1为主设备,lvs_2为从设备,下面修改配置文件
vim /etc/keepalived/keepalived.conf
global_defs {
    notification_email {

        test@163.com

        }

        notification_email_from root@localhost

        smtp_server 127.0.0.1

        smtp_connect_timeout 30

        router_id lvs_1

    }



vrrp_instance LVS_HA {
    state MASTER                #lvs_2为BACKUP

    interface eth0

    virtual_router_id 60        #lvs_2的VRID必须与lvs-1相同

    priority 100                    #lvs-2为从设备,必须小于 lvs-1的参数

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

    192.168.1.2/24

    }

}


virtual_server 192.168.1.2 80 {
    delay_loop 6

    lb_algo rr

    lb_kind DR

    nat_mask 255.255.255.0

    persistence_timeout 50

    protocol TCP

    real_server 192.168.1.7 80 {
        weight 1

    TCP_CHECK {

        connect_timeout 20

        connect_port 80

        nb_get_retry 3

    }

    }

real_server 192.168.1.8 80 {
        weight 1

    TCP_CHECK {

        connect_timeout 20

        connect_port 80

        nb_get_retry 3

    }

    }
}


service keepalived start
chkconfig keepalived on
ip addr show        #查看虚拟ip
ipvsadm -Ln        #查看lvs规则

iptables -F
iptables -X
service iptables save
setenforce 0
sed -i s/enforcing/disabled/g /etc/sysconfig/selinux
lvs_2机器上执行相同操作,注意修改部分参数


下面配置router机器,这里用做软路由,生产环境直接用硬件路由设备

vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.1.1
NETMASK=255.255.255.0
ONBOOT=yes

DNS=8.8.8.8

vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=static
IPADDR=122.126.152.183
NETMASK=255.255.255.254
ONBOOT=yes

DNS=8.8.8.8


service network restart
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t nat -I PREROUTING -d 122.126.152.183 -p tcp -dport 80 -j DANT --to--destination 192.168.1.2:80

iptables -t nat -I PREROUTING -s 192.168.1.0/24 -p tcp -j SNAT --to-source 122.126.152.183
service iptables save

setenforce 0
sed -i s/enforcing/disabled/g /etc/sysconfig/selinux
vim /etc/sysctl.conf
net.ipv4..ip_forward = 1
sysctl -p


客户端测试
浏览器访问http://122.126.152.183 将得到不同real server的数据包










运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-656834-1-1.html 上篇帖子: keepalived双机热备原理及实例部署LVS+keepalived 下篇帖子: VRRP协议与keepalived原理及功能实例演示
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表