部署keepalive+lvs

                                       作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 
    欢迎降入:高级运维工程师之路 598432640
    安装LVS的步骤我已经在另外的一遍文章详细介绍了它的特性,在这里我就话不多说直接干~
 
1.准备LVS环境.需要四台服务器
LVS服务器[DIP]: 172.30.1.60
LVS服务器[DIP]: 172.30.1.148
LAMP服务器[RIP]:172.30.1.152
LAMP服务器[RIP]:172.30.1.154
2.安装LVS【172.30.1.60和172.30.1.148都做相同的动作】
[root@yinzhengjie ~]# yum -y install kernel-devel
[root@yinzhengjie ~]# rpm -qa | grep kernel
[root@yinzhengjie ~]# ln -s /usr/src/kernels/2.6.32-431.el6.x86_64/ /usr/src/linux
[root@yinzhengjie ~]# ll /usr/src/
[root@yinzhengjie ~]# wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz
[root@yinzhengjie ~]# yum -y install libnl* popt*
[root@yinzhengjie ~]# tar -xzf ipvsadm-1.26.tar.gz
[root@yinzhengjie ~]# cd ipvsadm-1.26
[root@yinzhengjie ipvsadm-1.26]# make && make install
[root@yinzhengjie ipvsadm-1.26]# ipvsadm
 
3.介绍Keepalive
keepalived服务的两大用途:
healthcheck:检查服务健康状态
failover:接管资源的能力(通过VRRP协议)
VRRP协议介绍:
全称Virtual Router Redundancy Protocol,中文名称虚拟路由器冗余协议,VRRPP的出现就是为了解决静态路由的单点故障,VRRP是通过一种竞选协议机制将路由任务交给某台VRRP路由器。
4.安装keepalive软件【172.30.1.60和172.30.1.148都需要安装】
[root@yinzhengjie tools]# ll /usr/src //检查是否做了链接文件,具体的可以参考我的LVS的配置过程

[root@yinzhengjie ~]# yum -y install openssl* //安装依赖包
[root@yinzhengjie ~]# wget http://www.keepalived.org/software/keepalived-1.1.19.tar.gz
//下载软件包
[root@yinzhengjie ~]# tar -zxf keepalived-1.1.19.tar.gz
[root@yinzhengjie ~]# cd keepalived-1.1.19
[root@yinzhengjie ~]# ./configure

上图表示编译成功,以第一个yes表示开启了ipvs功能【也就是支持LVS功能】,第二个yes是对ipcvs的同步支持,第三个yes是对vrrp的框架支持
[root@yinzhengjie keepalived-1.1.19]# make && make install
 
[root@yinzhengjie keepalived-1.1.19]# cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/ #生成启动脚本
[root@yinzhengjie keepalived-1.1.19]# cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/ #配置启动脚本的参数
[root@yinzhengjie keepalived-1.1.19]# mkdir -p /etc/keepalived #创建默认的keepalived配置文件路径
[root@yinzhengjie keepalived-1.1.19]# cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/ #将keepalived模板文件拷贝到新建的目录中去
[root@yinzhengjie keepalived-1.1.19]# cp /usr/local/sbin/keepalived /usr/bin/ #配置系统变量(这样当敲击keepalive的时候就不用打绝对路径了)
[root@yinzhengjie keepalived-1.1.19]# /etc/init.d/keepalived start #启动keepalive服务
Starting keepalived: [ OK ]
[root@yinzhengjie keepalived-1.1.19]# ps -ef | grep keepalive #检查进程是否启动成功
root 10638 1 0 08:52 ? 00:00:00 keepalived -D
root 10639 10638 0 08:52 ? 00:00:00 keepalived -D
root 10640 10638 0 08:52 ? 00:00:00 keepalived -D
root 10643 5869 0 08:53 pts/1 00:00:00 grep keepalive
[root@yinzhengjie keepalived-1.1.19]# /etc/init.d/keepalived stop #停止服务
Stopping keepalived: [ OK ]
[root@yinzhengjie keepalived-1.1.19]# ps -ef | grep keepalive #检查是否成功停止脚本
root 10652 5869 0 08:53 pts/1 00:00:00 grep keepalive
[root@yinzhengjie keepalived-1.1.19]#
 
5.配置keepalived文件
172.30.1.148的配置:
[root@yinzhengjie keepalived]# cp keepalived.conf keepalived.conf.`date +%F` //备份模板文件

[root@yinzhengjie keepalived]# more keepalived.conf //修改配置文件
! Configuration File for keepalived
global_defs {
notification_email {
y1053419035@qq.com //定义一个收件人邮箱;
}
notification_email_from yinzhengjie@thinktrader.net //定义一个发件人邮箱,用以发送邮件;
smtp_server exmail.qq.com //发邮件的服务器
smtp_connect_timeout 30 //设置链接超时时间;这是
router_id LVS_7
}
#上面是定义收发邮件的对象可以不定义,尽管他自己有监控的设置,我们可以通过zabbix来监控,配置起来更简单,至于下面的配置就是定义一个实例;
vrrp_instance VI_1 {
state MASTER //标识这台机器的状态,其实这个参数也就是一个空壳,真正起作用的是下面的 priority这个参数
interface eth0 //绑定IP地址的接口,提供服务的接口,下面的VIP( virtual_ipaddress )地址会默认绑定到这个接口上来的哟
virtual_router_id 55 //虚拟的路由ID(需要注意的是,在另外的一台服务器上这个参数必须一致【我测试用2台服务器高可用】,当然同一个配置文件[也就是这个配置文件]中的IP是不能一致的,也是就是不能冲突哟~因为他起到了唯一标识的作用!)
priority 150 //定义优先级,谁的数字大谁就是MASTER(官方建议2个服务器相差值是50),所以我们可以说上面的state就是一个空客,就好像主席和人名大会堂一样~你可以这么理解~哈哈!
advert_int 1 //间隔时间,超出1s如果对方没有反应它就接管~
authentication { //定义一个加密口令
auth_type PASS //认真密钥,建议用明文,不要用密文
auth_pass 6666 //这个参数自己自定义,建议不要改的太复杂,尤其是特殊字符
}
virtual_ipaddress {
172.30.1.200/24 //定义一个VIP
}
}
[root@yinzhengjie keepalived]# /etc/init.d/keepalived restart
Stopping keepalived: [ OK ]
Starting keepalived: [ OK ]
[root@yinzhengjie keepalived]#
 
172.30.1.60的配置:
[root@yinzhengjie ~]# cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/
[root@yinzhengjie ~]# cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
[root@yinzhengjie ~]# mkdir -p /etc/keepalived
[root@yinzhengjie ~]# cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
[root@yinzhengjie ~]# cp /usr/local/sbin/keepalived /usr/bin/
[root@yinzhengjie ~]# /etc/init.d/keepalived start
[root@yinzhengjie ~]# ps -ef | grep keepalive
root 4853 1 0 06:32 ? 00:00:00 keepalived -D
root 4855 4853 0 06:32 ? 00:00:00 keepalived -D
root 4856 4853 0 06:32 ? 00:00:00 keepalived -D
root 4871 2758 0 06:36 pts/0 00:00:00 grep keepalive
[root@yinzhengjie ~]# cd /etc/keepalived/
[root@yinzhengjie keepalived]# cp keepalived.conf keepalived.conf.`date +%F`
[root@yinzhengjie keepalived]# more keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
1053419035@qq.com
}
notification_email_from yinzhengjie@thinktrader.net
smtp_server smtp.exmail.qq.com
smtp_connect_timeout 30
router_id LVS_2
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 55
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 6666
}
virtual_ipaddress {
172.30.1.200/24
}
}
[root@yinzhengjie keepalived]# /etc/init.d/keepalived restart
Stopping keepalived: [ OK ]
Starting keepalived: [ OK ]
[root@yinzhengjie keepalived]#
6.实验测试是否搭建成功:
172.30.1.148:
[root@yinzhengjie ~]# ip add | grep 1.200

172.30.1.60

说明服务还在master服务器上,这个时候我们停掉172.30.1.148的keepalive服务,检查VIP是否成功切换~
 
172.30.1.148:

172.30.1.60:

好了,通过这个实验,发现这个机器的确是接管成功VIP啦~那么你是否成功啦?这就是简单实现了web的高可用,
 
 
 
keepalive默认存放日志文件是在/var/log/message中,由于该文件是存放系统日志文件,不仅仅存放Keepalive的日志还存放着其他服务的日志。看起来不是很方便。所以我们可以将日志文件重新放到一个文件中。
 
1.修改keepalive配置文件
将原有的KEEPALIVED_OPTIONS="-D"前面加个”#“注释掉,然后重新加一行KEEPALIVED_OPTIONS="-D -d -S -0",如下图
[root@yinzhengjie ~]# vim /etc/sysconfig/keepalived

2.编辑rsyslog配置文件,添加如下2行
[root@yinzhengjie ~]# tail -2 /etc/rsyslog.conf
#add keepalived log by yinzhengjie
local0.* /var/log/keepalived.log
[root@yinzhengjie ~]#
3.重启服务
[root@yinzhengjie ~]# /etc/init.d/rsyslog restart
[root@yinzhengjie ~]# /etc/init.d/keepalived restart

部署keepalive+lvs的更多相关文章

  1. Centos 部署Keepalive高可用软件

    Keepalive安装部署   一.环境介绍 1)Centos6.4 2) keepalived-1.2.12 3) 主备机的ip Master:172.31.100.5 Slave: 172.31. ...

  2. centos6.3部署配置LVS主从

    LVS是Linux Virtual Server的简写,即Linux虚拟服务器,是一个虚拟的服务器集群系统.这个项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一.它的官方网址 ...

  3. ubuntu16.04 部署配置LVS主从

    实验环境---ubuntu16.04 四台机器:10.211.55.13—55.16 具体实验环境配置如下: 10.211.55.102  LVS_VIP 10.211.55.13  LVS_MAST ...

  4. linux 负载均衡配置 keepalive lvs 使用nginx转发 CentOS7 搭建LVS+keepalived负载均衡

    最近希望能够配置一下负载均衡,在虚拟机上面,但是网上找了很多资料很零散,对于不了解的人,很多不够详细,最近终于做好了,把具体的步骤写下来,方便各位网友查阅学习 这个实验需要安装nginx如果没有安装过 ...

  5. python程序—一键部署keepalived+lvs

    一个DS 两个RS keepalived端在/root下准备好已经修改好的配置文件 import paramiko # keepalived端 需要修改的信息 keepalived_ip='192.1 ...

  6. persistence_timeout ,域名请求登录后一操作即被踢出,,KeepAlive,lvs

    virtual_server *.*.*.* 80 { delay_loop 6 lb_algo wrr lb_kind DR persistence_timeout 120 protocol TCP ...

  7. centos7安装kubernetes k8s 1.18

    可以参考其他网友的阿里云搭建k8s高可用集群(1.17.3) https://www.cnblogs.com/gmmy/p/12372805.html 准备四台centos7虚拟机,用来安装k8s集群 ...

  8. LVS:DR模式(Direct Routing)部署实验

    本文介绍怎样在kvm的虚拟环境下,部署实验LVS的DR模式.包含网络结构图,怎样配置.以及使用tcpdump分析ip包. 网络结构图                               kvm ...

  9. LVS主从部署配置和使用

    LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一. LVS是L ...

随机推荐

  1. nginx资源定向 css js路径问题

    今天玩玩项目,学学nginx发现还不错,速度还可以,但是CSS JS确无法使用,原来Iginx配置时需要对不同类型的文件配置规则,真是很郁闷,不过想想也还是很有道理.闲暇之际,把配置贴上来.#user ...

  2. Some useful links

    Integrating the FlyCapture SDK for use with OpenCV CStereoGrabber_Bumblebee.h OpenCV with PGR Flycap ...

  3. Set

    package lis0924; //生成器导包 import java.util.HashSet; import java.util.Iterator; import java.util.Set; ...

  4. 单页Web应用:

    概念: Web应用程序: WEB应用程序一般是B(浏览器)/S(服务器)模式.Web应用程序首先是“应用程序”,和用标准的程序语言,如C.C++等编写出来的程序没有什么本质上的不同.然而Web应用程序 ...

  5. C# 在 vs2010 上开发 ActiveX 控件 【千辛万苦啊~】

    由于B/S项目中需要使用到读卡器的功能,但是由于厂家只有提供一个 读卡的dll,那么怎样能在客户端使用读卡器呢,那么进过一番查找,最总决定使用ActiveX 控件来做.由于是第一次接触到 Active ...

  6. HTTP协议 (四) 缓存

    HTTP协议 (四) 缓存 阅读目录 缓存的概念 缓存的好处 Fiddler可以方便地查看缓存的header 如何判断缓存新鲜度 通过最后修改时间,判断缓存新鲜度 与缓存相关的header ETag ...

  7. sql实现对多个条件分组排序方法和区别

    转自: http://blog.csdn.net/winer2008/article/details/4283539 rank,dense_rank,row_number区别 一:语法(用法):    ...

  8. javascript中的删除方法

    可能呢再开发的过程中呢使用的不是很多,但是碰上呢可以注意下 1.比如: var x = 10; delete x; console.log(x); 结果是多少,是10,不是异常也不是undefined ...

  9. MUI - DIV窗体切换

    神坑记录: 1.js报错异常:没有找到"innerHeight"属性? 解决方案:暂时不知原因,通过对mui.view.js进行调试得知是跳转目标页没有 .mui-navbar-l ...

  10. BizTalk动手实验(十二)WCF-Oracle适配器使用

    1 课程简介 通过本课程熟悉WCF-Oracle适配器的的使用 2 准备工作 1. 新建BizTalk空项目 2. 配置BizTalk项目的应用程序名称及程序签名. 3. Oracle数据库 ( Or ...