博客
关于我
centos7配置lvs+keepalived高可用生产环境配置
阅读量:393 次
发布时间:2019-03-05

本文共 3113 字,大约阅读时间需要 10 分钟。

环境:

在这里插入图片描述
192.168.5.100 vip
192.168.5.103 lvs主机
192.168.5.108 lvs从机
192.168.5.104 tomcat1
192.168.5.105 tomcat2
1.安装ipvsadm(管理工具)+keepalived
yum -y install ipvsadm keepalived
2.创建lvs主备服务器运行脚本程序
[root@localhost ~]# vim /sbin/lvsdr.sh
#!/bin/bash
VIP=192.168.5.100
RIP1=192.168.5.104
RIP2=192.168.5.105

/etc/rc.d/init.d/functions

case “$1” in
start)
echo “start LVS of DirectorServer”
#Set the Virtual IP Address
/sbin/ifconfig ens33:1 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev ens33:1
#Clear IPVS Table
/sbin/ipvsadm -C
#Set Lvs Add route link
/sbin/ipvsadm -A -t $VIP:80 -s wrr -p 60
/sbin/ipvsadm -a -t $VIP:80 -r $RIP1 -g
/sbin/ipvsadm -a -t $VIP:80 -r $RIP2 -g

/sbin/ipvsadm -A -t $VIP:80 -s wrr -p 60

/sbin/ipvsadm -a -t $VIP:80 -r $RIP1 -g

/sbin/ipvsadm -a -t $VIP:80 -r $RIP2 -g

#Run Lvs   /sbin/ipvsadm

;;

stop)
echo “Close LVS Directorserver”
/sbin/ifconfig ens33:1 down
/sbin/ipvsadm -C
;;
*)
echo “Usage0{start|stop}”
exit 1
esac
3.添加权限并执行
[root@localhost ~]# chmod 755 /sbin/lvsdr.sh
[root@localhost ~]# /sbin/lvsdr.sh start
[root@localhost ~]# ipvsadm -ln
4.添加到开机启动
[root@localhost ~]# vim /etc/rc.local
/sbin/lvsdr.sh start #追加此纪录
5.将配置程序SCP到backup,并执行4、5步骤
[root@localhost ~]# scp /sbin/lvsdr.sh 192.168.0.62:/sbin/lvsdr.sh
6.tomcat1创建real服务器运行脚本程序
[root@localhost ~]# vim /sbin/realdr.sh

#!/bin/bash

VIP=192.168.0.60
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev lo:0
echo “1”>/proc/sys/net/ipv4/conf/default/arp_ignore
echo “2”>/proc/sys/net/ipv4/conf/default/arp_announce
echo “1”>/proc/sys/net/ipv4/conf/all/arp_ignore
echo “2”>/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p
7.分配权限并执行
[root@localhost ~]# chmod 755 /sbin/realdr.sh
[root@localhost ~]# /sbin/realdr.sh start
[root@localhost ~]# ifconfig
可查看到lo:0上已经有了vip地址
(注:最小化安装系统ifconfig命令没有,可yum -y install net-tools进行安装)
8.设置此real运行程序自启动
[root@localhost ~]# vim /etc/rc.local
/sbin/realdr.sh start #追加此内容
9.将此real运行程序scp到tomcat2,并执行8、9步骤
10.配置keepalived
global_defs{ router_id LVS_DEVEL}vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.5.100
}
}

virtual_server 192.168.5.100 80 {

delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 0
protocol TCP
real_server 192.168.5.104 80 {
weight 1
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.5.105 80 {
weight 1
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
11.将master的keepalived配置文件scp到backup
[root@localhost ~]# scp /etc/keepalived/keepalived.conf 192.168.0.62:/etc/keepalived/keepalived.conf
修改名称、id以及优先级
12.开通防火墙端口,或者关闭防火墙
此为防火墙在开启状态,访问被阻,关闭防火墙或者允许页面端口通过都可以。
实验环境可关闭防火墙:
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
本人搭建一个运维经验分享网站,有好的运维技术和经验欢迎分享到博客地址:http://www.jkkcss.cn/

转载地址:http://ybhwz.baihongyu.com/

你可能感兴趣的文章
MySQL中interactive_timeout和wait_timeout的区别
查看>>
mysql中int、bigint、smallint 和 tinyint的区别、char和varchar的区别详细介绍
查看>>
mysql中json_extract的使用方法
查看>>
mysql中json_extract的使用方法
查看>>
mysql中kill掉所有锁表的进程
查看>>
mysql中like % %模糊查询
查看>>
MySql中mvcc学习记录
查看>>
mysql中null和空字符串的区别与问题!
查看>>
MySQL中ON DUPLICATE KEY UPDATE的介绍与使用、批量更新、存在即更新不存在则插入
查看>>
MYSQL中TINYINT的取值范围
查看>>
MySQL中UPDATE语句的神奇技巧,让你操作数据库如虎添翼!
查看>>
Mysql中varchar类型数字排序不对踩坑记录
查看>>
MySQL中一条SQL语句到底是如何执行的呢?
查看>>
MySQL中你必须知道的10件事,1.5万字!
查看>>
MySQL中使用IN()查询到底走不走索引?
查看>>
Mysql中使用存储过程插入decimal和时间数据递增的模拟数据
查看>>
MySql中关于geometry类型的数据_空的时候如何插入处理_需用null_空字符串插入会报错_Cannot get geometry object from dat---MySql工作笔记003
查看>>
mysql中出现Incorrect DECIMAL value: '0' for column '' at row -1错误解决方案
查看>>
mysql中出现Unit mysql.service could not be found 的解决方法
查看>>
mysql中出现update-alternatives: 错误: 候选项路径 /etc/mysql/mysql.cnf 不存在 dpkg: 处理软件包 mysql-server-8.0的解决方法(全)
查看>>