Centos7.4下keepalived-1.3.5的安装使用
keepalived两个功能,一个是使lvs使用的vip高可用,一个是监控各个上游节点的对应端口是否正常工作,以保证快速剔除坏掉的节点。
keepalived默认的yum 1.3.5有BUG,根本跑不起来,所以我们换成源码压缩包下载后编译安装的方式进行安装
经过实验 CentOS7.4下的lvs不是不停轮询,而是一段时间内会绑定用户和实际目标服务器,keepalived中也会表现出来,不过我们可以换个ip访问一下,来验证我们的配置结果。
本文出现三种节点名称,keepalived主节点和备用节点,以及RealServer——最终提供服务的服务器,注意将keepalived的主节点、备用节点、realserver分配为不同的机器
1、安装依赖(本文使用的Centos7.4是最小安装,部分依赖不全,所以需要先安装依赖)
yum install -y gcc gcc-c++ openssl-devel
2、下载keepalived-1.3.5压缩包(下载地址),放在/usr/local目录下,并解压,步骤略
3、进入解压后的目录中,执行以下命令:
./configure --prefix=/usr/local/keepalived && make && make install
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
mkdir -p /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cp ./keepalived/etc/init.d/keepalived /etc/init.d/
chmod /etc/init.d/keepalived
4、编辑keepalived.service
vi /lib/systemd/system/keepalived.service
将所有的字符串 “/usr/local/keepalived” 替换为空白,vi编辑器命令:【%s/\/usr\/local\/keepalived//g】
5、刷新配置
systemctl daemon-reload
6、编辑/etc/keepalived/keepalived.conf配置为自己的配置(摘自传送门,有改动),示例:
主节点:
global_defs {
notification_email {
edisonchou@hotmail.com
}
notification_email_from sns-lvs@gmail.com
smtp_server 192.168.80.1
smtp_connection_timeout
router_id LVS_DEVEL # 设置lvs的id,在一个网络内应该是唯一的
}
vrrp_instance VI_1 {
state MASTER #指定Keepalived的角色,MASTER为主,BACKUP为备
interface eth1 #指定网卡名称,是实际使用的网卡,而非虚网卡
virtual_router_id #虚拟路由编号,主备要一致
priority #定义优先级,数字越大,优先级越高,主DR必须大于备用DR
advert_int #检查间隔,默认为1s
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
192.168.80.200 #定义虚拟IP(VIP)为192.168.2.,可多设,每行一个
}
}
# 定义对外提供服务的LVS的VIP以及port
virtual_server 192.168.80.200 {
delay_loop # 设置健康检查时间,单位是秒
lb_algo wrr # 设置负载调度的算法为wlc
lb_kind DR # 设置LVS实现负载的机制,有NAT、TUN、DR三个模式
nat_mask 255.255.255.0
persistence_timeout
protocol TCP
real_server 192.168.80.102 { # 指定real server1的IP地址
weight # 配置节点权值,数字越大权重越高
TCP_CHECK {
connect_timeout
nb_get_retry
delay_before_retry
connect_port
}
}
real_server 192.168.80.103 { # 指定real server2的IP地址
weight # 配置节点权值,数字越大权重越高
TCP_CHECK {
connect_timeout
nb_get_retry
delay_before_retry
connect_port
}
}
}
注意网卡名一定要和你机器上的一致。另外,virtual_router_id不要与同网络的其他的keepalived集群配置冲突。
备用节点,需要修改:
将MASTER改为BACKUP,并将priority由100改低一些
7、在各个Real Server中添加脚本,命名为【rs.sh】(摘自传送门,有改动):
SNS_VIP=$2
#/etc/rc.d/init.d/functions
case "$1" in
start)
ifconfig lo: $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP
/sbin/route add -host $SNS_VIP dev lo:
echo "" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "" >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p >/dev/null >&
echo "RealServer Start OK"
;;
stop)
ifconfig lo: down
route del $SNS_VIP >/dev/null >&
echo "" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "" >/proc/sys/net/ipv4/conf/all/arp_announce
echo "RealServer Stoped"
;;
*)
echo "Usage: $0 {start|stop}"
exit
esac
exit
增加执行权限:
chmod rs.sh
执行:
./rs.sh start [VIP]
该内容将VIP作为RealServer的一个类似127.0.0.1的IP添加到RealServer的回环IP列表中,让RealServer认为主节点通过VIP转发过来的包真的是发给自己的,从而正常处理该包,不至于认为数据包不合法。
8、在主节点和备节点上分别执行
systemctl start keepalived
9、其他注意内容
A、如果在正式环境中,建议将添加回环地址作为开机启动项,并且keepalived 也配置成开机启动
B、如果使用了防火墙,务必允许keepalived使用的vrrp组播通过防火墙,否则虚IP会同时出现在主备两台机器上。
命令如下(网卡换成你的网卡即可):
firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT --in-interface [网卡] --destination 224.0.0.18 --protocol vrrp -j ACCEPT firewall-cmd --reload
Centos7.4下keepalived-1.3.5的安装使用的更多相关文章
- centos7.x下环境搭建(一)--yum方式安装mysql5.7
前两天因为数据库被黑客攻击,导致数据被删除,数据库被损坏,系统重新安装了一下,所以环境也需要重新再搭一遍,包括mysql.nodejs.git.nginx和redis的安装.由于之前安装的mysql安 ...
- centos7.6下的python3.6.9虚拟环境安装elastalert
centos7.6安装python3.6.9+elastalert .编译安装python3..9环境 # 安装依赖 yum -y install zlib-devel bzip2-devel ope ...
- centos7环境下apache2.2.34的编译安装
.获取apache2..34的源码包 http://archive.apache.org/dist/httpd/httpd-2.2.34.tar.gz .获取apache的编译参数 apache的编译 ...
- CentOS7 下 keepalived 的安装和配置
安装前准备:yum -y install gcc gcc-c++ autoconf automake make yum -y install zlib zlib-devel openssl opens ...
- CentOS7.1下生产环境Keepalived+Nginx配置
CentOS7.1下生产环境Keepalived+Nginx配置 [日期:2015-07-20] 来源:Linux社区 作者:soulful [字体:大 中 小] 注:下文涉及到配置的,如无特别 ...
- 【keepalived】CentOS7.0下安装教程
安装前所需环境 keepalived安装之前,需要环境:wget.gcc.pcre.openssl.zlib.popt-devel 1,wget:用于从外网上下载插件 wget安装命令:yum -y ...
- centos7 memcached+magent+keepalived集群
111,222均部署keepalived,magent,memcached keepalived 111为主机,222为备机 其中,111上magent以本地memcache为主,222为备用 222 ...
- Centos7.2 下DNS+NamedManager高可用部署方案完整记录
Centos7.2 下DNS+NamedManager高可用部署方案完整记录 之前说到了NamedManager单机版的配置,下面说下DNS+NamedManager双机高可用的配置方案: 1)机器环 ...
- centos7.2下编译安装&&使用-git代码库
centos7.2下编译安装git Git简介 Git是一个分布式版本控制系统 Git vs SVN SVN是典型的集中式版本控制起,版本库集中存放在服务器,当我们用自己的电脑干活儿的时候,需要先从中 ...
随机推荐
- Netty 中 IOException: Connection reset by peer 与 java.nio.channels.ClosedChannelException: null
最近发现系统中出现了很多 IOException: Connection reset by peer 与 ClosedChannelException: null 深入看了看代码, 做了些测试, 发现 ...
- Java NIO SocketChannel
A Java NIO SocketChannel is a channel that is connected to a TCP network socket. It is Java NIO's eq ...
- javascript中的分支判断与循环
分支判断与循环 分支结构 单一选择结构(if) 二路选择结构(if/else) 内联三元运算符 ?: 多路选择结构(switch) var condition = true; if (conditio ...
- 再议FastReport.NET(转)
之前说起过FastReport.NET这款报表工具的使用,但当时主要是从程序的角度,示例了在B/S架构下的相关使用,但报表终归还是要划到设计的范畴里来,毕竟能够将报表的内容展示在客户的眼前,这才是报表 ...
- 使用jQuery获取radio/checkbox组的值的代码收集
<!-- $("document").ready(function(){ $("#btn1").click(function(){ $("[na ...
- 【Spark】开发Spark选择Java还是Scala?
Spark-Java-Scala-哪种语言 spark java 支持_百度搜索 (1 封私信)Spark 中用 Scala 和 java 开发有什么区别? - 知乎 (1 封私信)Spark平台下, ...
- 文本相似度-BM25算法
BM25 is a bag-of-words retrieval function that ranks a set of documents based on the query terms app ...
- MODBUS协议整理——功能码简述
1.Modbus简介——来自维基百科 Modbus是一种串行通信协议,是Modicon于1979年,为使用可编程逻辑控制器(PLC)而发表的.Modbus是工业领域通信协议的业界标准,并且现在是工业电 ...
- IntelliJ idea配置python
为什么选择Intellij?因为我需要系统地管理python工程,Intellij可断点调试. 1.下载IntelliJ idea 在百度中搜索“IntelliJ idea”,并点击官网地址进行下载: ...
- 【Nodejs】外研社小学英语教材一年级起各年级英语音频下载(全)
两个爬虫合作成的,放在这里分享给有需要的人. 下载地址:https://pan.baidu.com/s/19hJ59SsX9uTfFtBxaRxJ8A 2018年5月10日