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

[经验分享] keepalived实现LVS的高可用及实现Web的高可用

[复制链接]

尚未签到

发表于 2018-12-31 09:54:32 | 显示全部楼层 |阅读模式
  规划:启用4台主机:高可用节点:HA1HA2 RS1 RS2
     地址划分:172.16.173.10172.16.173.11172.16.173.13172.16.173.14172.16.173.1(虚拟主机ip
  1、配置主机名,保持主机名一致
  
# hostname lzl01 暂时性的
# vim /etc/sysconfig/network
##修改如下:
HOSTNAME=lzl01#当然HA2上要改为lzl02
:wq #保存退出
# vim /etc/hosts 可以配置主机的别名及主机名解析  2、实现时间同步(如果时间相差太多也会出现错误)
  
[root@lzl02 ~]# service ntpd stop
[root@lzl02 ~]# chkconfig ntpd off 关闭自启动服务
[root@lzl02 ~]# ntpdate 172.16.0.1 与服务器同步时间
[root@lzl02 ~]# date
可以使用命令来实现,防止时间再次错乱(因为使用的虚拟机显示的,所以挂起可能会影响实验)
*/5 * * * * /sbin/ntpdate 172.16.0.1 &> /dev/null每5分钟同步时间
[root@lzl02 ~]# scp /var/spool/cron/root lzl01:/var/spool/cron/复制到另一主机
root@lzl01 ~]# crontab -l查看所写规则如存在规则,则需删除,以免影响实验  
  
  3、实现双机互信
  
#ssh-keygen -t rsa -f ~/.ssh/id_rsa -P '' 生成密钥
#ssh-copy-id -i .ssh/id_rsa.pub root@node2 ##将公钥文件发送到HA2上边  
  
4、配置yum源并下载  http://407711169.blog.运维网.com/6616996/1179601[1] ## 此处前边是一个配置yum的例子
  安装配置HAkeepalived工具及负载均衡管理工具ipvsadm
  下载好 keepalived-1.2.7-5.el5.i386.rpm
  lftp 172.16.0.1:/pub/Sources/keepalived> get keepalived-1.2.7-5.el5.i386.rpm下载软件rpm包(此处仅演示,此ftpyum源均是私有的,不可用。)
  
[root@lzl02 ~]# yum -y --nogpgcheck localinstall keepalived-1.2.7-5.el5.i386.rpm安装rpm包
在另一个节点上安装
[root@lzl02 ~]# cd /etc/keepalived/
[root@lzl02 keepalived]# ls查看配置文件  5、在RS1RS2上安装httpd服务
  
# yum install httpd –y
# vim /var/www/html/index.html
###添加如下内容
172.16.173.*(本机ip)
# service httpd start##开启服务  
  
这个时候可以打开浏览器输入下172.16.173.13 172.16.173.14来测试下界面  


  
6、设置负载均衡集群这里只需要在各个RS节点中运行下如下的脚本,就可以了。(当然如果不怕麻烦的同学可以手动添加,内容和脚本start中的内容一致)
# vim start.sh创建脚本
添加如下内容
#!/bin/bash
#
# Script to start LVS DR real server.
# description: LVS DR real server
#
./etc/rc.d/init.d/functions
VIP=172.16.173.1(此脚本仅需要修改此处,改为自己设置的虚拟主机 ip)
host=`/bin/hostname`
case "$1" in
start)##手动添加只需要进行下边的操作
# Start LVS-DR real server on this machine.
/sbin/ifconfig lo down
/sbin/ifconfig lo up
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore #定义接收到ARP请求时的响应级别
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
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up定义广播地址为自播模式
/sbin/route add -host $VIP dev lo:0##定义主机为172.16.111.1的地址使用lo:0为源地址##手动添加操作到此
;;
stop)
# Stop LVS-DR real server loopback device(s).
/sbin/ifconfig lo:0 down
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
;;
status)
# Status of LVS-DR real server.
islothere=`/sbin/ifconfig lo:0 | grep $VIP`
isrothere=`netstat -rn | grep "lo:0" | grep $VIP`
if [ ! "$islothere" -o ! "isrothere" ];then
# Either the route or the lo:0 device
# not found.
echo "LVS-DR real server Stopped."
else
echo "LVS-DR real server Running."
fi
;;
*)
# Invalid entry.
echo "$0: Usage: $0 {start|status|stop}"
exit 1
;;
esacwq#保存退出
# chmod +x start.sh 赋予执行权限
# ./start.sh start #执行脚本
  7、编辑keepalived的配置文件
  : # vim /etc/ keepalived/ keepalived.conf
  




  然后复制到另外个虚拟机中,只需改动两处地方
  
##记得改state改为BACKUP
##将priority 改为100
Yum安装ipvsadm查看信息
# yum install ipvsadm -y然后开启服务:
# service ipvsadm start  :此处有可能影响服务的启动:
  [RS端的设置:
  (同样两个在两个RS分别执行)
  关掉selinux
  # setenforce 0
  或者
  # vim /etc/selinux/config
  ##修改
  SELINUX=permissive]



  打开网页输入172.16.173.1查看
  
  实现WEB的高可用
  我们直接在上边实验过程中的两个HA上做修改。
  先关掉keepalived服务
  打开网页测试下两个页面
  这个时候我们需要去配置keepalived的配置文件
  主从节点的配置
  配置keepalived配置文件
! Configuration File for keepalived
global_defs {
notification_email {
linuxedu@foxmail.com
mageedu@126.com
}
notification_email_from kanotify@magedu.com
smtp_connect_timeout 3
smtp_server 127.0.0.1
router_id LVS_DEVEL
}
vrrp_script chk_httpd {
script "killall -0 httpd"
interval 2
# check every 2 seconds
weight -2
# if failed, decrease 2 of the priority
fall 2
# require 2 failures for failures
rise 1
# require 1 sucesses for ok
}
vrrp_script chk_schedown {
script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0"
interval 2
weight -2
}
vrrp_instance VI_1 {
interface eth0
# interface for inside_network, bound by vrrp
state MASTER
# Initial state, MASTER|BACKUP
# As soon as the other machine(s) come up,
# an election will be held and the machine
# with the highest "priority" will become MASTER.
# So the entry here doesn't matter a whole lot.
priority 101
# for electing MASTER, highest priority wins.
# to be MASTER, make 50 more than other machines.
virtual_router_id 51
# arbitary unique number 0..255
# used to differentiate multiple instances of vrrpd
# running on the same NIC (and hence same socket).
garp_master_delay 1
authentication {
auth_type PASS
auth_pass password
}
track_interface {
eth0
}
# optional, monitor these as well.
# go to FAULT state if any of these go down.
virtual_ipaddress {
172.16.173.1/16 dev eth0 label eth0:0
}
#addresses add|del on change to MASTER, to BACKUP
#With the same entries on other machines,
#the opposite transition will be occuring.
#/ brd  dev  scope  label
track_script {
chk_httpd
chk_schedown
}
notify_master "/etc/keepalived/notify.sh master"
notify_backup "/etc/keepalived/notify.sh backup"
notify_fault "/etc/keepalived/notify.sh fault"
}
#vrrp_instance VI_2 {
#interface eth0
#state MASTER# BACKUP for slave routers
#priority 101# 100 for BACKUP
#virtual_router_id 52
#garp_master_delay 1
#
#authentication {
#auth_type PASS
#auth_pass password
#}
#track_interface {
#eth0
#}
#virtual_ipaddress {
#172.16.100.2/16 dev eth0 label eth0:1
#}
#track_script {
#chk_haproxy
#chk_mantaince_down
#}
#
#notify_master "/etc/keepalived/notify.sh master eth0:1"
#notify_backup "/etc/keepalived/notify.sh backup eth0:1"
#notify_fault "/etc/keepalived/notify.sh fault eth0:1"
#}此脚本中所要修改的不是很多只需要修改启动的服务名称(本次实验的为http服务),在修改notify.sh脚本中的所要启动的服务名称
  然后将其复制到节点HA2
  
[root@lzl01 keepalived]# scp keepalived.conf notify.sh lzl02:/etc/keepalived/
keepalived.conf                      100% 2805     2.7KB/s   00:00
notify.sh                            100%  777     0.8KB/s  
  并修改其中的主从节点设置选项
  state MASTER##改为BUCKUP (从节点)
  priority 101##优先级改为100
  分别在两边开启服务开启服务。
# service keepalived start
这时候查看一下网卡信息
# ip addr show  可以看出来网卡172.16.173.1已经在网卡eth0:0上了
  
  打开网页输入172.16.111.1查看
  
  可以发现确实在节点HA1
  这个时候我们可以仿照HA1服务故障:(配置文件中可以留意在其文件中创建一个down文件可以模拟其服务故障,还有一种方式可以实现,关闭http服务,但本机中notify.sh脚本中设置的为关闭服务后会重启,所以不可实现。)
  



  注:以上几张图片忘记做标记了,请仔细看他们的主机名字的变化
  然后打开网页测试下:
  显然已经变成了HA2http页面
  大家可以继续做测试,删掉dwon文件(但由于ha1的优先级高,所以会抢占过来节点)
  




运维网声明 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-657868-1-1.html 上篇帖子: 64.LVS DR模式搭建、keepalived + LVS 下篇帖子: 配置Keepalived双实例高可用Nginx
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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