eric
作者eric·2015-05-15 16:56
系统运维工程师·某金融单位

Openstack中的LoadBalancer(负载均衡)功能使用实例

字数 3950阅读 1418评论 0赞 0

问题导读

1、怎样获取虚拟机网络列表?

2、什么是轮叫调度算法?

3、如何打开Openstack Dashboard的LB功能?

Openstack Grizzily版本发布后Quantum的功能更加完善。 下面我们测试一下在实际应用中的非常有价格LoadBalancer功能.

步骤:

1.创建两个虚拟机,启用http服务,监听80端口

  1. root@AuthServer:~# nova list
  2. +--------------------------------------+------+--------+-------------------------------+
  3. | ID                                   | Name | Status | Networks                      |
  4. +--------------------------------------+------+--------+-------------------------------+
  5. | c822baee-9118-46c5-86b7-f1c34bbd0cbe | 222  | ACTIVE | Admin-Net=10.0.0.18           |
  6. | f6d71843-a169-42a1-9781-039f79eb9468 | aa   | ACTIVE | Admin-Net=10.0.0.19           |
  7. | 309f675f-282c-4696-b207-6e020bf01f83 | bb   | ACTIVE | Admin-Net=10.0.0.20           |
  8. | d1580f2a-dd4f-487e-b955-22856db56c6f | cc   | ACTIVE | Admin-Net=10.0.0.24           |
  9. | 664206d0-6333-42f0-bb77-6ddc5f472091 | dd   | ACTIVE | Admin-Net=10.0.0.23           |
  10. | 3ca7bb49-ee2e-40b3-b773-5159d76f7bf4 | win? | ACTIVE | Admin-Net=10.0.0.17, 30.0.0.8 |
  11. +--------------------------------------+------+--------+-------------------------------+

复制代码

2.获取虚拟机网络列表:

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

复制代码

3. 创建一个负载均衡池

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

复制代码

关于ROUND_ROBIN:轮叫调度算法(百度或维基百科讲解有).

4. 把两台web server加入的到创建的池中:

  1. quantum lb-member-create --address  10.0.0.19 --protocol-port 80 mypool
  2. quantum lb-member-create --address  10.0.0.20 --protocol-port 80 mypool

复制代码

5.创建一个服务器状态监控器:

  1. quantum lb-healthmonitor-create --delay 3 --type HTTP --max-retries 3 --timeout 3
  2. healthmonitor id: 17a1808e-3b7c-4fc9-896b-b32a936fcb95

复制代码

6.将healthmonitor添加到池中:

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

复制代码

7.为池创建一个虚拟IP.

  1. 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

文件中将

  1. OPENSTACK_QUANTUM_NETWORK = {
  2. 'enable_lb': True
  3. }

复制代码

选项打开即可。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广