集群 | Linux+LBC+HA集群

LBC+DR+HA(LVS DR模式-负载均衡+高可用)服务器集群!

🔧准备.

  • 🔧 6台计算机,或6台虚拟机.
  • 🔧 操作系统Debian10.
  • 🔧 安装类型,全部最小安装.

博客中的实验环境.

名称虚拟化平台虚拟机系统
DS(主调度器)KVMDebian10
DS1(备用调度器)KVMDebian10
RS0(WEB服务器)KVMDebian10
RS1(WEB服务器)KVMDebian10
CS0(客户机)KVMArch Linux
CS0(客户机)KVMDebian10

博客中虚拟机IP及主机名配置.

IP节点
192.168.222.66DS(主调度器)
192.168.222.111RS1(备用调度器)
192.168.222.52RS0(WEB服务器)
192.168.222.215RS1(WEB服务器)
192.168.222.222VIP(虚拟IP)
192.168.222.211CS0(客户机)
192.168.222.110CS1(客户机)

修改镜像源.

#--最小安装的Debian10默认不能使用https源,需要安装 apt-transport-https ca-certificates
cat << "EOF" >/etc/apt/sources.list
deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free
deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free
deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free
deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free
deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free
deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free
deb http://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free
deb-src http://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free
EOF

apt update && \
apt -y install \
apt-transport-https \
ca-certificates     #建立本地软件包缓存列表,以及支持https源.

sed 's/http/https/g' /etc/apt/sources.list  #修改软件源为https.

apt-get update && \
apt-get -y install \
bash-completion \
vim \
wget \
build-essential  #建立软件包缓存列表,安装基本工具,编译环境;

配置DS(主调度器)虚拟机.

  • 1,操作系统,Debian10,(安装类型最小安装)

Debian10最小安装

  • 2,安装keepalived和ipvsadm(使用包管理器)
apt-get update && \
apt-get install keepalived ipvsadm
  • 3,编译安装keepalived

    下载并解压Keepalived源代码.

wget https://www.keepalived.org/software/keepalived-2.2.7.tar.gz    #下载Keepalived源代码.

#--解压Keepalived压缩包.
for i in *gz; do
    tar -xvf ${i}
done

配置Keepalived源代码.

./configure \
--prefix=/usr/local/keepalived/ \
--disable-fwmark \
--sbindir=/usr/local/sbin/ \
--bindir=/usr/local/bin/ \
--with-systemdsystemunitdir=/etc/systemd/system/

#--disable-fwmark 加此项关闭生成防火墙策略

./configure报错

安装Keepalived依赖包.

apt-get update && \
apt-get -y install \
libsnmp-dev \
libnl-route-3-dev \
libnfnetlink-dev \
libipset-dev \
iptables-dev \
libsnmp-dev \
libnl-genl-3-dev

再次配置源码

编译并安装Keepalived.

make V=99 -j $(nproc) && \
make install >install.log

编译并安装

修改Keepalivedsystemd服务.

  • 默认安装好的Keepalivedsystemd服务无法正常使用,需要修改哈~
[Unit]
Description=LVS and VRRP High Availability Monitor
After=network-online.target syslog.target
Wants=network-online.target
Documentation=man:keepalived(8)
Documentation=man:keepalived.conf(5)
Documentation=man:genhash(1)
Documentation=https://keepalived.org

[Service]
Type=simple
PIDFile=/run/keepalived.pid
KillMode=process
EnvironmentFile=-/usr/local/keepalived/etc/sysconfig/keepalived
ExecStart=/usr/local/sbin/keepalived -f /usr/local/keepalived/etc/keepalived/keepalived.conf $KEEPALIVED_OPTIONS
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target
  • 4,配置DS(主调度器)网络.
cat << "EOF" >/etc/network/interfaces.d/enp1s0
# The enp1s0 network config;
auto enp1s0
allow-hotplug enp1s0
    iface enp1s0 inet static
    address 192.168.222.66
    netmask 255.255.255.0
    gateway 192.168.222.1
EOF

systemctl daemon-reload && \
systemctl restart networking.service
  • 5,配置DS(主调度器)HA高可用主节点.
cat << "EOF" >/etc/keepalived/keepalived.conf
! Configuration File for keepalived

#--Keepalived MASTER Config
global_defs {
   notification_email {
     root@localhost                         #默认三个地址,修改可用地址
   }
   notification_email_from root@localhost
   smtp_server localhost
   smtp_connect_timeout 30
   router_id DS                             #标识当前节点名字,两个节点的此项需要不相同。
}

#默认的配置文件中,使用第三方 smtp 服务器,但这在现实中几乎没有意义,发不出邮件,我们将其挃定为 localhost,我们也可以将通知信息的发送交给本地 sendmail 服务处理。
vrrp_instance apache {          #定义一个实例,一个集群就是一个实例,默认VI_1 可以随意改.
    state MASTER                #指定A节点为主节点 备用节点上设置为 BACKUP 即可.
    interface enp1s0            #绑定虚拟IP 的网络接口.
    virtual_router_id 51        #VRRP 组名,两个节点的设置必须一样,以指明各个节点属于同一VRRP 组.
    priority 100                #主节点的优先级(1-254 之间),备用节点必须比主节点优先级低.
    advert_int 1                #组播信息发送间隔,两个节点设置必须一样.
    authentication {            #设置验证信息,两个节点必须一致.
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.222.222        #指定虚拟IP,两个节点设置必须一样.
    }
}

#类似添加虚拟一个服务 ipvsadm -A -t 192.168.1.70:80 -s rr
virtual_server 192.168.222.222 80 {     #对虚拟IP63添加LVS相关内容.
    delay_loop 6                        #Keepalived 多长时间监测一次 RS.
    lb_algo rr                          #分发算法.
    lb_kind DR                          #DR 模式.
    nat_mask 255.255.255.0
    persistence_timeout 50              #同一IP50秒内的请求都发到同个real server,这个会影响LVS的RR调度算法,同一IP超过50秒后,再次访问,才会被转发到另一台real server 上,persistence 持久性的意思.
    protocol TCP
    real_server 192.168.222.215 80 {    #配置服务节点 1,需要指定 realserver 的真实 IP 地址和端口,IP不端口之间用空格隔开.
        weight 1                        #配置服务节点的权值,权值大小用数字表示,数字越大,权值越高,设置权值大小可以为不同性能的服务器.
        TCP_CHECK {                     #这段内容手动添加,爸以前的内容删除.
                connect_timeout 3       #表示 3 秒无响应超时.
                nb_get_retry 3          #表示重试次数.
                delay_before_retry 3    #表示重试间隔.
                connect_port 80         #检测端口.
                }
    }
    real_server 192.168.222.52 80 {
        weight 1
        TCP_CHECK {
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
                connect_port 80
                }
    }
}
EOF

启动DS上的keepalived高可用.

ipvsadm -C &&\
systemctl daemon-reload &&\
systemctl enable --now keepalived.service

运行中的keepalived

DS主调度器,VIP

配置DS1(备用调度器)虚拟机.

  • 1,配置DS1(备用调度器)备用节点网络.
cat << "EOF" > /etc/network/interfaces.d/enp1s0
# The enp1s0 network config;
auto enp1s0
allow-hotplug enp1s0
   iface enp1s0 inet static
   address 192.168.222.111
   netmask 255.255.255.0
   gateway 192.168.222.1
EOF
  • 2,配置DS1(备用调度器)HA高可用备用节点.
cat << "EOF" >/etc/keepalived/keepalived.conf
! Configuration File for keepalived

#--Keepalived Backup Config
global_defs {
   notification_email {
     root@localhost                         #默认三个地址,修改可用地址
   }
   notification_email_from root@localhost
   smtp_server localhost
   smtp_connect_timeout 30
   router_id DS1                             #标识当前节点名字,两个节点的此项需要不相同.
}

#默认的配置文件中,使用第三方 smtp 服务器,但这在现实中几乎没有意义,发不出邮件,我们将其挃定为 localhost,我们也可以将通知信息的发送交给本地 sendmail 服务处理。
vrrp_instance apache {          #定义一个实例,一个集群就是一个实例,默认VI_1 可以随意改.
    state BACKUP                #指定A节点为主节点 备用节点上设置为 BACKUP 即可.
    interface enp1s0            #绑定虚拟IP 的网络接口.
    virtual_router_id 51        #VRRP 组名,两个节点的设置必须一样,以指明各个节点属于同一VRRP 组.
    priority 90                 #主节点的优先级(1-254 之间),备用节点必须比主节点优先级低.
    advert_int 1                #组播信息发送间隔,两个节点设置必须一样.
    authentication {            #设置验证信息,两个节点必须一致.
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.222.222        #指定虚拟IP,两个节点设置必须一样.
    }
}

#类似添加虚拟一个服务 ipvsadm -A -t 192.168.1.70:80 -s rr
virtual_server 192.168.222.222 80 {     #对虚拟IP63添加LVS相关内容.
    delay_loop 6                        #Keepalived 多长时间监测一次 RS.
    lb_algo rr                          #分发算法.
    lb_kind DR                          #DR 模式.
    nat_mask 255.255.255.0
    persistence_timeout 50              #同一IP50秒内的请求都发到同个real server,这个会影响LVS的RR调度算法,同一IP超过50秒后,再次访问,才会被转发到另一台real server 上,persistence 持久性的意思.
    protocol TCP
    real_server 192.168.222.215 80 {    #配置服务节点 1,需要指定 realserver 的真实 IP 地址和端口,IP不端口之间用空格隔开.
        weight 1                        #配置服务节点的权值,权值大小用数字表示,数字越大,权值越高,设置权值大小可以为不同性能的服务器.
        TCP_CHECK {                     #这段内容手动添加,爸以前的内容删除.
                connect_timeout 3       #表示 3 秒无响应超时.
                nb_get_retry 3          #表示重试次数.
                delay_before_retry 3    #表示重试间隔.
                connect_port 80         #检测端口.
                }
    }
    real_server 192.168.222.52 80 {
        weight 1
        TCP_CHECK {
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
                connect_port 80
                }
    }
}
EOF

启动DS1上的keepalived高可用.

ipvsadm -C &&\
systemctl daemon-reload &&\
systemctl enable --now keepalived.service

运行中的keepalived

DS1备用调度器,及其权重

配置RS0(WEB服务器)虚拟机.

  • 1,配置RS0服务器,DIP.
cat << "EOF" >>/etc/network/interfaces.d/enp1s0
# The enp1s0 network config;
auto enp1s0
allow-hotplug enp1s0
    iface enp1s0 inet static
    address 192.168.222.52
    netmask 255.255.255.0
    gateway 192.168.222.1
EOF
  • 2,配置RS0服务器,VIP.
cat << "EOF" >>/etc/network/interfaces.d/lo:0
# The lo:0:0 network config;
auto lo:0
    iface lo:0 inet static
    address 192.168.222.222
    netmask 255.255.255.255
EOF

systemctl daemon-reload && \
systemctl restart networking.service
  • 3,配置RS0服务器,内核参数.
cat << "EOF" >>/etc/sysctl.conf
#----LVS DR
net.ipv4.conf.enp1s0.arp_ignore = 1
net.ipv4.conf.enp1s0.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
EOF

sysctl -p

配置RS1(WEB服务器)虚拟机.

  • 1,配置RS1服务器,DIP.
cat << "EOF" >/etc/network/interfaces.d/enp1s0
# The enp1s0 network config;
auto enp1s0
allow-hotplug enp1s0
    iface enp1s0 inet static
    address 192.168.222.215
    netmask 255.255.255.0
    gateway 192.168.222.1
EOF
  • 2,配置RS1服务器,VIP.
cat << "EOF" >/etc/network/interfaces.d/lo:0
# The lo:0:0 network config;
auto lo:1
    iface lo:1 inet static
    address 192.168.222.222
    netmask 255.255.255.255
EOF

systemctl daemon-reload && \
systemctl restart networking.service
  • 3,配置RS1服务器,内核参数.
cat << "EOF" >>/etc/sysctl.conf
#----LVS DR
net.ipv4.conf.enp1s0.arp_ignore = 1
net.ipv4.conf.enp1s0.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
EOF

sysctl -p

配置CS0(客户机)虚拟机.

  • 无需任何配置,只需安装任意操作系统.*

配置CS1(客户机)虚拟机.

  • 无需任何配置,只需安装任意操作系统.*

测试LVS DR模式 HA高可用集群.

  • 使用两台客户端主机请求VIP.

MasterBACKUP同时工作由Master调度.

客户端分别请求VIP

关闭Master主机BACKUP将替代Master继续调度.

客户端分别请求VIP


   转载规则


《集群 | Linux+LBC+HA集群》Bad-BoY 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
XXX职业技术学院 | 摄像头破解 XXX职业技术学院 | 摄像头破解
XXX职业技术学院,摄像头破解!人天生本就有一种犯罪欲💖 要相信,这世上,唯有学习不会辜负自己.!!前言!!🚫 一切仅仅因为无聊罢了.🚫 不提供任何方法.🚫 不提供任何教程.!!Enjoy,当代大学生日常!!
2021-11-20
下一篇 
集群 | Linux+LBC DR集群 集群 | Linux+LBC DR集群
LVSDR模式负载均衡集群!DR模式LVS负载均衡搭建.🔧准备.🔧 3台计算机,或3台虚拟机.🔧 操作系统Debian10.🔧 安装类型,全部最小安装.博客中的实验环境.物理系统Arch Linux虚拟化平台KVM虚拟机操作系统De
2021-10-10
  目录