kubernetes负载均衡器扩容方法和系统转让专利

申请号 : CN202011209109.8

文献号 : CN112532687B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 蔡锡生王一钧王玉虎吴江法古强李逸锋

申请人 : 杭州朗澈科技有限公司

摘要 :

本申请涉及一种kubernetes负载均衡器扩容方法和系统,其中,该kubernetes负载均衡器扩容方法包括:负载均衡监听器判断第一SLB的运行数据是否大于预警值;若是,该负载均衡监听器调用云服务商的API,向云服务商发送创建第二SLB的申请信息;该负载均衡监听器接收到该云服务商返回的参数,修改kubernetes服务配置信息;该kubernetes中的云服务商的插件为该第二SLB添加后端服务组;该负载均衡监听器调用云服务商的API,向云服务商发送指令,该指令指示绑定该第二SLB与EIP,通过本申请,解决了大量SLB需要扩容时,SLB扩容工作繁琐复杂,无法及时满足扩容需求的问题,实现了简便SLB扩容工作,从而及时完成SLB扩容工作的效果。

权利要求 :

1.一种kubernetes负载均衡器扩容方法,其特征在于,包括:

负载均衡监听器判断第一SLB的运行数据是否大于预警值,其中,所述运行数据包括最大连接数和/或流量;

若是,所述负载均衡监听器调用云服务商的API,向云服务商发送创建第二SLB的申请信息,其中,所述第二SLB的规格大于所述第一SLB;

所述第二SLB创建完成后,所述负载均衡监听器接收到所述云服务商返回的参数,并将kubernetes服务配置信息中的第一SLB的ID替换成第二SLB的ID,其中,所述返回的参数包括所述第二SLB的ID;

所述kubernetes中的云服务商的插件为所述第二SLB添加后端服务组;

所述负载均衡监听器调用云服务商的API,向云服务商发送指令,所述指令指示绑定所述第二SLB与EIP。

2.根据权利要求1所述的方法,其特征在于,所述负载均衡监听器调用云服务商的API,向云服务商发送指令,所述指令指示绑定所述第二SLB与EIP包括:所述负载均衡监听器调用云服务商的API,向云服务商发送第一指令,所述第一指令指示解除所述第一SLB与EIP的绑定;

所述负载均衡监听器调用云服务商的API,向云服务商发送第二指令,所述第二指令指示绑定所述第二SLB与EIP;

所述负载均衡监听器调用云服务商的API,向云服务商发送第三指令,所述第三指令指示删除所述第一SLB。

3.根据权利要求1所述的方法,其特征在于,在所述负载均衡监听器判断第一SLB的运行数据是否大于预警值之前,所述方法包括:所述负载均衡监听器监听所述kubernetes的service,获取所述第一SLB的ID,其中,所述第一SLB为kubernetes正在使用中的SLB;

所述负载均衡监听器调用所述云服务商的API,查询得到所述第一SLB的所述运行数据。

4.根据权利要求3所述的方法,其特征在于,在预设时间段内,所述负载均衡监听器调用所述云服务商的API,查询得到所述第一SLB的运行数据之后,若是,所述负载均衡监听器向云服务商发送创建第二SLB的申请信息,其中,所述第二SLB的规格大于所述第一SLB之前,所述方法包括:在相邻多个所述预设时间段内,查询得到所述第一SLB的多个运行数据,所述负载均衡监听器判断多个所述运行数据是否均大于所述预警值。

5.一种kubernetes负载均衡器扩容系统,其特征在于,所述系统包括负载均衡监听器;

所述负载均衡监听器判断第一SLB的运行数据是否大于预警值,其中,所述运行数据包括最大连接数和/或流量;

若是,所述负载均衡监听器调用云服务商的API,向云服务商发送创建第二SLB的申请信息,其中,所述第二SLB的规格大于所述第一SLB;

所述第二SLB创建完成后,所述负载均衡监听器接收到所述云服务商返回的参数,并将kubernetes服务配置信息中的第一SLB的ID替换成第二SLB的ID,其中,所述返回的参数包括所述第二SLB的ID;

所述kubernetes中的云服务商的插件为所述第二SLB添加后端服务组;

所述负载均衡监听器调用云服务商的API,向云服务商发送指令,所述指令指示绑定所述第二SLB与EIP。

6.根据权利要求5所述的系统,其特征在于,所述负载均衡监听器调用云服务商的API,向云服务商发送指令,所述指令指示绑定所述第二SLB与EIP包括:所述负载均衡监听器调用云服务商的API,向云服务商发送第一指令,所述第一指令指示解除所述第一SLB与EIP的绑定;

所述负载均衡监听器调用云服务商的API,向云服务商发送第二指令,所述第二指令指示绑定所述第二SLB与EIP;

所述负载均衡监听器调用云服务商的API,向云服务商发送第三指令,所述第三指令指示删除所述第一SLB。

7.根据权利要求5所述的系统,其特征在于,在所述负载均衡监听器判断第一SLB的运行数据是否大于预警值之前:所述负载均衡监听器监听所述kubernetes的service,获取所述第一SLB的ID,其中,所述第一SLB为kubernetes正在使用中的SLB;

所述负载均衡监听器调用所述云服务商的API,查询得到所述第一SLB的所述运行数据。

8.根据权利要求7所述的系统,其特征在于,在预设时间段内,所述负载均衡监听器调用所述云服务商的API,查询得到所述第一SLB的运行数据之后,若是,所述负载均衡监听器向云服务商发送创建第二SLB的申请信息,其中,所述第二SLB的规格大于所述第一SLB之前:在相邻多个所述预设时间段内,查询得到所述第一SLB的多个运行数据,所述负载均衡监听器判断多个所述运行数据是否均大于所述预警值。

9.一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至

4中任一项所述的kubernetes负载均衡器扩容方法。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至4中任一项所述的kubernetes负载均衡器扩容方法。

说明书 :

kubernetes负载均衡器扩容方法和系统

技术领域

[0001] 本申请涉及计算机软件技术应用技术领域,特别是涉及一种kubernetes负载均衡器扩容方法和系统。

背景技术

[0002] 随着云计算技术的成熟,由自建机房到使用云服务商的弹性计算资源,由自建数据库到使用云服务商提供的云数据库,软件开发的基础设施发生了巨大变化。由于容器技术对软件交付的便捷,kubernetes(容器编排工具)大规模的应用也是个不争的事实。
[0003] 在相关技术中,当业务量增长后,需要手动去扩容SLB,当kubernetes上有成百上千的SLB需要扩容时是个极为繁琐复杂的工作。
[0004] 针对相关技术中,大量SLB需要扩容时,SLB扩容工作繁琐复杂,无法及时满足扩容需求的问题,尚未提出有效的解决方案。

发明内容

[0005] 本申请实施例提供了一种kubernetes负载均衡器扩容方法和系统,以至少解决相关技术中,大量SLB需要扩容时,SLB扩容工作繁琐复杂,无法及时满足扩容需求的问题。
[0006] 第一方面,本申请实施例提供了一种kubernetes负载均衡器扩容方法,所述方法包括:
[0007] 负载均衡监听器判断第一SLB的运行数据是否大于预警值,其中,所述运行数据包括最大连接数和/或流量;
[0008] 若是,所述负载均衡监听器调用云服务商的API,向云服务商发送创建第二SLB的申请信息,其中,所述第二SLB的规格大于所述第一SLB;
[0009] 所述第二SLB创建完成后,所述负载均衡监听器接收到所述云服务商返回的参数,并将kubernetes服务配置信息中的第一SLB的ID替换成第二SLB的ID,其中,所述返回的参数包括所述第二SLB的ID;
[0010] 所述kubernetes中的云服务商的插件为所述第二SLB添加后端服务组;
[0011] 所述负载均衡监听器调用云服务商的API,向云服务商发送指令,所述指令指示绑定所述第二SLB与EIP。
[0012] 在其中一些实施例中,所述负载均衡监听器调用云服务商的API,向云服务商发送指令,所述指令指示绑定所述第二SLB与EIP包括:
[0013] 所述负载均衡监听器调用云服务商的API,向云服务商发送第一指令,所述第一指令指示解除所述第一SLB与EIP的绑定;
[0014] 所述负载均衡监听器调用云服务商的API,向云服务商发送第二指令,所述第二指令指示绑定所述第二SLB与EIP;
[0015] 所述负载均衡监听器调用云服务商的API,向云服务商发送第三指令,所述第三指令指示删除所述第一SLB。
[0016] 在其中一些实施例中,在所述负载均衡监听器判断第一SLB的运行数据是否大于预警值之前,所述方法包括:
[0017] 所述负载均衡监听器监听所述kubernetes的service,获取所述第一SLB的ID,其中,所述第一SLB为kubernetes正在使用中的SLB;
[0018] 所述负载均衡监听器调用所述云服务商的API,查询得到所述第一SLB的所述运行数据。
[0019] 在其中一些实施例中,在预设时间段内,所述负载均衡监听器调用所述云服务商的API,查询得到所述第一SLB的运行数据之后,若是,所述负载均衡监听器向云服务商发送创建第二SLB的申请信息,其中,所述第二SLB的规格大于所述第一SLB之前,所述方法包括:在相邻多个所述预设时间段内,查询得到所述第一SLB的多个运行数据,所述负载均衡监听器判断多个所述运行数据是否均大于所述预警值。
[0020] 第二方面,本申请实施例提供了一种kubernetes负载均衡器扩容系统,所述系统包括负载均衡监听器;
[0021] 所述负载均衡监听器判断第一SLB的运行数据是否大于预警值,其中,所述运行数据包括最大连接数和/或流量;
[0022] 若是,所述负载均衡监听器调用云服务商的API,向云服务商发送创建第二SLB的申请信息,其中,所述第二SLB的规格大于所述第一SLB;
[0023] 所述第二SLB创建完成后,所述负载均衡监听器接收到所述云服务商返回的参数,并将kubernetes服务配置信息中的第一SLB的ID替换成第二SLB的ID,其中,所述返回的参数包括所述第二SLB的ID;
[0024] 所述kubernetes中的云服务商的插件为所述第二SLB添加后端服务组;
[0025] 所述负载均衡监听器调用云服务商的API,向云服务商发送指令,所述指令指示绑定所述第二SLB与EIP。
[0026] 在其中一些实施例中,所述负载均衡监听器调用云服务商的API,向云服务商发送指令,所述指令指示绑定所述第二SLB与EIP包括:
[0027] 所述负载均衡监听器调用云服务商的API,向云服务商发送第一指令,所述第一指令指示解除所述第一SLB与EIP的绑定;
[0028] 所述负载均衡监听器调用云服务商的API,向云服务商发送第二指令,所述第二指令指示绑定所述第二SLB与EIP;
[0029] 所述负载均衡监听器调用云服务商的API,向云服务商发送第三指令,所述第三指令指示删除所述第一SLB。
[0030] 在其中一些实施例中,在所述负载均衡监听器判断第一SLB的运行数据是否大于预警值之前:
[0031] 所述负载均衡监听器监听所述kubernetes的service,获取所述第一SLB的ID,其中,所述第一SLB为kubernetes正在使用中的SLB;
[0032] 所述负载均衡监听器调用所述云服务商的API,查询得到所述第一SLB的所述运行数据。
[0033] 在其中一些实施例中,在预设时间段内,所述负载均衡监听器调用所述云服务商的API,查询得到所述第一SLB的运行数据之后,若是,所述负载均衡监听器向云服务商发送创建第二SLB的申请信息,其中,所述第二SLB的规格大于所述第一SLB之前:在相邻多个所述预设时间段内,查询得到所述第一SLB的多个运行数据,所述负载均衡监听器判断多个所述运行数据是否均大于所述预警值。
[0034] 第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述kubernetes负载均衡器扩容方法。
[0035] 第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现所述kubernetes负载均衡器扩容方法。
[0036] 相比于相关技术,本申请实施例提供的kubernetes负载均衡器扩容方法,通过负载均衡监听器判断第一SLB的运行数据是否大于预警值,其中,该运行数据包括最大连接数和/或流量;若是,该负载均衡监听器调用云服务商的API,向云服务商发送创建第二SLB的申请信息,其中,该第二SLB的规格大于该第一SLB;该第二SLB创建完成后,该负载均衡监听器接收到该云服务商返回的参数,并将kubernetes服务配置信息中的第一SLB的ID替换成第二SLB的ID,其中,该返回的参数包括该第二SLB的ID;该kubernetes中的云服务商的插件为该第二SLB添加后端服务组;该负载均衡监听器调用云服务商的API,向云服务商发送指令,该指令指示绑定该第二SLB与EIP,解决了大量SLB需要扩容时,SLB扩容工作繁琐复杂,无法及时满足扩容需求的问题,实现了简便SLB扩容工作,从而及时完成SLB扩容工作的效果。

附图说明

[0037] 此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0038] 图1是根据本申请实施例的kubernetes负载均衡器扩容方法的应用环境示意图;
[0039] 图2是根据本申请实施例的kubernetes负载均衡器扩容方法的流程图;
[0040] 图3是根据本申请实施例的第二SLB与EIP绑定的流程图;
[0041] 图4是根据本申请实施例的获取第一SLB的运行数据的流程图;
[0042] 图5是根据本申请实施例的在相邻多个预设时间段内获取第一SLB的多个运行数据的流程图;
[0043] 图6是根据本申请实施例的另一种kubernetes负载均衡器扩容方法的流程图;
[0044] 图7是根据本申请实施例的kubernetes负载均衡器扩容系统的结构框图;
[0045] 图8是根据本申请实施例的电子设备的内部结构示意图。

具体实施方式

[0046] 为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0047] 显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
[0048] 在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
[0049] 除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
[0050] 本申请提供的kubernetes负载均衡器扩容方法,可以应用于如图1所示的公有云环境的应用环境中,图1是根据本申请实施例的kubernetes负载均衡器扩容方法的应用环境示意图,如图1所示,服务器101与服务器102通过网络进行通信。该服务器101内部署有负载均衡监听器和kubernetes,该服务器102为云服务商的服务器,该负载均衡监听器判断第一SLB的运行数据是否大于预警值,其中,该运行数据包括最大连接数和/或流量;若是,该负载均衡监听器调用云服务商的API,向云服务商发送创建第二SLB的申请信息,其中,该第二SLB的规格大于该第一SLB;该第二SLB创建完成后,该负载均衡监听器接收到该云服务商返回的参数,并将kubernetes服务配置信息中的第一SLB的ID替换成第二SLB的ID,其中,该返回的参数包括该第二SLB的ID;该kubernetes中的云服务商的插件为该第二SLB添加后端服务组;该负载均衡监听器调用云服务商的API,向云服务商发送指令,该指令指示绑定该第二SLB与EIP,其中,所述SLB为负载均衡(Server Load Balancer),是将访问流量根据转发策略分发到后端多台云服务器(ECS实例)的流量分发控制服务,负载均衡扩展了应用的服务能力,增强了应用的可用性,SLB要能正常使用,还需要绑定EIP,用户通过弹性公网IP访问到SLB,SLB再将请求分发到多组后端服务上,达到高峰分流的作用。其中,服务器101、服务器102可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
[0051] 在相关技术中,对公有云环境下的kubernetes负载均衡器的扩容方法为:运维人员先登陆云服务商管理平台(如阿里云),通过其监控告警发现高负荷SLB;评估扩容规格,在相同的地域下,手动创建大容量的SLB;接着找到kubernetes中对旧SLB依赖的服务参数,将其对应的旧SLB ID替换成新的SLB ID;解绑旧SLB的EIP;为新SLB绑定EIP(必须绑定回原来的EIP,保持访问入口不变),测试EIP访问正常后,删除旧的SLB。
[0052] 这种方法无法为SLB自动扩容,需要登陆到云服务商平台,手动执行以上步骤,即使发现扩容需求,运维人员也无法在短时间内完成扩容操作,当大量SLB需要扩容时,SLB扩容工作繁琐复杂,且无法及时满足扩容需求。
[0053] 本实施例提供了一种kubernetes负载均衡器扩容方法,图2是根据本申请实施例的kubernetes负载均衡器扩容方法的流程图,如图3所示,该流程包括如下步骤:
[0054] 步骤S201,负载均衡监听器判断第一SLB的运行数据是否大于预警值,其中,该运行数据包括最大连接数和/或流量;
[0055] 步骤S202,若是,该负载均衡监听器调用云服务商的API,向云服务商发送创建第二SLB的申请信息,其中,该第二SLB的规格大于该第一SLB;
[0056] 步骤S203,该第二SLB创建完成后,该负载均衡监听器接收到该云服务商返回的参数,并将kubernetes服务配置信息中的第一SLB的ID替换成第二SLB的ID,其中,该返回的参数包括该第二SLB的ID;
[0057] 步骤S204,该kubernetes中的云服务商的插件为该第二SLB添加后端服务组;
[0058] 步骤S205,该负载均衡监听器调用云服务商的API,向云服务商发送指令,该指令指示绑定该第二SLB与EIP。
[0059] 通过上述步骤S201至S205,相对于现有技术中无法为SLB自动扩容,需要运维人员登陆到云服务商平台,手动执行扩容步骤,即使发现扩容需求,运维人员也无法在短时间内完成扩容操作,当大量SLB需要扩容时,SLB扩容工作繁琐复杂,且无法及时满足扩容需求的问题,本实施例通过负载均衡监听器判断第一SLB的运行数据是否大于预警值,其中,该运行数据包括最大连接数和/或流量;若是,该负载均衡监听器调用云服务商的API,向云服务商发送创建第二SLB的申请信息,其中,该第二SLB的规格大于该第一SLB;该第二SLB创建完成后,该负载均衡监听器接收到该云服务商返回的参数,并将kubernetes服务配置信息中的第一SLB的ID替换成第二SLB的ID,其中,该返回的参数包括该第二SLB的ID;该kubernetes中的云服务商的插件为该第二SLB添加后端服务组;该负载均衡监听器调用云服务商的API,向云服务商发送指令,该指令指示绑定该第二SLB与EIP,能够自动感知SLB的扩容需求、评估SLB的扩容规格、完成SLB的扩容操作,解决了大量SLB需要扩容时,SLB扩容工作繁琐复杂,无法及时满足扩容需求的问题,达到了简便SLB扩容工作的效果,从而及时完成SLB扩容工作。
[0060] 在其中一些实施例中,图3是根据本申请实施例的第二SLB与EIP绑定的流程图,如图3所示,该负载均衡监听器调用云服务商的API,向云服务商发送指令,该指令指示绑定该第二SLB与EIP,包括以下步骤:
[0061] 步骤S301,该负载均衡监听器调用云服务商的API,向云服务商发送第一指令,该第一指令指示解除该第一SLB与EIP的绑定;
[0062] 步骤S302,该负载均衡监听器调用云服务商的API,向云服务商发送第二指令,该第二指令指示绑定该第二SLB与EIP;
[0063] 步骤S303,该负载均衡监听器调用云服务商的API,向云服务商发送第三指令,该第三指令指示删除该第一SLB。
[0064] 现有技术中,该解除该第一SLB与EIP的绑定、绑定该第二SLB与EIP、删除该第一SLB均需要运维人员登陆云服务商管理平台进行操作,通过上述步骤S301至S303,能够通过该负载均衡监听器调用云服务商的API自动完成,简便了SLB扩容工作。
[0065] 在其中一些实施例中,图4是根据本申请实施例的获取第一SLB的运行数据的流程图,如图4所示,在该负载均衡监听器判断第一SLB的运行数据是否大于预警值之前,包括以下步骤:
[0066] 步骤S401,该负载均衡监听器监听该kubernetes的service,获取该第一SLB的ID,其中,该第一SLB为kubernetes正在使用中的SLB,例如,该负载均衡监听器为自研组件,该负载均衡监听器基于kubernetes自定义资源(CRD)和自定义控制器实现,能够收集kubernetes集群中所有属于LoadBalancer类型的Service,得到正在使用中的SLB的ID,需要说明的是,该负载均衡器不是监听所有的SLB,它只监听在kubernetes中使用到的SLB,而在kubernetes中使用到的SLB有很多个,各第一SLB单独执行本kubernetes负载均衡器扩容方法,并对多个第一SLB做并发处理;
[0067] 步骤402,该负载均衡监听器调用该云服务商的API,查询得到该第一SLB的该运行数据。
[0068] 通过上述步骤S401至S402,能够通过该负载均衡监听器中的程序收集正在使用中的SLB的ID,并调用该云服务商的API,查询得到该使用中的SLB的运行数据,实现以程序的方式获取到SLB的运行数据,从而能够自动确定该第一SLB是否存在扩容需求,过程中无需人工参与,简便了SLB的扩容工作。
[0069] 在其中一些实施例中,图5是根据本申请实施例的在相邻多个预设时间段内获取第一SLB的多个运行数据的流程图,如图5所示,在预设时间段内,该负载均衡监听器调用该云服务商的API,查询得到该第一SLB的运行数据之后,若是,该负载均衡监听器向云服务商发送创建第二SLB的申请信息,其中,该第二SLB的规格大于该第一SLB之前,包括以下步骤:
[0070] 步骤S501,在相邻多个该预设时间段内,查询得到该第一SLB的多个运行数据,该负载均衡监听器判断多个该运行数据是否均大于该预警值,例如,每隔2分钟,该负载均衡监听器调用云服务商的API,查询一次当前SLB的最大连接数和流量,并判断是否有存在连续3次查询到的当前SLB的最大连接数和流量均大于预警值的情况。
[0071] 由于单次运行数据大于预警值可能说明该第一SLB存在暂时性的运行繁忙,而连续多次查询到的当前SLB的运行数据均大于预警值,能够反映该第一SLB确实存在扩容的必要,通过上述步骤S501,能够准确确定扩容对象,筛选出真正存在扩容需求的第一SLB,对该第一SLB进行扩容。
[0072] 在其中一些实施例中,图6是根据本申请实施例的另一种kubernetes负载均衡器扩容方法的流程图,如图6所示,负载均衡监听器监听kubernetes的service,获取第一SLB的ID,其中,该第一SLB为kubernetes正在使用中的SLB;在预设时间段内,该负载均衡监听器调用云服务商的API,查询得到该第一SLB的运行数据,其中,该运行数据包括最大连接数和/或流量;在相邻多个该预设时间段内,查询得到该第一SLB的多个运行数据,该负载均衡监听器判断多个该运行数据是否均大于预警值;若是,该负载均衡监听器调用云服务商的API,向云服务商发送创建第二SLB的申请信息,其中,该第二SLB的规格大于该第一SLB;该第二SLB创建完成后,该负载均衡监听器接收到该云服务商返回的参数,并将kubernetes服务配置信息中的第一SLB的ID替换成第二SLB的ID,其中,该返回的参数包括该第二SLB的ID;该kubernetes中的云服务商的插件为该第二SLB添加后端服务组;该负载均衡监听器调用云服务商的API,向云服务商发送第一指令,该第一指令指示解除该第一SLB与EIP的绑定;该负载均衡监听器调用云服务商的API,向云服务商发送第二指令,该第二指令指示绑定该第二SLB与EIP;该负载均衡监听器调用云服务商的API,向云服务商发送第三指令,该第三指令指示删除该第一SLB。
[0073] 需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0074] 本实施例还提供了一种kubernetes负载均衡器扩容系统70,该系统用于实现上述实施例,图7是根据本申请实施例的kubernetes负载均衡器扩容系统的结构框图,如图7所示,该系统包括负载均衡监听器71;该负载均衡监听器71判断第一SLB的运行数据是否大于预警值,其中,该运行数据包括最大连接数和/或流量;若是,该负载均衡监听器71调用云服务商的API,向云服务商发送创建第二SLB的申请信息,其中,该第二SLB的规格大于该第一SLB;该第二SLB创建完成后,该负载均衡监听器71接收到该云服务商返回的参数,并将kubernetes服务配置信息中的第一SLB的ID替换成第二SLB的ID,其中,该返回的参数包括该第二SLB的ID;该kubernetes中的云服务商的插件为该第二SLB添加后端服务组;该负载均衡监听器71调用云服务商的API,向云服务商发送指令,该指令指示绑定该第二SLB与EIP。
[0075] 在其中一些实施例中,该负载均衡监听器71调用云服务商的API,向云服务商发送指令,该指令指示绑定该第二SLB与EIP包括:
[0076] 该负载均衡监听器71调用云服务商的API,向云服务商发送第一指令,该第一指令指示解除该第一SLB与EIP的绑定;
[0077] 该负载均衡监听器71调用云服务商的API,向云服务商发送第二指令,该第二指令指示绑定该第二SLB与EIP;
[0078] 该负载均衡监听器71调用云服务商的API,向云服务商发送第三指令,该第三指令指示删除该第一SLB。
[0079] 在其中一些实施例中,在该负载均衡监听器71判断第一SLB的运行数据是否大于预警值之前:
[0080] 该负载均衡监听器71监听该kubernetes的service,获取该第一SLB的ID,其中,该第一SLB为kubernetes正在使用中的SLB;
[0081] 该负载均衡监听器71调用该云服务商的API,查询得到该第一SLB的该运行数据。
[0082] 在其中一些实施例中,在预设时间段内,该负载均衡监听器71调用该云服务商的API,查询得到该第一SLB的运行数据之后,若是,该负载均衡监听器71向云服务商发送创建第二SLB的申请信息,其中,该第二SLB的规格大于该第一SLB之前:在相邻多个该预设时间段内,查询得到该第一SLB的多个运行数据,该负载均衡监听器71判断多个该运行数据是否均大于该预警值。
[0083] 在一个实施例中,图8是根据本申请实施例的电子设备的内部结构示意图,如图8所示,提供了一种电子设备,该电子设备可以是服务器,其内部结构图可以如图8所示。该电子设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的数据库用于存储数据。该电子设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种游戏数据推送的方法。
[0084] 本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0085] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
[0086] 本领域的技术人员应该明白,以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0087] 以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。