专利名称:一种根据kubernetes事件的节点自动扩容缩容方法及系统
专利类型:发明专利
专利申请号:CN202111457076.3
专利申请(专利权)人:新浪技术(中国)有限公司
权利人地址:北京市海淀区东北旺西路中关村软件园二期(西扩)N-1、N-2地块新浪总部科研楼5层501-502室
专利发明(设计)人:王洪磊,揭震,马超
专利摘要:本发明实施例提供一种根据kubernetes事件的节点自动扩容缩容方法及系统,包括:部署在kubernetes集群之上的事件监听器持续轮询并获取kubernetes集群的事件并传递给事件分析器;事件分析器根据各节点node的相关事件、所获取的各node的各硬件资源的使用量,在node层级触发节点扩容操作或节点缩容操作;根据各最小调度pod的相关事件、所获取各pod的各硬件资源的使用量,在pod层级触发节点扩容操作或节点缩容操作;当node层级、pod层级之一触发节点扩容操作或节点缩容操作时增加节点或者删除节点;为所增加节点进行安装软件、进行配置。根据kubenetes事件自动根据需要创建或者删除kubernetes节点,使管理kubernetes节点变的简单方便。
主权利要求:
1.一种根据kubernetes事件的节点自动扩容缩容方法,其特征在于,包括:
部署在kubernetes集群之上事件监听器持续轮询并获取kubernetes集群的事件,区分所获取kubernetes集群的事件所属的kubernetes资源;并将所获取kubernetes集群的事件、kubernetes集群的事件所属的kubernetes资源传递给事件分析器;所述kubernetes集群的事件包括:节点node的相关事件、最小调度pod的相关事件、node的硬件资源信息、pod的硬件资源信息;其中,一个node包括至少一个pod;
事件分析器根据kubernetes集群的事件、kubernetes集群的事件所属的kubernetes资源获取所涉及的各node的硬件资源信息内具有的各硬件资源的使用量,根据各node的相关事件、所获取的各node的各硬件资源的使用量,在node层级触发节点扩容操作或节点缩容操作;以及事件分析器根据kubernetes集群的事件、kubernetes集群的事件所属的kubernetes资源获取所涉及的各pod的硬件资源信息内具有的各硬件资源的使用量,根据各pod的相关事件、所获取的各pod的各硬件资源的使用量,在pod层级触发节点扩容操作或节点缩容操作;以及当node层级、pod层级之一触发节点扩容操作或节点缩容操作时,则发送节点增加或节点删除操作的指令;
根据节点增加或节点删除操作的指令增加节点或者删除节点;当增加节点完毕时为所增加节点进行软件安装和配置。
2.根据权利要求1所述的根据kubernetes事件的节点自动扩容缩容方法,其特征在于,所述事件分析器根据kubernetes集群的事件、kubernetes集群的事件所属的kubernetes资源获取所涉及的各node的各硬件资源的使用量,根据各node的相关事件、所获取的各node的各硬件资源的使用量,在node层级判断触发节点扩容操作或节点缩容操作,具体包括:事件分析器根据kubernetes集群的事件、kubernetes集群的事件所属的kubernetes资源获取所涉及的各node的各硬件资源的使用量,并汇总所有node的同一硬件资源的使用量得到所有node的各硬件资源的使用总量;针对每一硬件资源,计算所有node的该硬件资源的使用量在所有node的各硬件资源的使用总量的占比;当任一硬件资源的使用量在所有node的各硬件资源的使用总量的占比超过其预设使用上限时,自动触发节点扩容的操作;
当所有硬件资源的使用量在所有node的各硬件资源的使用总量的占比均低于其预设使用下限时,自动触发节点删除的操作;
针对任一node,当出现node宕机、node无法连接、node上的程序异常中之一时,自动触发节点删除的操作;
所述事件分析器根据kubernetes集群的事件、kubernetes集群的事件所属的kubernetes资源获取所涉及的各pod的各硬件资源的使用量,根据各pod的相关事件、所获取的各pod的各硬件资源的使用量,在pod层级判断触发节点扩容操作或节点缩容操作,具体包括:当任一pod业务突然变化时,事件分析器根据kubernetes集群的事件、kubernetes集群的事件所属的kubernetes资源获取所涉及的相应pod的各硬件资源的使用量,并根据该pod业务的变化计算该pod的各硬件资源的预计使用量;计算该pod的各硬件资源的预计使用量在该pod相应硬件资源现有量的占比;当任一硬件资源的预计使用量的占比超过其预设使用上限时,自动触发节点扩容的操作;当所有硬件资源的使用量在所有pod的各硬件资源的使用总量的占比低于其预设使用下限时,自动触发节点删除的操作;
针对任一pod,当出现pod宕机、pod无法调度中之一时,自动触发节点删除的操作。
3.根据权利要求1所述的根据kubernetes事件的节点自动扩容缩容方法,其特征在于,所述根据节点增加或节点删除操作的指令增加节点或者删除节点,具体包括:节点管理器接收事件分析器发送的节点增加或节点删除的指令,向节点申请管理器发出申请节点增加或节点删除的请求;
根据申请节点增加或节点删除的请求,节点申请管理器增加节点或者删除节点并返回结果;所返回的结果包括:节点的ip地址、节点的配置规格、节点的cpu大小、节点的内存大小;节点增加或者删除是否成功、节点所采用主机的类型;
当节点管理器向节点申请管理器申请节点增加成功,则通知节点配置器对增加节点进行配置;否则节点管理器发出申请节点增加失败的通知。
4.根据权利要求3所述的根据kubernetes事件的节点自动扩容缩容方法,其特征在于,所述当增加节点完毕时为所增加节点进行软件安装和配置,具体包括:当节点增加完毕后,通过部署在节点配置器的应用程序链接节点安装器,要求节点安装器执行为所增加节点安装软件的指令和为所增加节点进行配置的指令;并将所增加节点的配置数据记录到数据存储;其中所述配置数据包括:节点名称、节点ip、cpu数量、内存容量;节点上各软件的安装时间;节点的成本;
节点安装器执行节点配置器发送的为所增加节点安装软件的指令和为所增加节点进行配置的指令,根据为所增加节点安装软件的指令在所增加节点上安装指定软件,根据为所增加节点进行配置的指令为所增加节点进行相应配置。
5.根据权利要求4所述的根据kubernetes事件的节点自动扩容缩容方法,其特征在于,在所述节点配置器发送为所增加节点进行配置的指令之前,还包括:通过管理员界面对节点配置器的配置进行处理,完成对所增加节点所要安装软件的版本的修改、所要安装软件安装方式的修改、所要安装软件配置的修改。
6.一种根据kubernetes事件的节点自动扩容缩容系统,其特征在于,包括:
事件监听器,部署在kubernetes集群之上,用于持续轮询并获取kubernetes集群的事件,区分所获取kubernetes集群的事件所属的kubernetes资源;并将所获取kubernetes集群的事件、kubernetes集群的事件所属的kubernetes资源传递给事件分析器;所述kubernetes集群的事件包括:节点node的相关事件、最小调度pod的相关事件、node的硬件资源信息、pod的硬件资源信息;其中,一个node包括至少一个pod;
事件分析器,用于根据kubernetes集群的事件、kubernetes集群的事件所属的kubernetes资源获取所涉及的各node的硬件资源信息内具有的各硬件资源的使用量,根据各node的相关事件、所获取的各node的各硬件资源的使用量,在node层级触发节点扩容操作或节点缩容操作;以及根据kubernetes集群的事件、kubernetes集群的事件所属的kubernetes资源获取所涉及的各pod的硬件资源信息内具有的各硬件资源的使用量,根据各pod的相关事件、所获取的各pod的各硬件资源的使用量,在pod层级触发节点扩容操作或节点缩容操作;以及当node层级、pod层级之一触发节点扩容操作或节点缩容操作时,则发送节点增加或节点删除操作的指令;
节点创建单元,用于根据节点增加或节点删除操作的指令增加节点或者删除节点;当增加节点完毕时为所增加节点进行软件安装和配置。
7.根据权利要求6所述的根据kubernetes事件的节点自动扩容缩容系统,其特征在于,所述事件分析器包括node层级扩容缩容触发子单元和pod层级扩容缩容触发子单元;
其中,所述node层级扩容缩容触发子单元具体用于:
根据kubernetes集群的事件、kubernetes集群的事件所属的kubernetes资源获取所涉及的各node的各硬件资源的使用量,并汇总所有node的同一硬件资源的使用量得到所有node的各硬件资源的使用总量;针对每一硬件资源,计算所有node的该硬件资源的使用量在所有node的各硬件资源的使用总量的占比;当任一硬件资源的使用量在所有node的各硬件资源的使用总量的占比超过其预设使用上限时,自动触发节点扩容的操作;当所有硬件资源的使用量在所有node的各硬件资源的使用总量的占比均低于其预设使用下限时,自动触发节点删除的操作;
针对任一node,当出现node宕机、node无法连接、node上的程序异常中之一时,自动触发节点删除的操作;
所述pod层级扩容缩容触发子单元,具体用于:
当任一pod业务突然变化时,根据kubernetes集群的事件、kubernetes集群的事件所属的kubernetes资源获取所涉及的相应pod的各硬件资源的使用量,并根据该pod业务的变化计算该pod的各硬件资源的预计使用量;计算该pod的各硬件资源的预计使用量在该pod相应硬件资源现有量的占比;当任一硬件资源的预计使用量的占比超过其预设使用上限时,自动触发节点扩容的操作;当所有硬件资源的使用量在所有pod的各硬件资源的使用总量的占比低于其预设使用下限时,自动触发节点删除的操作;
针对任一pod,当出现pod宕机、pod无法调度中之一时,自动触发节点删除的操作。
8.根据权利要求6所述的根据kubernetes事件的节点自动扩容缩容系统,其特征在于,所述节点创建单元包括节点管理器、节点申请管理器,其中:所述节点管理器,用于接收事件分析器发送的节点增加或节点删除的指令,向节点申请管理器发出申请节点增加或节点删除的请求;
所述节点申请管理器,用于根据申请节点增加或节点删除的请求,增加节点或者删除节点并返回结果;所返回的结果包括:节点的ip地址、节点的配置规格、节点的cpu大小、节点的内存大小;节点增加或者删除是否成功、节点所采用主机的类型;
所述节点管理器,还用于当其向节点申请管理器申请节点增加成功,则通知节点配置器对增加节点进行配置;否则发出申请节点增加失败的通知。
9.根据权利要求8所述的根据kubernetes事件的节点自动扩容缩容系统,其特征在于,所述节点创建单元还包括节点配置器和节点安装器;其中:所述节点配置器,用于当节点增加完毕后,通过部署在其内的应用程序链接节点安装器,要求节点安装器执行为所增加节点安装软件的指令和为所增加节点进行配置的指令;
并将所增加节点的配置数据记录到数据存储;其中所述配置数据包括:节点名称、节点ip、cpu数量、内存容量;节点上各软件的安装时间;节点的成本;
所述节点安装器,用于执行节点配置器发送的为所增加节点安装软件的指令和为所增加节点进行配置的指令,根据为所增加节点安装软件的指令在所增加节点上安装指定软件,根据为所增加节点进行配置的指令为所增加节点进行相应配置。
10.根据权利要求9所述的根据kubernetes事件的节点自动扩容缩容系统,其特征在于,所述节点配置器,还用于:在发送为所增加节点进行配置的指令之前通过管理员界面对其配置进行处理,完成对所增加节点所要安装软件的版本的修改、所要安装软件安装方式的修改、所要安装软件配置的修改。 说明书 : 一种根据kubernetes事件的节点自动扩容缩容方法及系统技术领域[0001] 本发明涉及云计算领域,具体涉及一种根据kubernetes事件的节点自动扩容缩容方法及系统。背景技术[0002] 在业务迁移容器的过程中,需要使用kubernetes编排工具部署容器服务,现实中线上有很多的kubernetes集群,部署很多的服务,各种各样类型的服务,有点服务消耗的cpu较多,有的服务消耗的内存较多。[0003] 在一些互联网应用的场景下,比如推送服务、秒杀服务等等,在某个瞬间会有很多的流量进入到服务中,此时服务需要消耗大量的cpu和内存资源。[0004] kubernetes集群的节点数量有限,在一些场景下需要尽快的扩充节点以保障服务能快速的创建业务容器,保障服务的可用和稳定。在业务流量高峰下降的情况下,需要缩容节点,以节省费用成本。目前通常使用一些配置管理工具或者软件管理工具手动的部署新的kubernetes节点,然后手工加入到kubernetes集群中。[0005] 在实现本发明过程中,申请人发现现有技术中至少存在如下问题:1、只能使用配置管理工具或者一些软件安装节点;2、只能手动的加入已经初始化好的节点;2、不能监听kubernetes集群的事件,根据实际需要扩容节点或者缩容节点。发明内容[0006] 本发明实施例提供一种根据kubernetes事件的节点自动扩容缩容方法及系统,根据kubenetes事件自动根据需要创建或者删除kubernetes节点,使管理kubernetes节点变的简单方便。[0007] 为达上述目的,一方面,本发明实施例提供一种根据kubernetes事件的节点自动扩容缩容方法,包括:[0008] 部署在kubernetes集群之上事件监听器持续轮询并获取kubernetes集群的事件,区分所获取kubernetes集群的事件所属的kubernetes资源;并将所获取kubernetes集群的事件、kubernetes集群的事件所属的kubernetes资源传递给事件分析器;所述kubernetes集群的事件包括:节点node的相关事件、最小调度pod的相关事件、node的硬件资源信息、pod的硬件资源信息;其中,一个node包括至少一个pod;[0009] 事件分析器根据kubernetes集群的事件、kubernetes集群的事件所属的kubernetes资源获取所涉及的各node的硬件资源信息内具有的各硬件资源的使用量,根据各node的相关事件、所获取的各node的各硬件资源的使用量,在node层级触发节点扩容操作或节点缩容操作;以及事件分析器根据kubernetes集群的事件、kubernetes集群的事件所属的kubernetes资源获取所涉及的各pod的硬件资源信息内具有的各硬件资源的使用量,根据各pod的相关事件、所获取的各pod的各硬件资源的使用量,在pod层级触发节点扩容操作或节点缩容操作;以及[0010] 当node层级、pod层级之一触发节点扩容操作或节点缩容操作时,则发送节点增加或节点删除操作的指令;[0011] 根据节点增加或节点删除操作的指令增加节点或者删除节点;当增加节点完毕时为所增加节点进行软件安装和配置。[0012] 另一方面,本发明实施例提供一种根据kubernetes事件的节点自动扩容缩容系统,包括:[0013] 事件监听器,部署在kubernetes集群之上,用于持续轮询并获取kubernetes集群的事件,区分所获取kubernetes集群的事件所属的kubernetes资源;并将所获取kubernetes集群的事件、kubernetes集群的事件所属的kubernetes资源传递给事件分析器;所述kubernetes集群的事件包括:节点node的相关事件、最小调度pod的相关事件、node的硬件资源信息、pod的硬件资源信息;其中,一个node包括至少一个pod;[0014] 事件分析器,用于根据kubernetes集群的事件、kubernetes集群的事件所属的kubernetes资源获取所涉及的各node的硬件资源信息内具有的各硬件资源的使用量,根据各node的相关事件、所获取的各node的各硬件资源的使用量,在node层级触发节点扩容操作或节点缩容操作;以及根据kubernetes集群的事件、kubernetes集群的事件所属的kubernetes资源获取所涉及的各pod的硬件资源信息内具有的各硬件资源的使用量,根据各pod的相关事件、所获取的各pod的各硬件资源的使用量,在pod层级触发节点扩容操作或节点缩容操作;以及[0015] 当node层级、pod层级之一触发节点扩容操作或节点缩容操作时,则发送节点增加或节点删除操作的指令;[0016] 节点创建单元,用于根据节点增加或节点删除操作的指令增加节点或者删除节点;当增加节点完毕时为所增加节点进行软件安装和配置。[0017] 上述技术方案具有如下有益效果:根据kubenetes事件自动根据需要创建或者删除kubernetes节点,使管理kubernetes节点变的简单方便。附图说明[0018] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。[0019] 图1是本发明实施例的一种根据kubernetes事件的节点自动扩容缩容方法的流程图;[0020] 图2是本发明实施例的一种根据kubernetes事件的节点自动扩容缩容系统的结构图;[0021] 图3是本发明实施例的另一根据kubernetes事件的节点自动扩容缩容系统的结构图。具体实施方式[0022] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[0023] 如图1所示,结合本发明的实施例,提供一种根据kubernetes事件的节点自动扩容缩容方法,包括:[0024] S101:部署在kubernetes集群之上事件监听器持续轮询并获取kubernetes集群的事件,区分所获取kubernetes集群的事件所属的kubernetes资源;并将所获取kubernetes集群的事件、kubernetes集群的事件所属的kubernetes资源传递给事件分析器;所述kubernetes集群的事件包括:节点node的相关事件、最小调度pod的相关事件、node的硬件资源信息、pod的硬件资源信息;其中,一个node包括至少一个pod;[0025] S102:事件分析器根据kubernetes集群的事件、kubernetes集群的事件所属的kubernetes资源获取所涉及的各node的硬件资源信息内具有的各硬件资源的使用量,根据各node的相关事件、所获取的各node的各硬件资源的使用量,在node层级触发节点扩容操作或节点缩容操作;以及事件分析器根据kubernetes集群的事件、kubernetes集群的事件所属的kubernetes资源获取所涉及的各pod的硬件资源信息内具有的各硬件资源的使用量,根据各pod的相关事件、所获取的各pod的各硬件资源的使用量,在pod层级触发节点扩容操作或节点缩容操作;以及[0026] 当node层级、pod层级之一触发节点扩容操作或节点缩容操作时,则发送节点增加或节点删除操作的指令;[0027] S103:根据节点增加或节点删除操作的指令增加节点或者删除节点;当增加节点完毕时为所增加节点进行软件安装和配置。[0028] 优选地,所述node的相关事件包括:node宕机、node无法连接、node上的程序异常、node的各硬件资源的预设使用上限、node的各硬件资源的预设使用下限;所述node的硬件资源信息包括:各硬件资源的使用量、节点拥有的cpu总容量、节点拥有的总内存容量,所述硬件资源包括内存、磁盘和带宽;[0029] 所述pod的相关事件:pod宕机、pod无法调度、pod的各硬件资源的预设使用上限、pod的各硬件资源的预设使用下限;所述pod的硬件资源信息包括:各硬件资源的使用量、pod所使用的cpu量、pod拥有的总内存容量;[0030] 在步骤102中,所述事件分析器根据kubernetes集群的事件、kubernetes集群的事件所属的kubernetes资源获取所涉及的各node的各硬件资源的使用量,根据各node的相关事件、所获取的各node的各硬件资源的使用量,在node层级判断触发节点扩容操作或节点缩容操作,具体包括:[0031] 事件分析器根据kubernetes集群的事件、kubernetes集群的事件所属的kubernetes资源获取所涉及的各node的各硬件资源的使用量,并汇总所有node的同一硬件资源的使用量得到所有node的各硬件资源的使用总量;针对每一硬件资源,计算所有node的该硬件资源的使用量在所有node的各硬件资源的使用总量的占比;当任一硬件资源的使用量在所有node的各硬件资源的使用总量的占比超过其预设使用上限时,自动触发节点扩容的操作;当所有硬件资源的使用量在所有node的各硬件资源的使用总量的占比均低于其预设使用下限时,自动触发节点删除的操作;[0032] 针对任一node,当出现node宕机、node无法连接、node上的程序异常中之一时,自动触发节点删除的操作;[0033] 在步骤102中,所述事件分析器根据kubernetes集群的事件、kubernetes集群的事件所属的kubernetes资源获取所涉及的各pod的各硬件资源的使用量,根据各pod的相关事件、所获取的各pod的各硬件资源的使用量,在pod层级判断触发节点扩容操作或节点缩容操作,具体包括:[0034] 当任一pod业务突然变化时,事件分析器根据kubernetes集群的事件、kubernetes集群的事件所属的kubernetes资源获取所涉及的相应pod的各硬件资源的使用量,并根据该pod业务的变化计算该pod的各硬件资源的预计使用量;计算该pod的各硬件资源的预计使用量在该pod相应硬件资源现有量的占比;当任一硬件资源的预计使用量的占比超过其预设使用上限时,自动触发节点扩容的操作;当所有硬件资源的使用量在所有pod的各硬件资源的使用总量的占比低于其预设使用下限时,自动触发节点删除的操作;[0035] 针对任一pod,当出现pod宕机、pod无法调度中之一时,自动触发节点删除的操作。[0036] 优选地,在步骤103中,所述根据节点增加或节点删除操作的指令增加节点或者删除节点,具体包括:[0037] 节点管理器接收事件分析器发送的节点增加或节点删除的指令,向节点申请管理器发出申请节点增加或节点删除的请求;[0038] 根据申请节点增加或节点删除的请求,节点申请管理器增加节点或者删除节点并返回结果;所返回的结果包括:节点的ip地址、节点的配置规格、节点的cpu大小、节点的内存大小;节点增加或者删除是否成功、节点所采用主机的类型;[0039] 当节点管理器向节点申请管理器申请节点增加成功,则通知节点配置器对增加节点进行配置;否则节点管理器发出申请节点增加失败的通知。[0040] 优选地,在步骤103中,所述当增加节点完毕时为所增加节点进行软件安装和配置,具体包括:[0041] 当节点增加完毕后,通过部署在节点配置器的应用程序链接节点安装器,要求节点安装器执行为所增加节点安装软件的指令和为所增加节点进行配置的指令;并将所增加节点的配置数据记录到数据存储;其中所述配置数据包括:节点名称、节点ip、cpu数量、内存容量;节点上各软件的安装时间;节点的成本;[0042] 节点安装器执行节点配置器发送的为所增加节点安装软件的指令和为所增加节点进行配置的指令,根据为所增加节点安装软件的指令在所增加节点上安装指定软件,根据为所增加节点进行配置的指令为所增加节点进行相应配置。[0043] 优选地,在步骤103中,在所述节点配置器发送为所增加节点进行配置的指令之前,还包括:[0044] 通过管理员界面对节点配置器的配置进行处理,完成对所增加节点所要安装软件的版本的修改、所要安装软件安装方式的修改、所要安装软件配置的修改。[0045] 如图2所示,结合本发明的实施例,提供一种根据kubernetes事件的节点自动扩容缩容系统,包括:[0046] 事件监听器21,部署在kubernetes集群之上,用于持续轮询并获取kubernetes集群的事件,区分所获取kubernetes集群的事件所属的kubernetes资源;并将所获取kubernetes集群的事件、kubernetes集群的事件所属的kubernetes资源传递给事件分析器;所述kubernetes集群的事件包括:节点node的相关事件、最小调度pod的相关事件、node的硬件资源信息、pod的硬件资源信息;其中,一个node包括至少一个pod;[0047] 事件分析器22,用于根据kubernetes集群的事件、kubernetes集群的事件所属的kubernetes资源获取所涉及的各node的硬件资源信息内具有的各硬件资源的使用量,根据各node的相关事件、所获取的各node的各硬件资源的使用量,在node层级触发节点扩容操作或节点缩容操作;以及根据kubernetes集群的事件、kubernetes集群的事件所属的kubernetes资源获取所涉及的各pod的硬件资源信息内具有的各硬件资源的使用量,根据各pod的相关事件、所获取的各pod的各硬件资源的使用量,在pod层级触发节点扩容操作或节点缩容操作;以及[0048] 当node层级、pod层级之一触发节点扩容操作或节点缩容操作时,则发送节点增加或节点删除操作的指令;[0049] 节点创建单元23,用于根据节点增加或节点删除操作的指令增加节点或者删除节点;当增加节点完毕时为所增加节点进行软件安装和配置。[0050] 优选地,所述node的相关事件包括:node宕机、node无法连接、node上的程序异常、node的各硬件资源的预设使用上限、node的各硬件资源的预设使用下限;所述node的硬件资源信息包括:各硬件资源的使用量、节点拥有的cpu总容量、节点拥有的总内存容量,所述硬件资源包括内存、磁盘和带宽;[0051] 所述pod的相关事件:pod宕机、pod无法调度、pod的各硬件资源的预设使用上限、pod的各硬件资源的预设使用下限;所述pod的硬件资源信息包括:各硬件资源的使用量、pod所使用的cpu量、pod拥有的总内存容量;[0052] 所述事件分析器22包括node层级扩容缩容触发子单元221和pod层级扩容缩容触发子单元222;其中,所述node层级扩容缩容触发子单元221具体用于:[0053] 根据kubernetes集群的事件、kubernetes集群的事件所属的kubernetes资源获取所涉及的各node的各硬件资源的使用量,并汇总所有node的同一硬件资源的使用量得到所有node的各硬件资源的使用总量;针对每一硬件资源,计算所有node的该硬件资源的使用量在所有node的各硬件资源的使用总量的占比;当任一硬件资源的使用量在所有node的各硬件资源的使用总量的占比超过其预设使用上限时,自动触发节点扩容的操作;当所有硬件资源的使用量在所有node的各硬件资源的使用总量的占比均低于其预设使用下限时,自动触发节点删除的操作;[0054] 针对任一node,当出现node宕机、node无法连接、node上的程序异常中之一时,自动触发节点删除的操作;[0055] 所述pod层级扩容缩容触发子单元222,具体用于:[0056] 当任一pod业务突然变化时,根据kubernetes集群的事件、kubernetes集群的事件所属的kubernetes资源获取所涉及的相应pod的各硬件资源的使用量,并根据该pod业务的变化计算该pod的各硬件资源的预计使用量;计算该pod的各硬件资源的预计使用量在该pod相应硬件资源现有量的占比;当任一硬件资源的预计使用量的占比超过其预设使用上限时,自动触发节点扩容的操作;当所有硬件资源的使用量在所有pod的各硬件资源的使用总量的占比低于其预设使用下限时,自动触发节点删除的操作;[0057] 针对任一pod,当出现pod宕机、pod无法调度中之一时,自动触发节点删除的操作。[0058] 优选地,节点创建单元23包括节点管理器231和节点申请管理器232,其中:[0059] 所述节点管理器231,用于接收事件分析器22发送的节点增加或节点删除的指令,向节点申请管理器232发出申请节点增加或节点删除的请求;[0060] 所述节点申请管理器232,用于根据申请节点增加或节点删除的请求,增加节点或者删除节点并返回结果;所返回的结果包括:节点的ip地址、节点的配置规格、节点的cpu大小、节点的内存大小;节点增加或者删除是否成功、节点所采用主机的类型;[0061] 所述节点管理器231,用于当其向节点申请管理器232申请节点增加成功,则通知节点配置器对增加节点进行配置;否则发出申请节点增加失败的通知。[0062] 优选地,所述节点创建单元23还包括节点配置器233和节点安装器234;其中:[0063] 所述节点配置器233,用于当节点增加完毕后,通过部署在其内的应用程序链接节点安装器234,要求节点安装器234执行为所增加节点安装软件的指令和为所增加节点进行配置的指令;并将所增加节点的配置数据记录到数据存储;其中所述配置数据包括:节点名称、节点ip、cpu数量、内存容量;节点上各软件的安装时间;节点的成本;[0064] 所述节点安装器234,用于执行节点配置器233发送的为所增加节点安装软件的指令和为所增加节点进行配置的指令,根据为所增加节点安装软件的指令在所增加节点上安装指定软件,根据为所增加节点进行配置的指令为所增加节点进行相应配置。[0065] 优选地,所述节点配置器233,还用于:[0066] 在发送为所增加节点进行配置的指令之前,通过管理员界面对其配置进行处理,完成对所增加节点所要安装软件的版本的修改、所要安装软件安装方式的修改、所要安装软件配置的修改。[0067] 本发明所取得的有益效果如下:[0068] 1、根据kubenetes事件自动根据需要创建或者删除kubernetes节点;[0069] 2、自动给节点安装相关软件,安装完成之后自动进行可用性检查;[0070] 3、使管理kubernetes节点变的简单方便。[0071] 下面结合具体的应用实例对本发明实施例上述技术方案进行详细说明,实施过程中没有介绍到的技术细节,可以参考前文的相关描述。[0072] 本发明涉及的技术术语和缩略词释义如下:[0073] Kubernetes:一种容器编排管理工具[0074] kubernetes集群:包含了kubernetes这种软件的所有的组件和运行这些组件的服务器。[0075] kubernetes之上的应用:使用kubernetes部署的服务,如nginx服务,mysql服务等等。[0076] kubernetes资源:比如deployment,server,ingress等等,这些是用来在kubernetes之上部署业务用的。[0077] 容器:容器映像是一个软件的轻量级独立可执行软件包,包含运行它所需的一切:代码,运行时,系统工具,系统库,设置等等,容器是容器影响中程序的运行状态。[0078] 本发明为一种根据kubernetes事件的节点自动扩容缩容系统和方法,其中,(节点是指node)。1,可以监听kubernetes事件,判断事件类型,自动增加或者删除节点。2,自动给kubernetes节点安装相关软件,安装完成之后自动进行可用性检查。本系统包含多个组件,每个组件负责一部分功能,如图3所示:[0079] a.Kubernetes:[0080] kubernetes是运行业务的一个整体,包含多个实体服务器和一组用来管理容器的和kubernetes节点的软件,在kubernetes之上部署了本系统的事件监听器,kubernetes提供了一种命令为事件(event)的数据,使用kubernetes的一方可以通过kubernetes官方提供的链接工具或者程序包链接到kubernetes获取需要的事件信息或者kubernetes其他的资源信息,比如本系统使用到的node节点的cpu使用信息,内存使用信息,磁盘使用信息,带宽使用信息等,本系统使用到的pod的cpu使用信息,内存使用信息,和存储卷使用信息,根据这些信息本系统可以综合,完成节点的管理操作。[0081] b.事件监听器:[0082] 事件监听器是一个利用kubernetes的管理工具开发的一个程序,部署在kubernetes集群之上的,程序启动之后,持续的轮询获取kubernetes集群的node相关的事件,pod相关的事件,node相关的信息,pod相关的信息。[0083] node相关的事件包括:node节点宕机,node节点cpu和内存使用超过设定的上限(是指node的cpu预设使用上限、node内存预设使用上限),node无法连接,node节点上的程序异常等。[0084] pod相关的事件:pod宕机,pod的cpu和内存使用超过了上限(是pod的cpu预设使用上限、pod内存预设使用上限),pod无法调度等等。[0085] node相关的信息包括:内存使用信息,磁盘使用信息,带宽使用信息,节点拥有的总cpu数量,总内存容量等。[0086] pod相关的信息包括:内存使用信息,磁盘使用信息,带宽使用信息,pod使用申请的cpu总量,申请的内存总量。[0087] 如图3的步骤1所示,事件监听器启动之后持续的获取kubernetes事件,并区分这些事件属于什么资源;将上述所有信息并传递给事件分析器。[0088] 一个节点node包括多个pod,且node相关的信息是根据pod相关的信息计算得来的。[0089] c.事件分析器:[0090] 事件分析器组件根据事件监听器传递过来的事件,分析。[0091] 分析的过程如下:[0092] 1,检查node的cpu,内存等的使用情况(获取真实的消耗的cpu情况,内存情况磁盘情况等),汇总所有node的cpu和内存等的使用数据,然后计算已经使用的总量和node拥有的总量的相除的百分比,如果超过设定的值,则触发扩容节点(node)操作,提交给节点管理器,进行下一步的操作[0093] 相反的如果低于设定的值,则出发节点的删除操作,提交给节点管理器。[0094] 2,检查pod的使用情况(是指获取pod的cpu内存磁盘网络等的使用情况),如果事件监听器监听到发生了业务pod突然增加的情况并传递给事件分析器,事件分析器计算pod预计的使用cpu和内存的数量,增加的量超过了设定的阈值,则触发节点(node)扩容操作,提交给节点管理器[0095] 相反的进行节点的删除操作,提交给节点管理器。[0096] 3.检查pod的事件,比如pending(等待),检查pending是否是因为没有足够的cpu或者内存资源导致的无法启动。[0097] 如图3步骤2所示[0098] pod和pod任何一个都可以触发节点扩容。其中;pod会使用node上的cpu。node是真实的机器。pod消耗的多申请的多,就会自动的去申请node,保障够用。如果pod没有多申请,但是存量的pod消耗变多,node的负载增加,也会自动申请node加入进来。有的时候pod的申请量很低,但是使用量会很高。[0099] d.节点管理器:[0100] 节点管理器接收到节点的增加和删除操作的指令,进行节点的增加和删除动作,需要处理以下的逻辑:[0101] 1,如图3步骤4所示,首先向节点申请管理(也称为节点申请管理服务、节点申请管理器)申请创建节点,例如申请虚拟机,云主机等,申请完成后,等待申请结果,如果申请成功则继续执行下面的工作,否则通知管理员,节点申请失败,无法扩容[0102] 2,节点管理器成功申请到节点之后,提交到节点配置器,通知节点配置器,需要对哪些节点进行配置。[0103] e.节点申请管理:[0104] 接收节点管理器的创建节点的请求,创建主机(即节点node),返回主机创建的结果其中,创建包括增加节点node和删除节点node。[0105] 结果包括:[0106] 1,主机的ip地址,主机的配置规格,cpu是多少,内存是多少[0107] 2,主机创建是否成功,主机是虚拟机还是云主机。[0108] f.节点配置器:[0109] 如图3步骤5所示[0110] 节点配置器上部署了应用程序,链接节点安装器,要求节点安装器需要执行的安装指令和配置指令,比如要求安装kubelet软件,docker软件,配置docker的数据目录等等[0111] 如图3步骤6所示[0112] 节点配置器对扩容的节点记录到数据存储,记录的内容包括:[0113] 节点的名称,ip,cpu数量,内存容量[0114] 节点安装软件的时间[0115] 节点的成本(申请节点花了多少钱)[0116] 如图3步骤8所示[0117] 管理员界面对节点配置器的配置进行增删改查,配置指的是发送给节点安装器的指令,通过对配置的变更,完成节点安装的软件的版本的修改,安装方式的修改,和软件配置的修改,适应变化。[0118] g.节点安装器:[0119] 节点安装器执行节点配置器发送的指令,对节点进行安装操作,即是执行节点配置器要求的需要执行的指令,执行这些指令即可完成安装。[0120] 安装成功之后,进行检查,检查安装是否成功,并向节点配置器报告安装是否更成功。[0121] 如图3步骤5所示。[0122] h.数据存储:[0123] 存储节点配置器发送的数据[0124] i.管理员界面:[0125] 与节点配置器交互,对节点配置器的配置(指令)进行增删改查。[0126] 本发明所取得的有益效果如下:[0127] 1、根据kubenetes事件自动根据需要创建或者删除kubernetes节点;[0128] 2、自动给节点安装相关软件,安装完成之后自动进行可用性检查;[0129] 3、使管理kubernetes节点变的简单方便。[0130] 应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。[0131] 在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要比清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。[0132] 为使本领域内的任何技术人员能够实现或者使用本发明,上面对所公开实施例进行了描述。对于本领域技术人员来说;这些实施例的各种修改方式都是显而易见的,并且本文定义的一般原理也可以在不脱离本公开的精神和保护范围的基础上适用于其它实施例。因此,本公开并不限于本文给出的实施例,而是与本申请公开的原理和新颖性特征的最广范围相一致。[0133] 上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。[0134] 本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrativelogicalblock),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrativecomponents),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。[0135] 本发明实施例中所描述的各种说明性的逻辑块,或单元都可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。[0136] 本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD‑ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。[0137] 在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于RAM、ROM、EEPROM、CD‑ROM或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、DVD、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。[0138] 以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
专利地区:北京
专利申请日期:2021-12-02
专利公开日期:2024-07-26
专利公告号:CN114296909B