lbaas分析笔记

栏目: 编程工具 · 发布时间: 6年前

内容简介:今年的云网方案,涉及很多lb的需求,大多数是客户亟需的而社区目前不支持的。针对类似需求,我们首要考虑能否通过其它方式去满足而不改动社区原有实现,其次才是考虑如何扩展并兼容社区实现。当然有的方案也会考虑能否向社区提交,话说回来了,搞开源本来就要结合实际需求来做,过于私有化的方案也就违背了开源的初心。说回lbaas,目前社区已经将其独立出neutron,成立新的项目当然还需要配置相应的service_provider(neutron里对理解provider这个概念很重要)。比如f5的配置:我们看到,这里的pr

前言

今年的云网方案,涉及很多lb的需求,大多数是客户亟需的而社区目前不支持的。针对类似需求,我们首要考虑能否通过其它方式去满足而不改动社区原有实现,其次才是考虑如何扩展并兼容社区实现。当然有的方案也会考虑能否向社区提交,话说回来了,搞开源本来就要结合实际需求来做,过于私有化的方案也就违背了开源的初心。说回lbaas,目前社区已经将其独立出neutron,成立新的项目 octavia 。即便如此,当前很多云厂商,依然还是沿用的lbaas v1或v2。很多lb厂商如f5,a10还是以lbaas的插件为主,所以本文简要分析lbaas相关知识点。

lbaas plugin

lbaas的功能入口是它的restAPI。厂商们针对api开发相应的lbaas plugin,并且要对应到设备上的具体功能。简单阐述以下lbaas的几个组件的关系:

lbaas分析笔记

api和lbaas plugin服务是随neutron-server一起跑在控制节点上;agent是跑在网络节点上的。neutron-server接收到restapi的请求后,会触发lb的插件处理body,插件会选取lb的agent,将相应的请求通过rpc发送给agent,agent处理消息时会调用设备的driver。而device driver就是具体与设备打交道的组件。插件部分没什么好说的,接触的几个厂商都是沿用的lb社区的插件。配置在/etc/neutron/neutron.conf:

service_plugins = [already defined plugins],neutron_lbaas.services.loadbalancer.plugin.LoadBalancerPluginv2 

当然还需要配置相应的service_provider(neutron里对理解provider这个概念很重要)。比如f5的配置:

service_provider = LOADBALANCERV2:F5Networks:neutron_lbaas.drivers.f5.driver_v2.F5LBaaSV2Driver:default

我们看到,这里的provider路径指向的是 F5LBaaSV2Driver 。这个 driver 可以理解是调用f5-agent服务的插件驱动service driver,注意区别前文提到的 device driver 。我们也可以看lb的代码里,插件在创建资源的时候,是调的 self._call_driver_operation 这个方法,从方法名看出,调的是driver,也就是刚刚讲的这个driver。

lbaas agent

这部分分析agent的处理流程。在此之前还是先分析一下前文提到的service_provider。参照f5的社区代码,他们的service driver在处理创建lb的开始阶段,会通过 _schedule_agent_create_service 选取一个agent,因此是支持多agent的(有个可用域的概念)。除此之外,还做了一个特殊处理,那就是将vip的端口类型改为了裸金属 baremetal 。对于这样的处理,第三方的ml2处理port需要特别注意,建议增加判断 device_owner 为f5的特殊流程。

lbaas agent的处理主要就是调用device driver进行资源的增删改,以及同步资源的状态status。配置device driver的地方在/etc/neutron/lbaas_agent.ini:

interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver 

类似f5的配置在/etc/neutron/services/f5/f5-openstack-agent.ini:

f5_bigip_lbaas_device_driver = f5_openstack_agent.lbaasv2.drivers.bigip.icontrol_driver.iControlDriver 

可以看得出来,社区的方案里,agent与plugin的处理是异步进行的。driver的处理流程就不分析了,各家厂商的处理都不同。

lbaas方案

这里就不说设备的组网方案了,单臂双臂等等。针对lb的纳管方案,目前就是两种,分别是云平台纳管和sdn控制器纳管。云平台纳管的情况,lb的插件和agent的部署就直接对应为设备的,类似f5,那么这种情况下,lb做不到的引流等相关操作的话,就需要其它方案补齐,比如额外的网络规划;sdn纳管lb设备的情况,插件与agent都对应sdn的,这种情况下,云上就不关心具体的引流情况了,这时候sdn就需要做到自动化部署lb资源。而实际部署的时候,真正复杂的地方在于,往往会涉及到sdn与云和lb插件三者的交互。所以,每部分摊开来都看似容易,但是融合在一起形成方案的时候,一定要考虑到各种细节。

个人分析,欢迎指正,若转载请注明出处!


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Web Data Mining

Web Data Mining

Bing Liu / Springer / 2006-12-28 / USD 59.95

Web mining aims to discover useful information and knowledge from the Web hyperlink structure, page contents, and usage data. Although Web mining uses many conventional data mining techniques, it is n......一起来看看 《Web Data Mining》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

URL 编码/解码
URL 编码/解码

URL 编码/解码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具