热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

centos7搭建keepalived+lvs/DR集群

参考链接(若读一下文章感到不适,移步)LVS负责多台WEB端的负载均衡(LB);Keepaliv

参考链接(若读一下文章感到不适,移步)
LVS负责多台WEB端的负载均衡(LB);Keepalived负责LVS的高可用(HA)使用Keepalived为LVS调度器提供高可用功能,防止调度器单点故障,为用户提供Web服务:

  • LVS1调度器真实IP地址为192.168.37.52(MASTER)

  • LVS2调度器真实IP地址为192.168.37.53(BACKUP)

  • 服务器VIP地址设置为192.168.37.60

  • 真实Web服务器地址分别为192.168.37.51、192.168.37.52

    实验拓扑图:

在这里插入图片描述

实验步骤:

实验准备:

配置yum源(自行解决或使用系统自带)

全局设置:

# systemctl stop firewalld.service //关闭防火墙
# systemctl disable firewalld.service //关闭开机自启
# firewall-cmd --state //查看
# setenforce 0 //设置SELinux 为宽松模式

  1. 安装软件

1.在两台Web主机上安装http 或(NGINX)这里我用http,配置WEB服务器 pc51 / pc52

#yum -y install httpd
#systemctl start httpd
#systemctl enable httpd
[root@web1 ~] #echo " 192.168.37.51 " > /var/www/html/index.html
[root@web2 ~] #echo " 192.168.37.52 " > /var/www/html/index.html
#cat lvs-web.sh
脚本内容
vip=192.168.37.60
mask='255.255.255.255'
dev=lo:1case $1 in
start)echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignoreecho 1 > /proc/sys/net/ipv4/conf/lo/arp_ignoreecho 2 > /proc/sys/net/ipv4/conf/all/arp_announceecho 2 > /proc/sys/net/ipv4/conf/lo/arp_announceifconfig $dev $vip netmask $mask #broadcast $vip up#route add -host $vip dev $devecho "The RS Server is Ready!";;
stop)ifconfig $dev downecho 0 > /proc/sys/net/ipv4/conf/all/arp_ignoreecho 0 > /proc/sys/net/ipv4/conf/lo/arp_ignoreecho 0 > /proc/sys/net/ipv4/conf/all/arp_announceecho 0 > /proc/sys/net/ipv4/conf/lo/arp_announceecho "The RS Server is Canceled!";;
*)echo "Usage: $(basename $0) start|stop"exit 1;;
esac# bash lvs-web.sh start //执行脚本完成配置

2.在LVS-1和LVS-2两台主机上安装ipvsadm和keepalived

# yum install ipvsadm keepalived -y  

3.Keepalived配置详解

[root@lvs1 ~]# vim /etc/keepalived/keepalived.conf    // Master配置好的信息如下 
! Configuration File for keepalived
notification_email { #邮件通知机制,当keepalived发生故障时,进行发邮件通知root@localhost.com #可以将其修改也可以将其改为本机}notification_email_from root@localhost.com #邮件从哪里发出去smtp_server 127.0.0.1 #本机的smtp服务器地址smtp_connect_timeout 30 #smtp的连接超时时长router_id n1 #虚拟路由的表示符一般写本机,确保每个节点都不相同vrrp_skip_check_localhostadv_addr #跳过检查数据报文,默认会检查。vrrp_strict #严格遵循vrrp协议,没有vip,单播地址,ipv6地址将无法启动vrrp_iptables #不生成iptables规则vrrp_mcast_group4 224.0.0.18 #组播,默认情况下向224.0.0.18发送组播消息vrrp_garp_interval 0 #arp报文发送延迟vrrp_gna_interval 0 #消息发送延迟}vrrp_instance VI_1 {      state MASTER        ## LVS-1配置了为主,另外一台LVS-2配置为BACKUPinterface ens33       ## 注意匹配网卡名virtual_router_id 51    ## 虚拟路由ID(0-255),在一个VRRP实例中主备服务器ID必须一样priority 100        ## 优先级值设定:MASTER要比BACKUP的值大advert_int 3        ## 通告时间间隔:单位秒,主备要一致authentication {      ##认证机制auth_type PASS     ## 默认PASS; 有两种:PASS或AH auth_pass 1111     ## 默认1111; 可多位字符串,但仅前8位有效}virtual_ipaddress {192.168.37.60 dev ens33 label ens33:0     //VIP地址## 虚拟IP;可多个,写法为每行一个}
}
virtual_server 192.168.37.60 80 {delay_loop 3       ## 设置健康状态检查时间lb_algo rr        ## 调度算法,这里用了rr轮询算法,便于后面测试查看lb_kind DR        ## 这里测试用了Direct Route 模式,# persistence_timeout 1  ## 持久连接超时时间,先注释掉,不然在单台上测试时,全部会被lvs调度到其中一台Real Serverprotocol TCPreal_server 192.168.37.50 80 {weight 1TCP_CHECK {connect_timeout 10    ##设置响应超时时间nb_get_retry 3       ##设置超时重试次数delay_before_retry 3   ##设置超时重试间隔时间connect_port 80}}real_server 192.168.37.51 80 {weight 1TCP_CHECK {connect_timeout 10nb_get_retry 3delay_before_retry 3connect_port 80}}
}

[root@lvs2 ~]# vim /etc/keepalived/keepalived.conf     //同样,修改BACKUP上的配置文件,如下! Configuration File for keepalivedglobal_defs {router_id LVS
}vrrp_instance VI_1 {state BACKUPinterface ens33virtual_router_id 51priority 80advert_int 3authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.37.60 dev ens33 label ens33:0}
}
virtual_server 192.168.37.60 80 {delay_loop 3lb_algo rrlb_kind DR# persistence_timeout 1protocol TCPreal_server 192.168.37.50 80 {weight 1TCP_CHECK {connect_timeout 10nb_get_retry 3delay_before_retry 3connect_port 80}}real_server 192.168.37.51 80 {weight 1TCP_CHECK {connect_timeout 10nb_get_retry 3delay_before_retry 3connect_port 80}}
}

启动keepalived

# systemctl start keepalived
# systemctl enable keepalived
# ip a |grep ens33:0 //查看vip
#ipvsadm -Ln //服务器表

客户端测试

#curl 192.168.37.60 //或下面的方法
# while true ; do curl 1192.168.37.60; sleep 1;done    //每秒执行一次curl 192.168.37.60


推荐阅读
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • ASP.NET2.0数据教程之十四:使用FormView的模板
    本文介绍了在ASP.NET 2.0中使用FormView控件来实现自定义的显示外观,与GridView和DetailsView不同,FormView使用模板来呈现,可以实现不规则的外观呈现。同时还介绍了TemplateField的用法和FormView与DetailsView的区别。 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • phpcomposer 那个中文镜像是不是凉了 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • 本文介绍了在使用Python中的aiohttp模块模拟服务器时出现的连接失败问题,并提供了相应的解决方法。文章中详细说明了出错的代码以及相关的软件版本和环境信息,同时也提到了相关的警告信息和函数的替代方案。通过阅读本文,读者可以了解到如何解决Python连接服务器失败的问题,并对aiohttp模块有更深入的了解。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
author-avatar
伊倓
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有