LVS負載均衡——DR模式+keepalived

內容要點:html

1、keepalived :web

2、配置步驟:vim


1、keepalived :bash

(1)keepalived是什麼服務器


keepalived是集羣管理中保證集羣高可用的一個服務軟件,其功能相似於heartbeat,用來防止單點故障。網絡


一、keepalived的三個核心模塊:負載均衡


  • core核心模塊ide

  • chech健康監測測試

  • vrrp虛擬路由冗餘協議網站

二、Keepalived服務的三個重要功能:


  • 管理LVS

  • 對LVS集羣節點檢查

  • 做爲系統網絡服務的高可用功能

(2)keepalived工做原理

一、keepalived是以VRRP協議爲實現基礎的,VRRP全稱Virtual Router Redundancy Protocol,即虛擬路由冗餘協議。


二、虛擬路由冗餘協議,能夠認爲是實現路由器高可用的協議,即將N臺提供相同功能的路由器組成一個路由器組,這個組裏面有一個master和多個backup,master上面有一個對外提供服務的vip(該路由器所在局域網內其餘機器的默認路由爲該vip),master會發組播,當backup收不到vrrp包時就認爲master宕掉了,這時就須要根據VRRP的優先級來選舉一個backup當master。這樣的話就能夠保證路由器的高可用了。


三、keepalived主要有三個模塊,分別是core、check和vrrp。core模塊爲keepalived的核心,負責主進程的啓動、維護以及全局配置文件的加載和解析。check負責健康檢查,包括常見的各類檢查方式。vrrp模塊是來實現VRRP協議的。


2、配置步驟:

實驗環境說明:


(1)準備四臺虛擬機,兩臺爲調度服務器,兩臺爲節點服務器;


(2)調度服務器部署 LVS 和 keepalived ,實現負載均衡和雙機熱備;


(3)客戶端主機可以經過虛擬ip地址,訪問到後臺的 Web服務器的網頁;


(4)實驗結果驗證:其中一臺 DR 宕機,訪問正常進行,全部服務照常運行。

角色 IP地址
調度服務器 DR1(主) 192.168.100.201
調度服務器 DR2 (備) 192.168.100.202
節點服務器 web1 192.168.100.221
節點服務器 web2 192.168.100.222
虛擬 IP 192.168.100.10
客戶端測試機 win7 192.168.100.50


第一步:配置兩臺 DR

(1)安裝 ipvsadm 和 keepalived 包

yum install ipvsadm keepalived -y


(2)修改 /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     這條命令是讓以上配置生效


(3)配置虛擬網卡(ens33:0):


一、注意路徑:/etc/sysconfig/network-scripts/


二、直接複製已有的網卡信息,加以修改便可:


cp ifcfg-ens33 ifcfg-ens33:0

vim ifcfg-ens33:0
 刪除原來全部信息,添加如下代碼:
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.100.10
NETMASK=255.255.255.0


三、啓用虛擬網卡:

ifup ens33:0


(4)編寫服務啓動腳本,路徑:/etc/init.d


一、vim dr.sh 腳本內容以下:


#!/bin/bash
GW=192.168.100.1
VIP=192.168.100.10
RIP1=192.168.100.221
RIP2=192.168.100.222
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 dr.sh
service dr.sh start


(5)第二臺 DR 配置和第一臺如出一轍,重複操做一下便可


第二步:配置第一臺節點服務器 web1

(1)安裝 httpd

yum install httpd -y


systemctl start httpd.service   //開啓服務


(2)在站點寫一個測試網頁,待會後面方便驗證試驗結果


路徑:/var/www/html
echo "this is accp web" > index.html


(3)建立虛擬網卡


一、路徑:/etc/sysconfig/network-scripts/


二、複製網卡信息加以修改
cp ifcfg-lo ifcfg-lo:0
三、vim ifcfg-lo:0
刪除原來全部信息,添加如下內容:
DEVICE=lo:0
IPADDR=192.168.100.10
NETMASK=255.255.255.0
ONBOOT=yes


(4)編寫服務啓動腳本,路徑:/etc/init.d


一、vim 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"
                ;;
        *)
                echo "Usage: $0 {start|stop}"
                exit 1
        esac
        exit 0


二、添加權限,並執行


chmod +x web.sh           //添加權限
service web.sh start      //啓動服務


20191130111614606.png

(5)開啓虛擬網卡

ifup lo:0


(6)測試網頁是否正常

image.png


第三步:配置第二臺節點服務器 web2

第二臺web和第一臺配置如出一轍,惟一不一樣的是,爲了區分實驗效果,第二臺的測試網頁內容換了:


路徑:/var/www/html
echo "this is benet web" > index.html


測試網頁是否正常:

image.png


第四步:客戶端測試

(1)配置好客戶端的IP地址

image.png

(2)測試


一、與 192.168.100.10 可否互通:

image.png

二、訪問網頁是否正常

image.png

image.png



第五步:部署 keepalived

1、在第一臺 DR 上部署:


(1)修改 keepalived.conf 文件,路徑 /etc/keepalived/


修改如下內容:

image.png

image.png

(2)啓動服務

systemctl start keepalived.service


2、在第二臺 DR 上部署:


(1)修改 keepalived.conf 文件

image.png

image.png


(2)啓動服務

systemctl start keepalived.service


第六步:實驗結果驗證

因爲部署了 LVS 和 keepalived,目的是,負載均衡和雙機熱備。

此時,咱們模擬一下故障,宕掉其中一臺 DR1,若是客戶端依舊能夠和虛擬 IP地址 互通,且可以正常訪問網站的話,就說明 DR2 就代替 DR1 工做了,防止單點故障的效果實現了。


(1)故障模擬:宕掉 DR1

ifdown ens33:0


(2)結果驗證


一、在客戶端 ping 一下虛擬ip

image.png

二、網站也依舊可以訪問

image.png

image.png

相關文章
相關標籤/搜索