keepalived+lvs-dr實現高可用負載均衡

keepalived+lvs-dr實現高可用負載均衡

實驗拓撲

keepalived+lvs-dr實現高可用負載均衡

實驗要求

  1. RS1與RS2地址為172.18.27.201/202
  2. VS1和VS2地址為172.18.27.103/200,VIP為172.18.27.254
  3. VS1和VS2實現lvs-dr負載均衡及高可用性,且vs為sorry sever。
  4. keepalived是單主模式。

    實驗步驟

  5. 各個主機安裝必備軟件

    ##RS1與RS2安裝httpd
    yum install -y httpd
    ##VS1與VS2安裝keeplived和httpd
    yum instll keepalived httpd -y 
    ##所有主機同步時間
    ntpdate 2.cn.pool.ntp.org
  6. 配置RS1與RS2

    RS1配置,RS1的系統為centos7.2.
    ##配置測試頁
    vim /var/www/html/index.html
    <h1/>R1:172.18.27.201</h1>
    ##啟動httpd服務
    systemctl restart httpd.service
    ##配置VIP,并關閉內核中的arp_ignore,建議寫腳本
    [root@localhost bin]#vi setparam.sh           
    #!/bin/bash
    vip="172.18.27.254"
    start (){
         ifconfig lo:0 $vip netmask 255.255.255.255 broadcast $vip up
         echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
         echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
         echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
         echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
         route add -host $vip dev lo:0
    }
    stop (){
         echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
         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/lo/arp_ignore
         ifconfig lo:0 down
    }
    case $1 in
    start)
         start
         echo "arp_announce set ok"
         echo "arp_ignore set ok"
         echo "lo:0 up"
         ;;
    stop)
         stop
         echo "arp_announce set ok"
         echo "arp_ignore set ok"
         echo "lo:0 down"
         ;;
    *)
         echo "$0 stop|start"
         ;;
    esac
    RS2配置,RS1的系統為centos7.2。
    ##配置測試頁
    vim /var/www/html/index.html
    <h1/>R2:172.18.27.202</h1>
    ##啟動httpd服務
    systemctl restart httpd.service
    ##用RS1的腳本配置RS2
  7. 配置VS1和VS2

    ##VS1配置,VS1系統是centos6.8。
    #配置sorry_server
    yum install -y httpd
    vim /var/www/html/index.html
    <h1/>sorry server 1:172.18.27.102</h1>
    啟動服務
    srvice httpd start
    #配置keepalived
    vim /etc/keepalived/keepalived.conf
    ! Configuration File for keepalived 
    global_defs { 
         notification_email {                            ##報警郵箱設置
                 root@localhost                            ##報警郵箱
         }
         notification_email_from keepalived@localhost    ##報警有哪個用戶發送
         smtp_server 127.0.0.1                            ##報警郵箱服務器
         smtp_connect_timeout 30                            ##報警超時時間
         vrrp_mcast_group4 224.100.27.1                    ##通過組播地址,通告狀態和優先級等信息
    }
    vrrp_instance VI_1 {                                    ##設置vrrp
     state MASTER                                        ##設置主從
     interface eth1                                        ##vrrp實例工作的網絡接口
     virtual_router_id 51                                ##設置vrrp的id標識符,0-255
     priority 100                                        ##設定優先級
     advert_int 1                                        ##對外的通知時間間隔
     authentication {                                    ##設定認證方式
         auth_type PASS
         auth_pass 1111
     }
     track_interface {                                    ##設定監聽網絡接口
         eth1
     }   
     nopreempt                                            ##設定是否為搶占和非搶占模式
     virtual_ipaddress {                                    ##定義VIP
         172.18.27.254/16 dev eth1 label eth1:0            ##設定VIP在那個網絡接口上
     }  
    }   
    virtual_server 172.18.27.254 80 {                        
         delay_loop 6                                    ##定義服務輪詢間隔,多久檢查RS的健康狀態
         lb_algo wrr                                        ##設定VS的調用方法
         lb_kind DR                                        ##設定lvs的調用類型
         protocol TCP                                    ##設定工作的協議
         sorry_server 127.0.0.1 80                        ##設定sorry_server
         real_server 172.18.27.201 80 {                    ##設定RS
                 weight 1                                ##設定權重
                 HTTP_GET {                                ##設定RS健康狀態查詢方法
                         url {                            根據urlde狀態碼來確定RS的狀態
                                 path /
                                 status_code 200
                         }
                 connect_timeout 1                        ##設定檢查的超時時長
                 nb_get_retry 3                            ##設定檢查的重試次數
                 delay_before_retry 1                    ##設定檢查延遲時間
    
                 }
         }
         real_server 172.18.27.202 80 {
                 weight 2
                 HTTP_GET {
                         url {
                                 path /  
                                 status_code 200
                         }
                 connect_timeout 1
                 nb_get_retry 3
                 delay_before_retry 1    
    
                 }
         }
    } 
    #啟動服務
    service keepalived start
    ##配置VS2,VS2的系統是centOS7.2.
    #配置sorry_server
    yum install -y httpd
    vim /var/www/html/index.html
    <h1/>sorry server 2:172.18.27.200</h1>
    啟動服務
    systemctl start httpd
    #配置keepalived
    ! Configuration File for keepalived
    global_defs { 
         notification_email {
                 root@localhost
         }
         notification_email_from keepalived@localhost
         smtp_server 127.0.0.1
         smtp_connect_timeout 30
         vrrp_mcast_group4 224.100.27.1
    }
    vrrp_instance VI_1 {
     state BACKUP
     interface eno16777736
     virtual_router_id 51
     priority 100
     advert_int 1
     authentication {
         auth_type PASS
         auth_pass 1111
     }
     track_interface {
         eno16777736
     }   
     nopreempt
     virtual_ipaddress {
         172.18.27.254/16 dev eno16777736 label eno16777736:0
     }
    }   
    virtual_server 172.18.27.254 80 {
         delay_loop 6
         lb_algo wrr
         lb_kind DR
         net_mask 255.255.0.0
         protocol TCP
         sorry_server 127.0.0.1 80
         real_server 172.18.27.201 80 {
                 weight 1
                 HTTP_GET {
                         url {
                                 path /
                                 status_code 200
                         }
                 connect_timeout 1
                 nb_get_retry 3
                 delay_before_retry 1
                 }
         }
         real_server 172.18.27.202 80 {
                 weight 2
                 HTTP_GET {
                         url {
                                 path /  
                                 status_code 200
                         }
                 connect_timeout 1
                 nb_get_retry 3
                 delay_before_retry 1                 
                 }
         }
    } 
    #啟動服務
    systemctl start keeplived

    測試實驗效果

    在client測試實驗效果
    for i in {1..10};do curl 172.18.27.254 ;done
    正常狀態的測試效果

    keepalived+lvs-dr實現高可用負載均衡

    一臺RS掛掉之后

    keepalived+lvs-dr實現高可用負載均衡

    兩臺RS都掛掉

    keepalived+lvs-dr實現高可用負載均衡

原創文章,作者:oranix,如若轉載,請注明出處:http://www.www58058.com/75627

(0)
oranixoranix
上一篇 2017-05-14 22:27
下一篇 2017-05-15 08:44

相關推薦

  • 學習宣言

     博觀而約取,厚積而薄發。

    Linux干貨 2016-10-24
  • 細節決定成敗–空格的巨大作用以及正則表達式中元字符的轉義

    字符串的條件判定 1.字符串判定 一定要用雙[[ ]] 2.字符串判定=~默認支持擴展正則表達式,這里注意雙引號的使用 僅僅做是否包含時,有無雙引號無區別。 但是利用其他擴展表達式時 雙引號一定要去掉 錨定示例 多條件判定時-o -a使用時,不能使用雙中括號 空格有無的差別 !的使用細節 !到目前為止 有兩種意義 條件判定取反 歷史命令的調用 兩者的使用卻別…

    2017-03-19
  • mv命令總結

    mv命令是move的縮寫,可以用來移動文件或者將文件改名,是Linux系統下常用的命令,經常用來備份文件或者目錄。 命令格式:mv  源文件或目錄 目標文件或目錄 2.命令功能:視mv命令中第二個參數類型的不同(是目標文件還是目標目錄),mv命令將文件重命名或將其移至一個新的目錄中。當第二個參數類型是文件時,mv命令完成文件重命名,此時,源文件只能…

    2017-07-24
  • N26第三周

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。        who -i或-u 顯示閑置時間, 若該用戶在前一分鐘之內有進行任何動作,將標示成"."號,如果該用戶已超過24小時沒有任何動作,則標示出"old"字符串   &n…

    Linux干貨 2017-01-16
  • MySQL架構

    1.MySQL整體邏輯架構 我們先下圖看看MySQL整體邏輯架構(MySQL’s Logical Architecture)                       圖1  第一層,即最上一層,所包含的服務并不是MySQL所獨有的技術?!?/p>

    Linux干貨 2015-04-13
  • 18-系統啟動故障修復-實踐

    說明:重啟時可以選擇性在vmlinuz所在行末尾添加 selinux=0;或者直接編輯/etc/selinus/config文件,更改 SELINUX=disabled 關閉SELINUX??梢员苊獯驑撕灒澥訒r間 以下操作都需要進入bootloader引導加載項修改內核啟動參數,在vmlinuz所在行末尾添加一個啟動選項 如何進入bootloader引…

    2017-04-02
欧美性久久久久