一种基于F5适配器的容器云平台服务注册发现方法技术

技术编号:22534939 阅读:40 留言:0更新日期:2019-11-13 11:03
本发明专利技术涉及一种基于F5适配器的实现容器云平台服务注册发现方法,包括以下步骤:1)在采用mesos+marathon+docker技术的容器云平台发布应用后,marathon触发事件,并为每个应用的容器实例分配IP端口作为对外提供服务的入口;2)F5适配器对接服务,并监听marathon事件,获取最新的应用实例的服务地址;3)F5适配器将获取的应用实例的服务地址批量注册到F5设备上,实现容器云平台的服务注册发现。与现有技术相比,本发明专利技术具有同时增强系统架构的稳定性、可靠性和安全性并提高系统的并发性能。

A service registration and discovery method of container cloud platform based on F5 adapter

The invention relates to a method for realizing container cloud platform service registration and discovery based on F5 adapter, which comprises the following steps: 1) after the container cloud platform adopting the technology of mesos + marathon + docker publishes applications, marathon triggers an event, and assigns an IP port to each application's container instance as the entry for providing external services; 2) F5 adapter docking services, listens for marathon events, and obtains Take the service address of the latest application instance; 3) the F5 adapter batch registers the service address of the obtained application instance to the F5 device to realize the service registration discovery of the container cloud platform. Compared with the prior art, the invention has the advantages of simultaneously enhancing the stability, reliability and security of the system architecture and improving the concurrent performance of the system.

【技术实现步骤摘要】
一种基于F5适配器的容器云平台服务注册发现方法
本专利技术涉及容器云平台
,尤其是涉及一种基于F5适配器的容器云平台服务注册发现方法。
技术介绍
目前容器云平台由软负载均衡服务HAproxy统一对外提供服务,发布流程如下:1.通过容器云管理平台发布应用,产生全新的容器应用实例访问地址2.通过Bamboo将最新的容器实例地址更新到HAproxy服务的配置文件里,3.HAproxy服务通过重新加载配置文件,将最新的容器应用实例的访问地址,统一对外提供服务目前以上方案有以下不足之处:(1)现有技术采用bamboo+haproxy组合,在应用实例进行发布的时候,haproxy需重载配置,出现流量抖动现象,可能导致所有业务应用都发生瞬断。(2)现有技术中存在F5和haproxy两个负载均衡,功能重复,新技术去重后仅使用F5作为负载均衡,满足现有需求,而且F5的硬件稳定性远远高于软负载haproxy的稳定性
技术实现思路
本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种基于F5适配器的容器云平台服务注册发现方法。本专利技术的目的可以通过以下技术方案来实现:一种基于F5适配器的容器云平台服务注册发现方法,包括以下步骤:1)在采用mesos+marathon+docker技术的容器云平台发布应用后,marathon触发事件,并为每个应用的容器实例分配IP端口作为对外提供服务的入口;2)F5适配器对接服务,并监听marathon事件,获取最新的应用实例的服务地址;3)F5适配器将获取的应用实例的服务地址批量注册到F5设备上,实现容器云平台的服务注册发现。所述的marathron为每个应用进行编排配置,包括docker启动参数、资源使用限制、编排约束条件和其他高级参数,将F5_POOL_NAME作为高级参数写入应用的编排配置中。所述的每个应用包含多个实例,每个实例有对应的宿主机IP和Marathon为其分配的端口号,marathron针对应用和应用实例的所有操作,包括应用创建、发布、暂停、扩容、缩容和删除,均产生对应的事件流,即MarathonEvent。所述的步骤2)具体包括以下步骤:21)当用户在容器云平台发布应用操作时,容器实例数发生变化的请求发送到marathon;22)F5适配器通过MarathonEventHandler处理机监听该Marathon事件,F5适配器接到通知后调用marathon应用接口,获取应用实例更新后的IP地址和端口信息。所述的步骤22)中,F5适配器通过以下两种模式实现对Marathon事件的监听:主动调用模式:F5适配器发起一个HTTP请求到Marathon的/v2/events接口,Marathon将应用的改变动作发送到建立的HTTP连接中;回调模式:F5适配器向Marathon注册自己的地址,当Marathon上的应用发生改变时会主动向F5适配器发送HTTP请求从而通知F5适配器做出相应的动作。F5适配器的两种监听模式通过环境变量MARATHON_USE_EVENT_STREAM切换,服务启动时默认开启回调模式将自身地址注册到Marathon从而接收Marathon的事件通知。所述的步骤22)中,当F5适配器MarathonEventHandler处理机监听到Marathon上应用实例发生改变后通过调用handleF5Update方法触发更新F5资源池,具体包括以下步骤:221)从MarathonEvent事件流中获取发生变化的应用详细信息,包括Marathon上的应用APP_ID和该应用对应的F5资源池名称F5_POOL_NAME;222)解析Marathon发送的事件类型并执行对应操作,则有:若此事件为应用实例停止,则根据该应用对应的F5资源池名称F5_POOL_NAME调用F5的接口获取其所有的资源池成员然后逐个删除;若此事件为应用状态更新,则根据应用的APP_ID获取其在Marathon上的全部实例并循环获取每个应用实例对应的IP地址和端口号,然后根据该应用所对应的F5资源池名称F5_POOL_NAME调用F5接口更新资源池成员,包括IP地址和端口号。所述的更新资源池成员的更新方法具体为:遍历资源池成员并与Marathon上获取的实例IP和端口号作比对,若此实例已存在则不做操作,若此实例不存在则添加它到资源池成为新的资源池成员,若某资源池成员不存在对应实例则将它从资源池中删除。与现有技术相比,本专利技术具有以下优点:(1)现有技术采用bamboo+haproxy组合,在应用实例进行发布的时候,haproxy需重载配置,出现流量抖动现象,导致所有业务应用都发生瞬断,而新技术方案完全解决上述业务瞬断问题,保障业务的可用性和可靠性。(2)现有技术中,由于marathon不支持中文、下划线等特殊字符,但是为了兼容需要手动修改bamboo的规则,会产生bamboo挂掉而无法启动以及多bamboo之间数据无法同步等连锁问题,而新技术方案采用F5的irule技术完全避免上述问题。(3)现有技术中存在F5和haproxy两个负载均衡,功能重复,新技术去重后仅使用F5作为负载均衡,满足现有需求,而且F5的硬件稳定性远远高于软负载haproxy的稳定性。(4)经性能测试发现F5性能达20万并发,而haproxy仅支持5万并发,根据瓶颈效应,现有技术仅支持5万并发,而新技术可支持20万并发,提高数倍并发性能。附图说明图1为本专利技术的方法流程图。图2为实施例中的方法流程图。图3为F5实例信息自动更新流程图。图中标记说明:具体实施方式下面结合附图和具体实施例对本专利技术进行详细说明。实施例如图1所示,本专利技术公开了一种基于F5适配器的容器云平台服务注册发现方法,主要包括marathron应用管理、对接F5自研服务和F5VirtualServerPool,(1)组成元素。marathron用于应用的管理,包括应用创建、发布、暂停、扩容、缩容、删除等全生命周期的管理;对接F5自研服务是监听marathon事件,获取最新的应用实例的服务地址;F5VirtualServerPool获取的应用实例的服务地址批量注册到F5设备上,实现容器云平台的服务注册发现。(2)采用mesos+marathon+docker技术的容器云平台发布应用后,marathon触发事件,为每个应用的容器实例分配IP端口作为对外提供服务的入口。(3)通过组件F5适配器(F5-Adapter)对接服务,监听marathon事件,获取最新的应用实例的服务地址。(4)通过组件F5适配器将获取的应用实例的服务地址批量注册到F5设备上,实现容器云平台的服务注册发现。如图2所示,容器云计算平台在用户发布应用时(包括应用更新、扩容、缩容、停止、启动、重启等操作),容器实例数发生变化的请求发送到marathon,marathon执行相关操作并发送事件到自研组件F5-Adapter,F5-Adapter接到通知后调用marathon应用接口,获取应用实例更新的IP和端口信息,最后F5-Adapter根据事件类型,对接F5,将实例信息作为PoolMember更新(增加/删除)到VirtualServer的Pool中,更新的容器实例正常提供服务。如图3所本文档来自技高网...

【技术保护点】
1.一种基于F5适配器的容器云平台服务注册发现方法,其特征在于,包括以下步骤:1)在采用mesos+marathon+docker技术的容器云平台发布应用后,marathon触发事件,并为每个应用的容器实例分配IP端口作为对外提供服务的入口;2)F5适配器对接服务,并监听marathon事件,获取最新的应用实例的服务地址;3)F5适配器将获取的应用实例的服务地址批量注册到F5设备上,实现容器云平台的服务注册发现。

【技术特征摘要】
1.一种基于F5适配器的容器云平台服务注册发现方法,其特征在于,包括以下步骤:1)在采用mesos+marathon+docker技术的容器云平台发布应用后,marathon触发事件,并为每个应用的容器实例分配IP端口作为对外提供服务的入口;2)F5适配器对接服务,并监听marathon事件,获取最新的应用实例的服务地址;3)F5适配器将获取的应用实例的服务地址批量注册到F5设备上,实现容器云平台的服务注册发现。2.根据权利要求1所述的一种基于F5适配器的容器云平台服务注册发现方法,其特征在于,所述的marathron为每个应用进行编排配置,包括docker启动参数、资源使用限制、编排约束条件和其他高级参数,将F5_POOL_NAME作为高级参数写入应用的编排配置中。3.根据权利要求2所述的一种基于F5适配器的容器云平台服务注册发现方法,其特征在于,所述的每个应用包含多个实例,每个实例有对应的宿主机IP和Marathon为其分配的端口号,marathron针对应用和应用实例的所有操作,包括应用创建、发布、暂停、扩容、缩容和删除,均产生对应的事件流,即MarathonEvent。4.根据权利要求3所述的一种基于F5适配器的容器云平台服务注册发现方法,其特征在于,所述的步骤2)具体包括以下步骤:21)当用户在容器云平台发布应用操作时,容器实例数发生变化的请求发送到marathon;22)F5适配器通过MarathonEventHandler处理机监听该Marathon事件,F5适配器接到通知后调用marathon应用接口,获取应用实例更新后的IP地址和端口信息。5.根据权利要求4所述的一种基于F5适配器的容器云平台服务注册发现方法,其特征在于,所述的步骤22)中,F5适配器通过以下两种模式实现对Marathon事件的监听:主动调用模式:F5适配器发起一个HTTP请求到Marathon的/v2/events接口,Marathon将应用的...

【专利技术属性】
技术研发人员:李虎路进锋李文权
申请(专利权)人:上海浦东发展银行股份有限公司信用卡中心
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1