LVS负载均衡-----DR+keepalived部署

什么叫keepalived

  • List item

keepalived是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障。
keepalived三个核心模块`

  • core核心模块
  • chech健康监测
  • vrrp虚拟路由冗余协议
    keepalived三个重要功能
  • 管理LVS
  • 对LVS集群节点检查
  • 作为系统网络服务的高可用功能
    keepalived工作原理
  • keepavlied采用VRRP热备份协议实现Linux服务器的多机热备功能
  • VRRP,虚拟路由冗余协议,是针对路由器的一种备份解决方案
    ①由多台路由器组成一个热备组,通过公用的虚拟IP地址对外提供服务
    ②每个热备份组内同一时刻只有一台主路由器提供服务,其他路由器处于冗余状态
    ③若当前在线的路由器失效,则其他路由器会根据设置的优先级自动接替虚拟IP地址,继续提供服务
    常规配置选项讲解
  • priority 100:优先级,数值越大优先级越高
  • advert_int1:通告间隔秒数(心跳频率)
  • auth_type PASS:认证类型
  • auth_pass 123456:密码字串
  • virtual_ipaddress{vip}:指定漂移地址(VIP),可以有多个
    keepalived备份服务器的配置与master的配置有三个不同选项
  • rooter_id:设为自有名称
  • state:设为BACKUP
  • priority:值低于主服务器
    实验步骤如下
    LVS_DR模式+keepalied
    调度器服务DR1(主) 192.168.100.110
    调度器服务DR2(备) 192.168.100.111
    节点服务器web1 192.168.100.201
    节点服务器web2 192.168.100.202
    虚拟IP 192.168.100.10
    配置DR两台调度服务器
    //安装两个软件包 keepalived(双击热备) ipvsadm(DR调度)
yum install keepalived ipvsadm -y
//设置路由数据包的转发
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
#proc响应关闭重定向功能
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.default.send_redirects=0
net.ipv4.conf.ens33.send_redirects=0

//让参数生效
sysctl -p
//建立虚拟网卡
cp -p /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33:0
//设置虚拟网卡
vim /etc/sysconfig/network-scripts//ifcfg-ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.100.10
NETMASK=255.255.255.0

//编写启动脚本

vim /etc/init.d/dr.sh
#!/bin/bash
GW=192.168.100.1
VIP=192.168.100.10
RIP1=192.168.100.201
RIP2=192.168.100.202
case "$1" in
start)
        /sbin/ipvsadm --save > /etc/sysconfig/ipvsadm
        systemctl start ipvsadm
        /sbin/ifconfig ens33:0 $VIP broadcast $VIP netmask 255.255.255.255 broadcast $VIP up
        /sbin/route add -host $VIP dev ens33:0
        /sbin/ipvsadm -A -t $VIP:80 -s rr
        /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g
        /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
        echo "ipvsadm starting------------------[ok]"
        ;;
        stop)
        /sbin/ipvsadm -C
        systemctl stop ipvsadm
        ifconfig ens33:0 down
        route del $VIP
        echo "ipvsamd stoped--------------------[ok]"
        ;;
   stop)
       /sbin/ipvsadm -C
        systemctl stop ipvsadm
        ifconfig ens33:0 down
        route del $VIP
        echo "ipvsamd stoped--------------------[ok]"
        ;;
        status)
        if [ ! -e ar/lock/subsys/ipvsadm ];then
        echo "ipvsadm stoped--------------------"
        exit 1
                   else
                echo "ipvsamd Runing-------------[ok]"
        fi
        ;;
        *)
        echo "Usage: $0 {start|stop|status}"
        exit 1
        esac
        exit 0
    

    

        //加入权限
chmod +x /etc/init.d/dr.sh

更改网卡为仅主机相连模式

//更改网卡为静态网卡
vim /etc/sysconfig/network-scripts/ifcfg-ens33
//DR1服务器
IPADDR=192.168.100.110            
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
//DR2服务器
IPADDR=192.168.100.111           
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
#把DHCP换成static
//重启服务
service network start

//启动虚拟网卡
ifup ens33:0
//启动dr.sh脚本
service dr.sh start
//关闭防火墙
systemctl stop firewalld.service
setenforce 0

建立两台节点服务器web(apache)

//安装apache服务
yum install httpd -y
//关闭防火墙
systemctl stop firewalld.service 
setenforce 0
//创建首页
#web1服务器
vim /var/www/html/index.html
<h1>this is kgc</h1>

web2服务器

vim /var/www/html/index.html
<h1>this is accp</h1>

设置回环地址

//创建虚拟网卡
cp -p /etc/sysconfig/network-scripts/ifcfg-lo /etc/sysconfig/network-scripts/ifcfg-lo:0
vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.100.10
NETMASK=255.255.255.0
ONBOOT=yes
//编辑启动脚本(web2将通过远程复制操作以下脚本)
vim /etc/init.d/web.sh
#!/bin/bash
VIP=192.168.100.10
        case "$1" in
        start)
             ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
                /sbin/route add -host $VIP dev lo:0
        echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
        echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
        echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
        echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
        sysctl -p > /dev/null 2>&1
        echo "RealServer Start OK "
        ;;
        stop)
                ifconfig lo:0 down
                route del $VIP /dev/null 2>&1
                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
    echo "RealServer Stoped"
        
//将脚本文件远程复制到web2服务器上(地址:192.168.183.150)
scp /etc/init.d/web.sh [email protected]:/etc/init.d/web.sh

//给权限
chmod +x /etc/init.d/web.sh

将虚拟据网卡修改问静态模式(仅主机相连模式)

/修改网卡
#web1服务器
vim /etc/sysconfig/network-scripts/ifcfg-ens33
IPADDR=192.168.100.201           
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
#web2服务器
vim /etc/sysconfig/network-scripts/ifcfg-ens33
IPADDR=192.168.100.202           
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
#把DHCP换成static
//重启服务
service network start
//启动脚本文件
service web.sh start
//启动apache服务
systemctl start httpd
//启动回环地址
ifup lo:0

搭建双机热备

//修改配置文件
cd /etc/keepalived/
vim /keepalived.conf
//修改文件
   smtp_server 127.0.0.1
   router_id LVS_01
 
   interface ens33
   virtual_router_id 10
   #将下面两行IP地址删除   192.168.100.16修改为虚拟主机地址192.168.100.10
29     virtual_ipaddress {
      192.168.200.16
      192.168.200.17
     192.168.200.18
//修改文件
34 virtual_server 192.168.100.10 80 {
      delay_loop 6
      lb_algo rr
      lb_kind DR
      persistence_timeout 50
      protocol TCP
       //将元IP地址改为web地址(192.168.100.201 端口改为80)在weight 1下面一行删除9行并加入TCP_CHECK {  、connect_port 80
real_server 192.168.100.201 80 {
          weight 1
          TCP_CHECK {
              connect_port 80
              connect_timeout 3
              nb_get_retry 3
              delay_before_retry 3
          }   
//复制上面修改的real_server在49行复制并将IP地址改为192.168.100.202
      real_server 192.168.100.202 80 {
          weight 1
          TCP_CHECK {
              connect_port 80
              connect_timeout 3
              nb_get_retry 3
              delay_before_retry 3
//在60行往后删除
//重启服务
systemctl start keepalived.service 
//将改好的文件通过远程复制给web2(192.168.100.111)
scp /etc/keepalived/keepalived.conf [email protected]:/etc/keepalived/
//修改web2中keepalived配置文件
 vim /etc/keepalived/keepalived.conf
router_id LVS_02
vrrp_instance VI_1 {
    state BACKUP
priority 90
//重启服务
systemctl start keepalived.service 

注意:如果ping不通要重启服务

发布了45 篇原创文章 · 获赞 10 · 访问量 1595

猜你喜欢

转载自blog.csdn.net/weixin_45725244/article/details/103992152