今天给大家介绍一本小册,Linux常用服务器部署实战。

Linux常用服务器部署是作为一名运维工程师必须掌握的高级技能,这本小册讲解了学习常用服务器服务部署。
我们来看一下这本小册的目录:

本小册介绍了一些Linux常服务的搭建和部署,是运维工程师必备技能。
本文内容转载自 【码小课】,码小课是一个在线小册学习,在线PDF书籍学习平台,感兴趣的同学可以搜索码小课。


本篇文章为大家分享第一小节内容:
lvs+keepalived高可用集群部署
案例需求
部署基于LVS DR模式的web高可用集群,实现:
- 实现数据服务器容错
- 实现分发器故障切换
- 任何机器宕机不中断web业务
实验环境
六台安装CentOS8的虚拟机一台测试机,两台LVS分发器,一台路由器,两台web服务器,关闭selinux关闭防火墙,停止libvirtd.service服务
| 角色名称 | 接口名称 | IP地址 |
|---|---|---|
| client | ens33 | 192.168.1.200 |
| route | ens33,ens160 | 192.168.1.1,192.168.2.1 |
| lvs1 | ens33 | 192.168.2.200,192.168.2.100(VIP) |
| lvs2 | ens33 | 192.168.2.150,192.168.2.100(VIP) |
| rs1 | ens33,lo:0 | 192.168.2.220,192.168.2.100(VIP) |
| rs2 | ens33,lo:0 | 192.168.2.210,192.168.2.100(VIP) |
实验拓扑图

实验步骤
a、配置客户端
ens33=192.168.1.200[root@client ~]# route add default gw 192.168.1.1
b、设置路由
ens33=192.168.1.1ens160=192.168.2.1[root@route ~]# echo 1>/proc/sys/net/ipv4/ip_forward
c、设置RS的VIP、网关、内核参数
RS1[root@rs1 ~]# route add default gw 192.168.2.1[root@rs1 ~]# ifconfig lo:0192.168.2.100 netmask 255.255.255.255 up[root@rs1 ~]# echo 1>/proc/sys/net/ipv4/conf/all/arp_ignore[root@rs1 ~]# echo 2>/proc/sys/net/ipv4/conf/all/arp_announceRS2[root@rs2 ~]# route add default gw 192.168.2.1[root@rs2 ~]# ifconfig lo:0192.168.2.100 netmask 255.255.255.255 up[root@rs2 ~]# echo 1>/proc/sys/net/ipv4/conf/all/arp_ignore[root@rs2 ~]# echo 2>/proc/sys/net/ipv4/conf/all/arp_announce安装web服务,生成测试页面RS1[root@rs1 ~]# dnf install httpd -y[root@rs1 ~]# echo "rs1">/var/www/html/index.html[root@rs1 ~]# systemctl start httpd.serviceRS2[root@rs2 ~]# dnf install httpd -y[root@rs2 ~]# echo "rs2">/var/www/html/index.html[root@rs2 ~]# systemctl start httpd.service
d、设置LVS
### LVS1 安装软件包,修改配置文件[root@lvs1 ~]# dnf install ipvsadm keepalived -y[root@lvs1 ~]# vim /etc/keepalived/keepalived.conf!ConfigurationFilefor keepalivedglobal_defs {router_id lvs_1}vrrp_instance apache {state MASTERinterface ens33virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.2.100/24}}virtual_server 192.168.2.10080{delay_loop 6lb_algo rrlb_kind DRnat_mask 255.255.255.0# persistence_timeout 50protocol TCPreal_server 192.168.2.21080{weight 1TCP_CHECK {connect_timeout 3connect_port 80}}real_server 192.168.2.22080{weight 1TCP_CHECK {connect_timeout 3connect_port 80}}}### 重启keepalived服务[root@lvs1 ~]# systemctl start keepalived.service### 使用ip add命令查看所设置的VIP是否被设置[root@lvs1 ~]# ip add2: ens33:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP groupdefault qlen 1000link/ether 00:0c:29:6d:1c:b3 brd ff:ff:ff:ff:ff:ffinet 192.168.2.200/24 brd 192.168.2.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet 192.168.2.100/24 scope global secondary ens33valid_lft forever preferred_lft foreverinet6 fe80::474:99dd:c899:455f/64 scope link noprefixroutevalid_lft forever preferred_lft forever### LVS2 安装软件包,修改配置文件[root@lvs2 ~]# dnf install ipvsadm keepalived -y[root@lvs2 ~]# vim /etc/keepalived/keepalived.conf!ConfigurationFilefor keepalivedglobal_defs {router_id lvs_1}vrrp_instance apache {state BACKUPinterface ens33virtual_router_id 51priority 10advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.2.100/24}}virtual_server 192.168.2.10080{delay_loop 6lb_algo rrlb_kind DRnat_mask 255.255.255.0# persistence_timeout 50protocol TCPreal_server 192.168.2.21080{weight 1TCP_CHECK {connect_timeout 3connect_port 80}}real_server 192.168.2.22080{weight 1TCP_CHECK {connect_timeout 3connect_port 80}}}### 重启keepalived服务[root@lvs2 ~]# systemctl start keepalived.service
e、客户端测试
### 客户端验证分发[root@client ~]# elinks http://192.168.2.100 --dumprs1[root@client ~]# elinks http://192.168.2.100 --dumprs2### 停止lvs1的keepalived服务 验证分发器故障切换[root@lvs1 ~]# systemctl stop keepalived.service使用ip add命令查看VIP是否被释放[root@lvs1 ~]# ip add2: ens33:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP groupdefault qlen 1000link/ether 00:0c:29:6d:1c:b3 brd ff:ff:ff:ff:ff:ffinet 192.168.2.200/24 brd 192.168.2.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet6 fe80::474:99dd:c899:455f/64 scope link noprefixroutevalid_lft forever preferred_lft forever切换到lvs2查看VIP是否被设置[root@lvs2 ~]# ip add2: ens33:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP groupdefault qlen 1000link/ether 00:0c:29:5c:a0:66 brd ff:ff:ff:ff:ff:ffinet 192.168.2.150/24 brd 192.168.2.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet 192.168.2.100/24 scope global secondary ens33valid_lft forever preferred_lft foreverinet6 fe80::5726:cbb9:c37b:d898/64 scope link noprefixroutevalid_lft forever preferred_lft forever切换到客户端测试[root@client ~]# elinks http://192.168.2.100 --dumprs1[root@client ~]# elinks http://192.168.2.100 --dumprs2### 停止RS1数据服务器查看数据服务器容错[root@rs1 ~]# systemctl stop httpd切换到客户端测试:用户只能访问到RS1的页面[root@client ~]# elinks http://192.168.2.100 --dumprs1[root@client ~]# elinks http://192.168.2.100 --dumprs1
提示:使用tcpdump命令可以看到vrrp的相关信息发送信息,深度理解VRRP协议
[root@lvs1 ~]# tcpdump -nn -vvv vrrp
本文详细介绍了如何使用LVS和Keepalived在Linux环境下构建Web应用的高可用集群,包括配置步骤、实验环境和VIP管理,以确保即使在故障情况下也能保证服务连续性。
2444

被折叠的 条评论
为什么被折叠?



