1環境への準備
1.1サーバーとIPの計画
LVSサーバー |
---|
VIP(仮想IP):192.168.51.103 |
DIP(フォワーダーIP /イントラネットIP):192.168.51.4 |
2つのNginxサーバー(RealServer) |
---|
RIP(リアルIP /イントラネットIP):192.168.51.5 |
RIP(実際のIP /イントラネットIP):192.168.51.6 |
1.2NetworkManagerサービスを停止します
サーバーは仮想マシンを使用しており、停止する必要があるため、3つのサーバーは次の2行のコマンドを別々に実行しますNetworkManager
。そうしないと問題が発生します。
[root@localhost network-scripts]# systemctl stop NetworkManager
[root@localhost network-scripts]# systemctl disable NetworkManager
2LVSノードとipvsadmを構成します
2.1サブインターフェイスを作成する
LVS服务器
[root@localhost network-scripts]# cd /etc/sysconfig/network-scripts
[root@localhost network-scripts]# ls
ifcfg-ens33 ifcfg-lo ifdown-eth ifdown-isdn ifdown-routes ifdown-TeamPort ifup-aliases ifup-ippp ifup-plip ifup-ppp ifup-Team ifup-wireless network-functions-ipv6
ifdown ifdown-ippp ifdown-post ifdown-sit ifdown-tunnel ifup-bnep ifup-ipv6 ifup-plusb ifup-routes ifup-TeamPort init.ipv6-global
ifcfg-ens33.bak ifdown-bnep ifdown-ipv6 ifdown-ppp ifdown-Team ifup ifup-eth ifup-isdn ifup-post ifup-sit ifup-tunnel network-functions
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens33:1
2.2構成ファイルを変更する
[root@localhost network-scripts]# vi ifcfg-ens33:1
BOOTPROTO=static
DEVICE=ens33:1
ONBOOT=yes
IPADDR=192.168.51.103
NETMASK=255.255.255.0
2.3構成の更新
[root@localhost network-scripts]# service network restart
2.4ipvsadmをインストールします
- AlibabaCloudは仮想IPをサポートしていないようです。公式ウェブサイトの負荷分散を購入してください
- TencentCloudは最大10個の仮想IPをサポートしているようです
ipvsadm -Ln
[root@localhost network-scripts]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
32つのRSの仮想IPを構成します
2台のRSマシンの構成は同じであり、次の操作を実行する必要があります两台机器上都进行操作
。
3.1構成のコピー
[root@localhost network-scripts]# cd /etc/sysconfig/network-scripts
[root@localhost network-scripts]# ls
ifcfg-ens33 ifdown-eth ifdown-isdn ifdown-routes ifdown-TeamPort ifup-aliases ifup-ippp ifup-plip ifup-ppp ifup-Team ifup-wireless network-functions-ipv6
ifcfg-ens33.bak ifdown ifdown-ippp ifdown-post ifdown-sit ifdown-tunnel ifup-bnep ifup-ipv6 ifup-plusb ifup-routes ifup-TeamPort init.ipv6-global
ifcfg-lo ifdown-bnep ifdown-ipv6 ifdown-ppp ifdown-Team ifup ifup-eth ifup-isdn ifup-post ifup-sit ifup-tunnel network-functions
[root@localhost network-scripts]# cp ifcfg-lo ifcfg-lo:1
3.2構成の変更
[root@localhost network-scripts]# vi ifcfg-lo:1
DEVICE=lo:1
IPADDR=192.168.51.103
NETMASK=255.255.255.255
NETWORK=127.0.0.0
# If you're having problems with gated making 127.0.0.0/8 a martian,
# you can change this to something else (255.255.255.255, for example)
BROADCAST=127.255.255.255
ONBOOT=yes
NAME=loopback
3.3構成の更新
方式一
[root@localhost network-scripts]# ifup lo
方式二
[root@localhost network-scripts]# service network restart
42つのRS用にarpを設定します
4.1arpの概要
ARP応答レベルと通知動作。
1.arp-ignore:ARP応答レベル(処理要求)
- 0:マシンがipで構成されている限り、要求に応答できます
- 1:要求されたターゲットアドレスは、要求に応答する前に、対応するネットワークインターフェイスに到達します
2. arp-announce:ARPアナウンス動作(応答を返す)
- 0:マシン上のすべてのネットワークインターフェイスが外部に通知され、すべてのネットワークカードが通知を受信できます
- 1:可能な限り、このネットワークカードとアナウンスと一致しないターゲットを避けてください
- 2:このウェブサイトの漫画レポートのみ
4.2構成ファイルを変更する
[root@localhost network-scripts]# vi /etc/sysctl.conf
# configration for lvs
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
4.3構成の更新
[root@localhost network-scripts]# sysctl -p
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
4.4ゲートウェイを追加する
[root@localhost network-scripts]# route add -host 192.168.51.103 dev lo:1
セットアップ开机添加
[root@localhost network-scripts]# echo "route add -host 192.168.51.103 dev lo:1" >> /etc/rc.local
5ipvsadmを使用してクラスタールールを構成します
5.1LVSノードの作成
ユーザーがデータにアクセスするためのクラスタースケジューラ
[root@localhost network-scripts]# ipvsadm -A -t 192.168.51.103:80 -s rr -p 5
- -A:クラスターを追加します
- -t:tcpプロトコル
- IPアドレス:クラスターのアクセスIPを設定します。これはLVSの仮想IPです。
- -s:負荷分散のアルゴリズムを設定します。rrはポーリングを意味します
- -p:接続の持続時間を設定します
5.22台のRS実サーバーを作成する
[root@localhost network-scripts]# ipvsadm -a -t 192.168.51.103:80 -r 192.168.51.5:80 -g
[root@localhost network-scripts]# ipvsadm -a -t 192.168.51.103:80 -r 192.168.51.6:80 -g
5.3ルールベースに保存
保存しないでください。再起動は無効になります
[root@localhost network-scripts]# ipvsadm -S
5.4クラスターを確認する
查看集群列表
[root@localhost network-scripts]# 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.51.103:80 rr persistent 5
-> 192.168.51.5:80 Route 1 0 0
-> 192.168.51.6:80 Route 1 0 0
查看集群状态
[root@localhost network-scripts]# ipvsadm -Ln --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes
-> RemoteAddress:Port
TCP 192.168.51.103:80 0 0 0 0 0
-> 192.168.51.5:80 0 0 0 0 0
-> 192.168.51.6:80 0 0 0 0 0
5.5その他のコマンド
# 重启ipvsadm,重启后需要重新配置
service ipvsadm restart
# 查看持久化连接
ipvsadm -Ln --persistent-conn
# 查看连接请求过期时间以及请求源ip和目标ip
ipvsadm -Lnc
# 设置tcp tcpfin udp 的过期时间(一般保持默认)
ipvsadm --set 1 1 1
# 查看过期时间
ipvsadm -Ln --timeout
详细的帮助文档
ipvsadm -h
man ipvsadm
6関連情報
- ブログ投稿は簡単ではありません、注意と賞賛に一生懸命働いたすべての人、ありがとう