Openstack中的LoadBalancer(負載均衡)功能使用實例


 
Openstack Grizzily版本發布后Quantum的功能更加完善。 下面我們測試一下在實際應用中的非常有價格LoadBalancer功能.
 
步驟:
 
1.創建兩個虛擬機,啟用http服務,監聽80端口
root@AuthServer:~# nova list
+--------------------------------------+------+--------+-------------------------------+
| ID                                   | Name | Status | Networks                      |
+--------------------------------------+------+--------+-------------------------------+
| c822baee-9118-46c5-86b7-f1c34bbd0cbe | 222  | ACTIVE | Admin-Net=10.0.0.18           |
| f6d71843-a169-42a1-9781-039f79eb9468 | aa   | ACTIVE | Admin-Net=10.0.0.19           |
| 309f675f-282c-4696-b207-6e020bf01f83 | bb   | ACTIVE | Admin-Net=10.0.0.20           |
| d1580f2a-dd4f-487e-b955-22856db56c6f | cc   | ACTIVE | Admin-Net=10.0.0.24           |
| 664206d0-6333-42f0-bb77-6ddc5f472091 | dd   | ACTIVE | Admin-Net=10.0.0.23           |
| 3ca7bb49-ee2e-40b3-b773-5159d76f7bf4 | win? | ACTIVE | Admin-Net=10.0.0.17, 30.0.0.8 |
+--------------------------------------+------+--------+-------------------------------+

2.獲取虛擬機網絡列表:

root@AuthServer:~# quantum subnet-list
+--------------------------------------+------+-------------+--------------------------------------------+
| id                                   | name | cidr        | allocation_pools                           |
+--------------------------------------+------+-------------+--------------------------------------------+
| 1e5af291-34d9-48bd-b06b-d219b7ed1b01 |      | 10.0.0.0/24 | {"start": "10.0.0.2", "end": "10.0.0.254"} |
| 2c60b750-1d45-4b81-8f5b-9600755b2cf4 |      | 10.0.1.0/24 | {"start": "10.0.1.2", "end": "10.0.1.254"} |
| 6d5d506c-fdbf-4ae7-9afa-00ca2dd791c0 |      | 10.0.0.0/24 | {"start": "10.0.0.2", "end": "10.0.0.254"} |
| d13b9e76-9fbe-4a97-a990-4b13cfbed7a3 |      | 30.0.0.0/24 | {"start": "30.0.0.2", "end": "30.0.0.254"} |
+--------------------------------------+------+-------------+--------------------------------------------+

3. 創建一個負載均衡池

quantum lb-pool-create --lb-method ROUND_ROBIN --name mypool --protocol HTTP --subnet-id 1e5af291-34d9-48bd-b06b-d219b7ed1b01

關於ROUND_ROBIN:輪叫調度算法.

 
4. 把兩台web server加入的到創建的池中:
quantum lb-member-create --address  10.0.0.19 --protocol-port 80 mypool
quantum lb-member-create --address  10.0.0.20 --protocol-port 80 mypool

5.創建一個服務器狀態監控器:

quantum lb-healthmonitor-create --delay 3 --type HTTP --max-retries 3 --timeout 3

healthmonitor id: 17a1808e-3b7c-4fc9-896b-b32a936fcb95

6.將healthmonitor添加到池中:

quantum lb-healthmonitor-associate  17a1808e-3b7c-4fc9-896b-b32a936fcb95 mypool

7.為池創建一個虛擬IP.

quantum lb-vip-create --name myvip --protocol-port 80 --protocol HTTP --subnet-id 1e5af291-34d9-48bd-b06b-d219b7ed1b01 mypool

8.然后就可以分配一個floating_ip給剛剛創建的虛擬IP: 10.0.0.21

這些操作可以在Dashboard上完成:
我分配的是30.0.0.9 ,因為這個是關聯到lb的虛擬ip,所以他沒有instance信息
 
9.查看subnet的port可以看到,已經激活了:
 
10.下面就可以打開瀏覽器,訪問http://30.0.0.9測試看是不是將訪問分配到兩台機器上了,多刷幾次F5,看看效果.
為了測試效果,最好在測試頁上加上
<meta http-equiv="pragma" content="no-cache" />

關閉緩存,或者使用動態腳本測試。

 
最后備注:
Openstack Dashboard已經支持LB的功能,只需要在/etc/openstack-dashboard/local_settings.py
文件中將

OPENSTACK_QUANTUM_NETWORK = {
'enable_lb': True
}

選項打開即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM