要求:利用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冗餘功能是否可以,方法類似前面,可以將後面查看方式更改爲查看網頁是否可以正常打開