集群&负载均衡

集群&负载均衡

集群(Cluster)

指一组计算机系统构成一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信,实现分布式计算。在客户端看来就像是只有一个服务器。集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行。

集群技术的分类

负载均衡集群
  负载均衡集群:分为前端负载调度和后端服务两个部分。负载调度部分负责把客户端的请求按照不同的策略分配给后端服务节点,而后端节点是真正提供应用程序服务的部分。与高可用集群不同的是,负载均衡集群中,所有的后端节点都处于活动动态,它们都对外提供服务,分摊系统的工作负载。
  lvs     #4层负载  
  haproxy    #  4/7层负载 
  nginx    #7层负载 
  f5     #硬件负载
高可用集群
高可用集群(High Availability,HA):高可用的含义是最大限度地可以使用。从集群的名字上可以看出,此类集群实现的功能是保障用户的应用程序持久、不间断地提供服务。
高性能集群
科学计算集群(High Performance Computing,HPC):高性能计算集群。这类集群致力于提供单个计算机所不能提供的强大计算能力,包括数值计算和数据处理,并且倾向于追求综合性能。HPC 与超级计算类似,但是又有不同,计算速度是超级计算追求的第一目标。最快的速度、最大的存储、最庞大的体积、最昂贵的价格代表了超级计算的特点。

负载集群dr部署

环境配置
centos8 负载均衡服务器192.168.1.81
ubuntu192.168.1.23
ubuntu192.168.1.22

ubuntu192.168.1.22服务器操作

安装apache2服务
apt install apache2
systemctl stop ufw  # 临时关闭防火墙 
systemctl disable ufw #永久关闭防火墙 
systemctl start apache2    #启动apache服务 

创建 TLS 证书

1、生成服务器私钥。
openssl genrsa -out server.key 1024
2、根据服务器私钥文件生成证书请求文件,这个文件中会包含申请人的一些信息,所以执行下面这行命令过程中需要用户在命令行输入一些用户信息,随便填写,一路回车即可。
openssl req -new -key server.key -out server.csr
root@ubuntu:/etc/apache2/sites-available# ls /root/
backup                               server.key
grafana-enterprise_10.1.4_amd64.deb  snap
server.csr                           zabbix-release_6.4-1+ubuntu22.04_all.deb

创建的两个文件都将放置在 /etc/ssl 下的相应子目录中。

cp -a /root/server.* /etc/ssl/

接下来我们将更新我们的 Apache 配置以使用新的证书和密钥

更新 Apache 配置以使用它们。 在 Ubuntu 上,将新的 Apache 配置文件(必须以 .conf 结尾)放入 /etc/apache2/sites-available/,在下次重新加载或重新启动 Apache 进程时加载。

在 /etc/apache2/sites-available 目录中打开一个新文件:

vim /etc/apache2/sites-available/192.168.1.22.conf
<VirtualHost *:443>
   ServerName 192.168.1.22
   DocumentRoot /var/www/whd
   SSLEngine on
   SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
   SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
</VirtualHost>

将 ServerName 行更新为您打算对服务器进行寻址的方式。 这可以是主机名、完整域名或 IP 地址。 确保选择的任何内容与您在制作证书时选择的 Common Name 匹配。

剩下的几行指定了一个 DocumentRoot 目录来提供文件,以及将 Apache 指向我们新创建的证书和密钥所需的 TLS 选项。

创建我们的 DocumentRoot 并在其中放入一个 HTML 文件,仅用于测试目的:

mkdir /var/www/whd
vim  /var/www/whd/index.html
<h1>it worked!</h1>

使用a2ensite工具启用配置文件:

a2ensite 192.168.1.22.conf

遇到报错:

root@ubuntu:~#  apache2ctl configtest
AH00526: Syntax error on line 4 of /etc/apache2/sites-enabled/192.168.1.22.conf:
Invalid command 'SSLEngine', perhaps misspelled or defined by a module not included in the server configuration
Action 'configtest' failed.
The Apache error log may have more information.

解决办法:

root@ubuntu:~# a2enmod ssl
Considering dependency setenvif for ssl:
Module setenvif already enabled
Considering dependency mime for ssl:
Module mime already enabled
Considering dependency socache_shmcb for ssl:
Enabling module socache_shmcb.
Enabling module ssl.
See /usr/share/doc/apache2/README.Debian.gz on how to configure SSL and create self-signed certificates.
To activate the new configuration, you need to run:
  systemctl restart apache2                         ##  提示需要重启apache2 
root@ubuntu:~# systemctl restart apache2
root@ubuntu:~# a2enmod ssl
Considering dependency setenvif for ssl:
Module setenvif already enabled
Considering dependency mime for ssl:
Module mime already enabled
Considering dependency socache_shmcb for ssl:
Module socache_shmcb already enabled
Module ssl already enabled
root@ubuntu:~# sudo apache2ctl configtest
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK 

Syntax OK 提示结果正确 :

第一行是一条消息,告诉你 ServerName 指令未全局设置。 如果你想摆脱该消息,您可以在 /etc/apache2/apache2.conf 中将 ServerName 设置为您服务器的域名或 IP 地址。 这是可选的,因为该消息不会造成任何伤害。
如果您的输出中有 Syntax OK,则说明配置文件没有语法错误。

重启服务

 systemctl reload apache2

将 HTTP 重定向到 HTTPS

目前,我们的配置只会响应端口 443 上的 HTTPS 请求。 即使您想强制对所有流量进行加密,最好也在端口 80 上做出响应。 让我们设置一个 VirtualHost 来响应这些未加密的请求并将它们重定向到 HTTPS。
打开刚建立的192.168.1.22.conf文件 ,建另一个 VirtualHost 块以匹配端口 80 上的请求。 使用 ServerName 指令再次匹配您的域名或 IP 地址。 然后,使用 Redirect 匹配任何请求并将它们发送到 TLS VirtualHost。

vim /etc/apache2/sites-available/192.168.1.22.conf 
<VirtualHost *:80>
    ServerName 192.168.1.22
    Redirect / https://192.168.1.22
</VirtualHost>

重新加载 Apache:

apachectl configtest
systemctl reload apache2

验证

在这里插入图片描述
在这里插入图片描述

将192.168.1.22生成,创建的文件cp到192.168.1.23上 ,并执行上面的操作

结果:

在这里插入图片描述

在192.168.1.8上面配置负载均衡
[root@centos81 ~]# ifconfig ens160:0 192.168.1.240/32 broadcast 192.168.1.254 up
[root@centos81 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq
    link/ether 00:0c:29:db:6b:78 brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    inet 192.168.1.81/24 brd 192.168.1.255 scope global nopref
       valid_lft forever preferred_lft forever
    inet 192.168.1.240/0 brd 192.168.1.254 scope global ens160
       valid_lft forever preferred_lft forever

两台ubuntu服务上

root@ubuntu:/#  vim /etc/sysctl.conf 
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
配置bo虚拟网卡上配置VIP(两台都做)
root@ubuntu:/# ifconfig lo:0 192.168.1.240/32 broadcast 192.168.1.254 up
root@ubuntu:/# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet 192.168.1.240/0 brd 192.168.1.254 scope global lo:0
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever

注意一定要先修改配置文件 在配置VIP 否者会不停的像局域网发出通告
配置路由 (3台机器都需要配置)

192.168.1.81(centos8)

[root@centos81 ~]# route add -host 192.168.1.240 dev ens160:0
[root@centos81 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.2     0.0.0.0         UG    100    0        0 ens160
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 ens160
192.168.1.240   0.0.0.0         255.255.255.255 UH    0      0        0 ens160
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

192.168.1.22-23(ubuntu)

route add -host 192.168.1.240 dev lo:0
root@ubuntu:/# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.2     0.0.0.0         UG    0      0        0 ens33
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 ens33
192.168.1.240   0.0.0.0         255.255.255.255 UH    0      0        0 lo

配置规则(负载均衡服务器上配置192.168.1.81)需要关闭服务器上的80端口

[root@centos81 ~]# yum -y install ipvsadm                 #安装ipvs命令工具
[root@centos81 ~]# ipvsadm -A -t 192.168.1.240:80 -s wrr
[root@centos81 ~]# ipvsadm -a -t 192.168.1.240:80 -r 192.168.1.22:80 -g
[root@centos81 ~]# ipvsadm -a -t 192.168.1.240:80 -r 192.168.1.23:80 -g
[root@centos81 ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.1.240:80 wrr
  -> 192.168.1.22:80              Route   1      0          0         
  -> 192.168.1.23:80              Route   1      0          0         

验证

[root@centos81 ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.1.240:80 wrr
  -> 192.168.1.22:80              Route   1      1          2         
  -> 192.168.1.23:80              Route   1      1          3         

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值