pod扩容方法、装置、节点及存储介质制造方法及图纸

技术编号:28672627 阅读:14 留言:0更新日期:2021-06-02 02:48
本发明专利技术涉及容器技术领域,提供了一种pod扩容方法、装置、节点及存储介质,所述方法包括:获取预设配置文件,其中,预设配置文件包括针对待扩容pod需要扩容的副本数;获取kubernetes集群中的节点个数,其中,节点个数小于副本数;依据预设配置文件、节点个数,将副本数对应的副本pod部署至节点个数对应的多个节点,其中,副本pod为待扩容pod的副本。本发明专利技术在节点个数小于副本数的情况下,也可以将副本数对应的副本pod部署至节点个数对应的多个节点,由此使pod扩容不受Kubernetes的节点个数的限制。

【技术实现步骤摘要】
pod扩容方法、装置、节点及存储介质
本专利技术涉及容器
,具体而言,涉及一种pod扩容方法、装置、节点及存储介质。
技术介绍
Kubernetes也称为k8s,是为容器服务而生的一个可移植容器的编排管理工具,也是当下最流行的开源容器编排系统,其灵活、方便的容器化应用深受广大开发者的欢迎。Kubernetes使用pod来管理一个容器化应用,pod也是k8s编排的最小粒度,为了更灵活地提供容器服务,Kubernetes提供了对pod进行扩容(增加pod的副本数)或者缩容(减少pod的副本数)的功能,但是Kubernetes要求扩容的副本数只能小于或者等于Kubernetes的节点个数,随着业务的请求量越来越大,受限于Kubernetes的节点个数的pod扩容远远无法满足业务需求。
技术实现思路
本专利技术的目的在于提供了一种pod扩容方法、装置、节点及存储介质,其能够使pod扩容不受Kubernetes的节点个数的限制。为了实现上述目的,本专利技术采用的技术方案如下:第一方面,本专利技术提供一种pod扩容方法,应用于kubernetes集群中的多个节点中的任意一个节点,所述方法包括:获取预设配置文件,其中,所述预设配置文件包括针对待扩容pod需要扩容的副本数;获取所述kubernetes集群中的节点个数,其中,所述节点个数小于所述副本数;依据所述预设配置文件、所述节点个数,将所述副本数对应的副本pod部署至所述节点个数对应的所述多个节点,其中,所述副本pod为所述待扩容pod的副本。第二方面,本专利技术提供一种pod扩容装置,应用于kubernetes集群中的多个节点中的任意一个节点,所述装置包括:获取模块,用于获取预设配置文件,其中,所述预设配置文件包括针对待扩容pod需要扩容的副本数;获取所述kubernetes集群中的节点个数,其中,所述节点个数小于所述副本数;部署模块,用于依据所述预设配置文件、所述节点个数,将所述副本数对应的副本pod部署至所述节点个数对应的所述多个节点,其中,所述副本pod为所述待扩容pod的副本。第三方面,本专利技术提供一种节点,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上述的pod扩容方法。第四方面,本专利技术提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述的pod扩容方法。相对于现有技术,本专利技术依据包括针对待扩容pod需要扩容的副本数的预设配置文件及kubernetes集群中的节点个数,即使节点个数小于副本数的情况下,也可以将副本数对应的副本pod部署至节点个数对应的多个节点,由此使pod扩容不受Kubernetes的节点个数的限制。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本专利技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1示出了本专利技术实施例提供的k8s集群的示意图。图2示出了本专利技术实施例提供的节点的方框示意图。图3示出了本专利技术实施例提供的一种pod扩容方法的流程图。图4示出了本专利技术实施例提供的副本pod部署的示例图。图5示出了本专利技术实施例提供的另一种pod扩容方法的流程图。图6示出了本专利技术实施例提供的pod扩容装置的方框示意图。图标:10-节点;11-处理器;12-存储器;13-总线;14-通信接口;20-master节点;30-node节点;100-pod扩容装置;110-获取模块;120-部署模块。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本专利技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本专利技术的实施例的详细描述并非旨在限制要求保护的本专利技术的范围,而是仅仅表示本专利技术的选定实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。在本专利技术的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该专利技术产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本专利技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本专利技术的限制。此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。需要说明的是,在不冲突的情况下,本专利技术的实施例中的特征可以相互结合。K8s作为当下最流行的开源容器编排系统,通常使用pod管理一个容器化应用,pod也是k8s编排的最小粒度,一个pod可以包含多个和单个容器,包含多个容器时,这些容器总是运行在同一个node节点上,因为一个pod不会跨多个node节点。pod将容器绑定在一起,并将它们作为一个单元进行管理。在pod中,多个容器可以同时进行一些密切相关的进程,但又保持着一定的隔离。每个pod都有自己的IP和独立的端口,每个pod都可以通过其他pod的IP地址和对应的端口实现相互访问。无论pod是否在同一个node节点上都能够相互通信。请参考图1,图1示出了本专利技术实施例提供的k8s集群的示意图,图1中,k8s集群包括master节点20和node节点30,master节点20与node节点30通信连接,k8s集群核心服务运行在master节点20上,pod运行在node节点30上。k8s通过controller管理pod,controller中定义了pod的部署特性,比如有几个副本,在什么样的node节点上运行等。为了满足不同的业务场景,Kubernetes提供了多种默认controller,包括Deployment、ReplicaSet、DaemonSet、StatefuleSet、Job等。默认controller实现对pod的编排控制,包括扩缩容控制。controller和pod是一对多的关系,一个controller可以控制多个同类型的pod,通过修改controller的副本数配置,就可以实现对pod数量的控制。在实际应用场景中,以statefulset为例,如果其管理的pod配置了主机端口,由于一个节点上面的主机端口不能够复用,导致在对statefulset的pod进行扩缩容的时候会受到k8s集群节点数量的限制,如果副本数大于了节点数量,超出的pod会处于本文档来自技高网...

【技术保护点】
1.一种pod扩容方法,其特征在于,应用于kubernetes集群中的多个节点中的任意一个节点,所述方法包括:/n获取预设配置文件,其中,所述预设配置文件包括针对待扩容pod需要扩容的副本数;/n获取所述kubernetes集群中的节点个数,其中,所述节点个数小于所述副本数;/n依据所述预设配置文件、所述节点个数,将所述副本数对应的副本pod部署至所述节点个数对应的所述多个节点,其中,所述副本pod为所述待扩容pod的副本。/n

【技术特征摘要】
1.一种pod扩容方法,其特征在于,应用于kubernetes集群中的多个节点中的任意一个节点,所述方法包括:
获取预设配置文件,其中,所述预设配置文件包括针对待扩容pod需要扩容的副本数;
获取所述kubernetes集群中的节点个数,其中,所述节点个数小于所述副本数;
依据所述预设配置文件、所述节点个数,将所述副本数对应的副本pod部署至所述节点个数对应的所述多个节点,其中,所述副本pod为所述待扩容pod的副本。


2.如权利要求1所述的pod扩容方法,其特征在于,所述依据所述预设配置文件、所述节点个数,将所述副本数对应的副本pod部署至所述节点个数对应的所述多个节点的步骤包括:
依据所述节点个数及所述副本数,确定部署轮数及每轮部署的目标节点信息;其中,所述目标节点信息包括目标节点及对应的目标节点数;
依据所述预设配置文件、将每轮部署的目标节点数的副本pod部署至对应的目标节点。


3.如权利要求2所述的pod扩容方法,其特征在于,所述依据所述节点个数及所述副本数,确定部署轮数及每轮部署的目标节点信息的步骤包括:
将所述副本数与所述节点个数进行整除运算,得到商和余数;
将所述商作为临时轮数;
将所述节点个数作为所述临时轮数中每轮部署的目标节点数,并将所述多个节点作为所述临时轮数中每轮部署的所述目标节点;
若所述余数为0,则将所述临时轮数作为所述部署轮数;
若所述余数不为0,则在所述临时轮数的基础上新增加一轮,将新增一轮后的所述临时轮数作为所述部署轮数,将所述余数作为新增轮的目标节点数,并从所述多个节点中确定所述余数个节点作为所述新增轮的目标节点。


4.如权利要求2所述的pod扩容方法,其特征在于,所述kubernetes集群包括api-server组件,所述预设配置文件包括预设个数的端口配置项,所述依据所述预设配置文件、将每轮部署的目标节点数的副本pod部署至对应的目标节点的步骤包括:
将任意一轮部署的目标节点数作为当前节点数、并将对应的目标节点作为当前节点;
生成所述预设个数的端口号;
根据所述端口号、所述预设配置文件及每一所述副本pod的标识,生成每一所述当前节点待部署的副本pod的pod配置文件;
调用所述api-server组件,将每一所述当前节点的pod配置文件发送至对应的当前节点,以使所述当前节点依据对应的pod配置文件在本地部署副本pod。


5.如权利要求4所述的pod扩容方法,其特征在于,所述...

【专利技术属性】
技术研发人员:李仁洪
申请(专利权)人:重庆紫光华山智安科技有限公司
类型:发明
国别省市:重庆;50

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

1