LVS负载均衡集群

一、实验环境:

需要6台服务器:

192.168.7.10 还原新系统,开机;node1

192.168.7.11还原新系统,开机;node2

192.168.7.12 还原新系统,添加新网卡VMnet1,开机; web1

192.168.7.13 还原新系统,添加新网卡VMnet1,开机; web2

192.168.7.14还原新系统,添加新网卡VMnet1,开机; web3

192.168.7.15还原新系统,添加一块SCSI的100G硬盘,开机;nfs

二、修改server 10、11主机名为node1、node2,server12、server13主机名为web1、web2、web3,server15为nfs:

三、六台同时关闭sestatus和防火墙:

四、六台需同步阿里云时间:

五、node1、node2安装keepalived(目的实现高可用和负载均衡)

[root@node1 ~]# dnf -y install keepalived		安装keepalived(作用:实现高可用和负载均衡)
[root@node2 ~]# dnf -y install keepalived		安装keepalived(作用:实现高可用和负载均衡)

六、备份keepalived配置文件及设置192.168.7.254的服务器为主,优先级为100

cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak(备份keepalived的配置文件)

[root@node1 ~]# vim /etc/keepalived/keepalived.conf		编辑keepalived的配置文件
! Configuration File for keepalived

global_defs {
   notification_email {
     2823629811@qq.com		写入通知邮箱
   }
   router_id LVS_DEVEL		路由的ID名称
}

vrrp_instance VI_1 {
    state MASTER			状态是主
    interface ens160		网卡接口ens160
    virtual_router_id 51
    priority 100			优先级100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.7.254		虚拟IP 192.168.7.25490简称VIP
    }
}
virtual_server 192.168.7.254 80 { 虚拟服务器的名称192.168.7.254;端口80
    delay_loop 6
    lb_algo rr						算法采用轮询 rr
    lb_kind DR						调度器的类型为直接路由 简称DR
    persistence_timeout 50
    protocol TCP
									web1服务器
    real_server 192.168.7.12 80 {	定义后台真实的web服务器的IP:192.168.7.12;端口80
        weight 1					权重1
        TCP_CHECK {					TCP协议的检查
            connect_timeout 3		连接操作时间3秒
            retry 3					重试3秒
            delay_before_retry 3	延期重试3秒
            connect_port 80			连接端口80
        }
    }								web2服务器
    real_server 192.168.7.13 80 {			定义后台真实的web服务器的IP:192.168.7.13;端口80

        weight 1						权重1
        TCP_CHECK{
            connect_timeout 3
            retry 3
            delay_before_retry 3
            connect_port 80
        }
    }
    real_server 192.168.7.14 80 {	web3服务器
        weight 1
        TCP_CHECK{
            connect_timeout 3
            retry 3
            delay_before_retry 3
            connect_port 80
        }
    }
}

七、将node1的配置文件远程复制到node2上:

[root@node1 ~]# scp /etc/keepalived/keepalived.conf 192.168.7.11:/etc/keepalived/keepalived.conf							将keepalived的配置文件远程复制到192.168.7.11的配置文件目录下(scp远程复制)

八、node1上重启keepalived,查看ens160网卡信息

[root@node1 ~]#systemctl restart keepalived
[root@node1 ~]#systemctl enable --now keepalived
[root@node1 ~]#ip addr

九、node2上安装keepalived,设置192.168.7.254的服务器为主,优先级为100

[root@node 2]# dnf -y install keepalived
[root@node2 ~]# vim /etc/keepalived/keepalived.conf 		编辑keep alive的配置文件
11     state BACKUP											状态是备份
14     priority 90											优先级是90(必须低于主的优先级)

十、node2重启keepalived

[root@node2 ~]# systemctl restart keepalived
[root@node2 ~]# systemctl enable keepalived
[root@node2 ~]# ip addr

十一、在真实机上ping 192.168.7.254

十二、node1关机,测试ping192.168.7.254通不通

十二 (2)、Node2(192.168.7.11)和最后一台nfs(192.168.7.15)关机

十三、web1、web2、web3进入网卡配置文件目录

cd /etc/NetworkManager/system-connections/(进入网卡配置文件目录)
[root@web1 system-connections] ls
[root@web1 system-connections] ip addr

十四、当前系统中的 ens160.nmconnection 文件复制一份,并将复制后的文件命名为 ens192.nmconnection

十五、web1、web2、web3下编辑ens192的网卡:

[connection]
id=ens192(修改ID为192)
uuid=820bcdf1-f4c3-3a49-a2fa-a0489c823071(网卡改最后一位)
type=ethernet
autoconnect-priority=-999
interface-name=ens192(切口名称为ens192)
 
[ethernet]
 
[ipv4]
address1=192.168.10.12/24(网址,去掉网关)
#dns=114.114.114.114;(注释掉)
method=manual(方式为手动)

十六、重启web1、web2、web3

[root@web1~]reboot
[root@web1~] ip addr

十七、创建lvs脚本

vim /usr/local/sbin/lvs_dir_rs.sh(创建lvs脚本)
#!/bin/bash #(shell声明)
vip=192.168.7.254 #(声明vip的变量是192.168.7.254)
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up #(作用:控制内核相应ARP请求;1仅当arp(地址解析)请求目标IP精确匹配本地接口的IP时,才相应arp)
route add -host $vip lo:0 #(向回环地址1中添加主机的路由192.168.7.254)
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore  #(请求目标IP精确匹配本地IP接口ID时才相应ARP)
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce   #(控制内核如何发送arp通告;2 有限选择与目标网络配皮的本地地址,作为源IP发送arp. 针对本地回环地址)
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore   #(请求目标IP精确匹配本地IP接口ID时才相应ARP))
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce   #(控制内核如何发送arp通告;2 有限选择与目标网络配皮的本地地址,作为源IP发送arp. 针对所有物理地址)
sysctl -p &>/dev/null   #(配置生效)
前俩只针对回环地址
后俩针对所有物理接口
第一步:lvs流量路径,客户机发出请求
第二步:lvs的vip相应arp请求
第三步:真实服务器的目标IP为vip,原IP为客户端

十八、web1、web2、web3给lvs脚本添加执行权限、运行lvs脚本

[root@web1~]chmod +x /usr/local/sbin/lvs_dir_rs.sh(给lvs脚本添加执行权限)
[root@web1~]sh /usr/local/sbin/lvs_dir_rs.sh(运行lvs脚本)

十九、web1、web2、web3查看IP地址:

二十、web1、web2、web3将开机启动配置文件添加执行权限

[root@web1~]chmod +x /etc/rc.d/rc.local(将开机启动配置文件添加执行权限
[root@web1~]ll /etc/rc.d/rc.local(查看开机启动配置文件权限)
[root@web1~]echo "/usr/local/sbin/lvs_dir_rs.sh" >> /etc/rc.d/rc.local(将运行脚本的命令加到开机启动配置 )

二十一、web1、web2、web3安装阿帕奇,启动阿帕奇并设置阿帕奇开机启动

dnf -y install httpd(安装阿帕奇)
systemctl enable --now httpd(启动阿帕奇并设置开机启动)

二十二、创建测试页面

echo "11111" > /var/www/html/index.html(创建一个测试页面)
echo "22222" > /var/www/html/index.html(创建一个测试页面)
echo "33333" > /var/www/html/index.html(创建一个测试页面)

二十三、三台web上轮询 虚拟IP:192.168.7.254:

二十四、验证,关闭node1节点测试:

方法一:本机验证

方法二:7.15虚拟机验证

方法三:win11虚拟机验证

二十五、nfs机器上对sdb磁盘进行分区:

gdisk /dev/sdb(对sdb磁盘进行分区)
Command (? for help): n(新建分区)
Partition number (1-128, default 1): 1(创建第一个主导分区)
Command (? for help): w(保存并退出)
Do you want to proceed? (Y/N): y(写入进程吗?是的)

二十六、格式化sdb1磁盘、创建nfs目录

mkfs.xfs /dev/sdb1(格式化sdb硬盘)
mkdir /nfs(创建ns目录)

二十七、编辑开机挂载配置文件

vim /etc/fstab (编辑开机挂载配置文件)
/dev/sdb1 /nfs xfs defaults 0 0
(将sdb1磁盘挂载到nfs ,使用xfs系统,默认参数,不备份,不检查磁盘)
systemctl daemon-reload(重新加载进程)
mount -a(重新加载挂载项)
df -hT(查看磁盘容量)

二十八、安装nfs、启动nfs并设置开机启动

dnf -y install nfs-utils(安装nfs)
systemctl enable --now nfs-server(启动nfs并设置开机启动)

二十九、进入到ens160网卡下:

cd /etc/NetworkManager/system-connections/ens160.nmconnetcion

192.168.7.15改成192.168.10.15

三十、进入到nfs服务器下,创建data1目录,编辑nfs配置文件:

mkdir /nfs/data1(创建data1目录)
vim /etc/exports(编辑nfs配置文件)
/nfs/data1 192.168.10.0/24(rw,no_root_squash)(将data目录共享给192.168.10.0网段)

三十一、将nfs发布出去、查看挂载项

exportfs -avr(将nfs发布出去)
-a(表示对所有共享目录执行操作(挂载或卸载))
-r(重新导出所有目录)
-v(显示详细操作过程)
showmount -e(查看挂载项)

三十二、web1、web2、web3安装nfs

[root@web1\web2\web3]dnf -y install nfs-utils(安装nfs)

[root@web1\web2\web3]showmount -e 192.168.10.15(查看挂载项)

三十三、nfs进入data1目录下创建一个测试页面

[root@nfs] cd /nfs/data1/(进入data1目录)

[root@nfs data1] echo “<h1>NFS Server 192.168.10.15</h1>” > index.html(创建一个测试页面)

三十四、web1\web2\web3(编辑fstab)

vim /etc/fstab(编辑fstab)
192.168.10.15:/nfs/data1 /var/www/html nfs defaults 0 0
(将192.168.10.15nfs目录挂载到阿帕奇网站目录下 文件系统是nfs ,默认参数,不备份,不检查磁盘)
systemctl daemon-reload(重新加载进程)
mount -a(重新加载挂载项)
df -hT(查看磁盘)

三十五、测试

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇