漫步云中网络,第 2 部分---Neutron LbaaS的应用场景及实现要点

来源:互联网 发布:代表中国的域名后缀 编辑:程序博客网 时间:2024/05/17 22:49

LBaaS

OpenStack 最初的目标是做 x86 平台下的开源 IaaS 云,但它目前也有了类似于 LBaaS (Load Balance as a Service)这样本属于 SaaS 的特性。

LbaaS 服务可以为一个 tenant 下的多台虚机提供负载均衡服务,要点如下:

  • 提供负载均衡的虚机之间组成一个服务组
  • 虚机之间提供心跳检查
  • 外部通过 VIP 来访问 LB 服务组提供的服务,动态地将 VIP 根据负载均衡策略绑定到具体提供服务虚机的 fixed ip 上

 下图 3 显示了 LBaaS 应用的几种情形:

图 3. LBaaS 的应用场景

LBaaS 的应用场景

说明如下:

  • 有两个虚机 192.168.0.3 和 192.168.0.1 组成负载均衡池,它们之间做心跳(采用了NAT)
  • 如果这个 LB 服务只用在内网,可以只为虚机提供一个内部的 vip,如 192.168.0.4
  • 如果这个 LB 服务也需要从外部访问,那么这个 vip 可以做成 floating ip,如 10.1.1.10

所以实现上述 LB 服务的 neutron 命令如下:

清单 1. 实现例子 LB 服务的 neutron 命令

neurton lb-pool-create --lb-method ROUND_ROBIN --name mypool --protocol HTTP --subnet-id <subnet-id>neurton lb-member-create --address 192.168.0.3 --protocol-port 80 mypoolneurton lb-member-create --address 192.168.0.1 --protocol-port 80 mypoolneurton lb-healthmonitor-create --delay 3 --type HTTP --max-retries 3 --timeout 3neurton lb-healthmonitor-associate <lb-healthomonitor-id> mypoolneurton lb-vip-create --name myvip --protocol-port 80 --protocol HTTP --subnet-id  <subnet-id> mypoolneurton lb-vip-create --name myvip --protocol-port 80 --protocol HTTP --subnet-id  <subnet-id> mypoolneurton floatingip-create publicneurton floatingip-associate <floating-ip-id>  <lb-vip-port-id>
http://www.cnblogs.com/feisky/p/3857885.html
 

Neutron LbaaS的应用场景及实现要点

  NeutronLbaaS实现了下列应用场景:

  • VIP可以设置在router

  • VIP也可以不设置在router

所以在下图的实现中,要特别注意防火墙规则保证sgdefault名空间能访问sgweb名空间,即应该让VIP用的port和网关port关联,也和提供LB的虚机所用的TAP关联起来。

防火墙的流程,我分析应该如下:

1)组成LB服务的虚机所在的计算节点上应为虚机nova-compute-haproxy-instance生成它自己的nova-compute-local防火墙规则:

-A nova-compute-local -d 10.0.0.8/32 -jnova-compute-haproxy-instance

-A nova-compute-haproxy-instance -s 10.0.0.0/24-j ACCEPT

-A nova-compute-haproxy-instance -s 10.0.0.1/32-p udp -m udp --sport 67 --dport 68 -j ACCEPT

-A nova-compute-haproxy-instance -jnova-compute-sg-fallback

-A nova-compute-sg-fallback -j DROP

 同时,它也应该有一条默认路由让vip的port(位于sgweb名空间)能访问它所在的网关

route add default gw 10.0.0.1

2)L3-agent的下列防火墙规则能保证l3-agent上的vip可以访问LB池中的其他虚机。

-A nova-network-POSTROUTING -s 10.0.0.0/8 -d10.0.0.0/8 -m conntrack ! --ctstate DNAT -j ACCEPT

 

0 0
原创粉丝点击