keepalived實現WEB服務集羣的高可用負載均衡

要求:利用keepalived實現WEB服務集羣的高可用負載均衡,即在lvs_dr模型中扮演director的角色,對來自用戶的請求按照一定的算法分配至後端服務器中;且keepalived服務器可實現高可用。


keepalived是vrrp協議的一種實現,專門爲lvs設計,以實現對lvs高可用就集羣中的dirctor進行冗餘以及對realserver進行健康檢測。當一臺主機(MASTER)出現問題後,keepalived能夠將VIP自動的分配到備用的主機上(BACKUP),從而實現了自身(director)的高可用。


步驟:


1.將172.16.10.17與172.16.10.77兩臺主機部署成爲lvs_dr模型中的real_server,並保證可用(此處省略步驟)

2.172.16.10.16與172.16.10.66兩臺主機充當director與備用director

1)在兩臺主機上安裝keepalived

yum -y install keepalived

2)編輯配置文件

vim /etc/keepalived/keepalived.conf

內容爲:

global_defs {

    notification_email {

        root@localhost ## 後端服務器有問題時的郵件接受者,可以多個

  }

    notification_email_from keepalived@localhost  ## 郵件發送者

  smtp_server 127.0.0.1  ## 郵箱服務器

    smtp_connect_timeout 30

    router_id c616  ##  路由標記

    vrrp_mcast_group4 224.0.10.18  ##多播使用的地址

}


vrrp_instance VI_1 {

    state MASTER  ## 設定爲主服務器

    interface eth0  ## 網絡接口

    virtual_router_id 10 ## 虛擬路由id,值爲0-255

    priority 100  ## 優先級

    advert_int 3 ## vrrp通告時間的間隔

    authentication {

        auth_type PASS ## 認證方式

        auth_pass douhua ## 認證字符串,最多8位

    }

    virtual_ipaddress {

        172.16.10.99/16  ## 虛擬服務器地址,即VIP

    }

}

主機172.16.10.66類似,注意修改優先級(priority)爲98,以及當前節點初始狀態(state)爲BACKUP


3)啓動服務

a)啓動172.16.10.16的keepalived服務,查看是否添加了172.16.10.99地址(有)

b)啓動172.16.10.66的keepalived服務,查看是否添加了172.16.10.99地址(無)

c)關閉172.16.10.16的keepalived服務,查看172.16.10.16主機是否刪除了172.10.16.99地址,172.16.10.66主機是否添加了172.16.10.99地址

d)啓動172.16.10.16的keepalived服務,查看172.16.10.16主機是否添加了172.16.10.99地址,172.16.10.66主機是否刪除了172.16.10.99地址


3.添加虛擬服務器實現負載均衡功能

1)在上述配置文件後面添加下列內容:

virtual_server 172.16.10.99 80 {

delay_loop 3      ## 輪詢時間

    lb_algo wrr       ## 調度算法

    lb_kind DR        ## lvs類型

  persistence_timeout 50    ## 長連接超時時長

    protocol TCP     ## 協議


    sorry_server 127.0.0.1 80   ##real_server都故障後的頁面


    real_server 172.16.10.17 80 {

        weight 1  ## 權重

      HTTP_GET {

            url {

              path /index.html

                  status_code 200

            }

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

    }


    real_server 172.16.10.77 80 {

        weight 2

        HTTP_GET {

            url {

              path /index.html

                  status_code 200

            }

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

    }

}


2)在172.16.10.66主機上添加類似配置,更改state,priority

3)測試keepalived冗餘功能是否可以,方法類似前面,可以將後面查看方式更改爲查看網頁是否可以正常打開


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章