上一節我們已經配置并測試 LBaaS,今天重點分析 Neutron 是如何用 Haproxy 來實作負責均衡的。
在控制節點上運作 ip netns,我們發現 Neutron 建立了新的 namespace qlbaas-xxx。
該 namespace 對應我們建立的 pool “web servers”。
其命名格式為 qlbaas-< pool ID>。
可以通過 ip a 檢視其設定。
VIP 172.16.100.11 已經配置在 namespace interface 上。
在 subnet 的 Port 清單中也可以找到該 interface 的相應配置。
對于每一個 pool,Neutron 都會啟動一個 haproxy 程序提供 load balancering 功能。
通過 ps 指令查找 haproxy 程序:
haproxy 配置檔案儲存在 /opt/stack/data/neutron/lbaas/< pool ID>/conf 中。
檢視 “web servers” 的配置内容:
可以看到:
1. frontend 使用的 HTTP 位址為 VIP:80
2. backend 使用的 HTTP 位址為 172.16.100.10:80 和 172.16.100.9:80
3. balance 方法為 roundrobin
這些内容與我們前面的配置一緻。
以上就是 Neutron 實作 LBaaS 的理。
下一節我們讨論如何通過 floating IP 通路 VIP。
本文轉自CloudMan6 51CTO部落格,原文連結:http://blog.51cto.com/cloudman/1882468