CN117850971A - 一种Kubernetes虚拟节点上容器状态同步的改进方法和系统 - Google Patents
一种Kubernetes虚拟节点上容器状态同步的改进方法和系统 Download PDFInfo
- Publication number
- CN117850971A CN117850971A CN202311722389.6A CN202311722389A CN117850971A CN 117850971 A CN117850971 A CN 117850971A CN 202311722389 A CN202311722389 A CN 202311722389A CN 117850971 A CN117850971 A CN 117850971A
- Authority
- CN
- China
- Prior art keywords
- pod
- virtual
- kubernetes
- state
- container
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 230000008569 process Effects 0.000 claims abstract description 16
- 230000008859 change Effects 0.000 claims abstract description 14
- 230000007246 mechanism Effects 0.000 claims abstract description 10
- 230000007704 transition Effects 0.000 claims description 6
- 230000006978 adaptation Effects 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000004519 manufacturing process Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及Serverless容器技术领域,是一种Kubernetes虚拟节点上容器状态同步的改进方法和系统,具体方法包括:在底层的每个Pod中注入一个Agent,当Agent运行起来后,可以直接向上面的Kube‑Apiserver上报Pod的状态;识别底层Pod的状态,并通过Virtual Kubelet轮询机制来保证底层Pod的状态;根据底层集群中Pod的启动过程,把虚拟节点中的PodList拆分成多个队列;在虚拟节点中,把不同阶段的Pod放到到对应的队列中;通过Reconciler一次性查询本队列所有Pod的状态,并识别pod状态,执行改变策略;提取每条队列的轮询间隔时间,并对间隔时间进行动态自适应调整。本发明解决了现有技术中,轮询过程中周期性地调用Provider的API轮询每个容器的状态的时间间隔设置不合适的问题。
Description
技术领域
本发明涉及Serverless容器技术领域,是一种Kubernetes虚拟节点上容器状态同步的改进方法和系统。
背景技术
Virtual Kubelet是Kubernetes kubelet的一种实现,它实现了kubelet的部分能力。从kube-apiserver的角度来看,Virtual Kubelet看起来像普通的kubelet,但其关键区别在于virtual kubelet没有在其所在的宿主机上调试容器,而是调用其他地方的API创建容器。
在现有已公开的发明技术中,如申请公开号为CN115185628A的专利公开了一种基于容器实例实现集群虚拟节点的方法及系统,所述的方法通过virtual kubelet创建虚拟节点,监听到pod的操作调用容器实例服务对应方法,创建svc从而实现外部访问容器实例上的pod。
上述专利底层Pod的状态需通过Agent向上层Kube-Apiserver上报,这需要进行网络通信,可能会产生额外的网络开销和延迟。
发明内容
本部分的目的在于概述本发明的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本申请的说明书摘要和发明名称中可能会做些简化或省略以避免使本部分、说明书摘要和发明名称的目的模糊,而这种简化或省略不能用于限制本发明的范围。
本发明所要解决的技术问题是针对现有技术中,都是周期性地调用Provider的API轮询每个容器的状态。这个轮询的时间间隔,没有合适的值。间隔设置过大,会导致虚拟节点中的容器状态更新延迟,从业务上看就是Serverless集群的容器启动慢。间隔设置过小,会导致Provider的API压力增加,导致Provider能支撑的虚拟节点数量减少。
为了达到上述目的,本发明一种Kubernetes虚拟节点上容器状态同步的改进方法的技术方案包括如下步骤:
S1:在底层的每个Pod中注入一个Agent,当Agent运行起来后,可以直接向上面的Kube-Apiserver上报Pod的状态;
S2:识别底层Pod的状态,并通过Virtual Kubelet轮询机制来保证底层Pod的状态;
S3:根据底层集群中Pod的启动过程,把虚拟节点中的PodList拆分成多个队列;
S4:在虚拟节点中,把不同阶段的Pod放到到对应的队列中;
S5:通过Reconciler一次性查询本队列所有Pod的状态,并识别pod状态,执行改变策略;
S6:提取每条队列的轮询间隔时间,并对间隔时间进行动态自适应调整。
具体地,所述S1执行的前提环境包括:已经有自己的容器实例产品,即Provider,并且提供了CreatePod、DeletePod、GetPodListStatus等API接口,供virtual kubelet调用。
具体地,S1包括如下具体步骤:
S11:开发虚拟节点的功能,并编译成二进制文件,制作docker镜像;
S12:创建一个Kubernetes集群;
S13:利用镜像部署虚拟节点,注册到Kubernetes集群中;
S14:在Kubernetes集群中,创建一系列Pod,把它调度到虚拟节点上。
具体地,S2中,所述Virtual Kubelet轮询机制包括如下具体步骤:
S21:注册自身为一个节点,并在Kubernetes API服务器上创建对应的节点对象;
S22:Virtual Kubelet开始轮询Kubernetes API服务器,以获取当前分配给它的Pod;
S23:查询Kubernetes API服务器上的调度器绑定列表;
S24:若有Pod被分配给Virtual Kubelet,它会为这些Pod生成对应的容器实例,并在第三方容器编排平台上创建相应的容器;
S25:当容器创建成功后,Virtual Kubelet会向KubernetesAPI服务器报告Pod的状态,并更新节点的状态;
S26:如果Pod的状态发生变化,Virtual Kubelet会相应地更新Kubernetes API服务器上的Pod状态;
S27:Virtual Kubelet在时间间隔内,重复执行上述步骤。
具体地,S26中,所述Pod的状态的变化包括:完成、失败或异常。
具体地,S3中,所述底层集群中Pod的启动过程包括:创建中(Pending)、调度中(Scheduling)、镜像拉取中(ImagePulling)、启动中(Starting)、运行中(Running)。
具体地,S5中,所述识别pod状态,执行改变策略包括:当本队列的Pod的状态发生改变时,把它从本队列移出,放入到对应的队列中去。
具体地,S6中,所述每条队列的轮询间隔时间包括:Ti={T1,T2...Tn},其中,由于每个阶段的Pod转换到下一个阶段的时间会不一样,所以每条队列的轮询间隔时间也是不一样。
具体地,S6中,动态适应性调整包括:
S61:计算时间间隔为x内,本队列的Pod转换到下一阶段的平均时间计算公式为:/>
S62:根据平均时间对轮询间隔时间进行动态适应性调整。
S63:当底层集群的真实Pod的状态发生改变时,虚拟节点中的Pod也能相对同时地保持状态的同步。
另外,本发明一种Kubernetes虚拟节点上容器状态同步的改进系统包括如下模块:
Pod Agent模块、Virtual Kubelet模块、PodList拆分模块、Pod分发模块、Reconciler模块、动态调整模块;
所述Pod Agent模块用于在每个底层Pod中注入的Agent,负责向上层的Kube-Apiserver上报Pod的状态;
所述Virtual Kubelet模块通过轮询机制,监测底层Pod的状态变化,并保持其与虚拟节点对应的Pod状态一致;
所述PodList拆分模块根据底层集群中Pod的启动过程,将虚拟节点中的PodList拆分成多个队列,每个队列包含不同阶段的Pod;
所述Pod分发模块将不同阶段的Pod根据其状态放入对应的队列中。
所述Reconciler模块用于查询每个队列中所有Pod的状态,并识别Pod状态,执行相应的改变策略。
所述动态调整模块用于提取每个队列的轮询间隔时间,并对间隔时间进行动态自适应调整,以优化系统性能。
与现有技术相比,本发明的技术效果如下:
1、本发明把为单个Pod查询状态,改成一次性查询Pod列表中所有Pod的状态,减少API的调用次数。
2、本发明结合了主动上报与周期轮询,即提升性能,又保证了可靠性。
3、本发明根据容器的实际启动过程,提出多队列思想;每条列表的轮询时间都有自己独立的值。
4、本发明轮询周期不再是一个固定的值,而是取最近一段时间内容器从该状态转换为下一状态的平均值。这种带有统计预测的方法,可以在最大程度上保证虚拟节点上的容器与底层集群中真实容器的状态更快地保持一致。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
其中:
图1为本发明的一种一种Kubernetes虚拟节点上容器状态同步的改进方法的流程示意图;
图2为本发明的一种Virtual Kubelet与Kubelet的结构示意图;
图3为本发明的一种Virtual Kubelet抽象的接口的示意图;
图4为本发明的一种开源虚拟节点的工作流程的示意图;
图5为本发明的一种经本技术方案优化后的虚拟节点的工作流程的示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合说明书附图对本发明的具体实施方式做详细的说明。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
其次,此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本说明书中不同地方出现的“在一个实施例中”并非均指同一个实施例,也不是单独的或选择性的与其他实施例互相排斥的实施例。
实施例一:
如图1所示,本发明实施例的一种Kubernetes虚拟节点上容器状态同步的改进方法,如图1所示,包括如下具体步骤:
S1:在底层的每个Pod中注入一个Agent,当Agent运行起来后,可以直接向上面的Kube-Apiserver上报Pod的状态;
S1执行的前提环境包括:已经有自己的容器实例产品(即Provider),并且提供了CreatePod、DeletePod、GetPodListStatus等API接口,供virtual kubelet调用。
S1包括如下具体步骤:
S11:开发虚拟节点的功能,并编译成二进制文件,制作docker镜像;
S12:创建一个Kubernetes集群;
S13:利用镜像部署虚拟节点,注册到Kubernetes集群中;
S14:在Kubernetes集群中,创建一系列Pod,把它调度到虚拟节点上。
S2:识别底层Pod的状态,并通过Virtual Kubelet轮询机制来保证底层Pod的状态;
S2中,所述Virtual Kubelet轮询机制包括如下具体步骤:
S21:注册自身为一个节点,并在KubernetesAPI服务器上创建对应的节点对象;
S22:Virtual Kubelet开始轮询KubernetesAPI服务器,以获取当前分配给它的Pod;
S23:查询KubernetesAPI服务器上的调度器绑定列表;
S24:若有Pod被分配给Virtual Kubelet,它会为这些Pod生成对应的容器实例,并在第三方容器编排平台上创建相应的容器;
S25:当容器创建成功后,Virtual Kubelet会向KubernetesAPI服务器报告Pod的状态,并更新节点的状态;
S26:如果Pod的状态发生变化,Virtual Kubelet会相应地更新Kubernetes API服务器上的Pod状态;
S27:Virtual Kubelet在时间间隔内,重复执行上述步骤。
其中,S26中,所述Pod的状态的变化包括:完成、失败或异常。
S3:根据底层集群中Pod的启动过程,把虚拟节点中的PodList拆分成多个队列;
S3中,所述底层集群中Pod的启动过程包括:创建中(Pending)、调度中(Scheduling)、镜像拉取中(ImagePulling)、启动中(Starting)、运行中(Running)。
S4:在虚拟节点中,把不同阶段的Pod放到到对应的队列中;
S5:通过Reconciler一次性查询本队列所有Pod的状态,并识别pod状态,执行改变策略;
S5中,所述识别pod状态,执行改变策略包括:当本队列的Pod的状态发生改变时,把它从本队列移出,放入到对应的队列中去。
S6:提取每条队列的轮询间隔时间,并对间隔时间进行动态自适应调整。
S6中,所述每条队列的轮询间隔时间包括:Ti={T1,T2...Tn},其中,由于每个阶段的Pod转换到下一个阶段的时间会不一样,所以每条队列的轮询间隔时间也是不一样。
S6中,动态适应性调整包括:
S61:计算时间间隔为x内,本队列的Pod转换到下一阶段的平均时间计算公式为:/>
S62:根据平均时间对轮询间隔时间进行动态适应性调整。
S63:当底层集群的真实Pod的状态发生改变时,虚拟节点中的Pod也能相对同时地保持状态的同步。
实施例二:
如图2、3、4、5所示,本发明实施例的一种Kubernetes虚拟节点上容器状态同步的改进系统,包括:
Pod Agent模块、Virtual Kubelet模块、PodList拆分模块、Pod分发模块、Reconciler模块、动态调整模块;
所述Pod Agent模块用于在每个底层Pod中注入的Agent,负责向上层的Kube-Apiserver上报Pod的状态;
所述Virtual Kubelet模块通过轮询机制,监测底层Pod的状态变化,并保持其与虚拟节点对应的Pod状态一致;
所述PodList拆分模块根据底层集群中Pod的启动过程,将虚拟节点中的PodList拆分成多个队列,每个队列包含不同阶段的Pod;
所述Pod分发模块将不同阶段的Pod根据其状态放入对应的队列中。
所述Reconciler模块用于查询每个队列中所有Pod的状态,并识别Pod状态,执行相应的改变策略。
所述动态调整模块用于提取每个队列的轮询间隔时间,并对间隔时间进行动态自适应调整,以优化系统性能。
如图2所示,本实施例显示了一个Kubernetes集群,其中包含一系列标准kubelet和一个Virtual Kubelet。
Virtual Kubelet支持各种供应商(Provider):
Alibaba Cloud Elastic Container Instance(ECI)
AWS Fargate
Azure Batch
Azure Container Instances(ACI)
Kubernetes Container Runtime Interface(CRI)
Huawei Cloud Container Instance(CCI)
HashiCorp Nomad
Virtual Kubelet提供一个插件式的provider接口,让开发者可以自定义实现传统kubelet的功能。开发者需要实现的接口如图3所示。
Serverless容器集群:虚拟节点常用于Serverless容器的产品形态中。
在离线混部:专有集群+虚拟节点,组成一个混合K8S集群,在线业务调度到真实节点上,离线业务调度到虚拟节点上,虚拟节点上的容器一般是按需计费,这样可以极大减少用户成本。
在当前的Virtual Kubelet的架构中,虚拟节点的Pod与与Provider中的真实Pod之间的状态同步的机制如图4所示。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
应理解,根据A确定B并不意味着仅仅根据A确定B,还能够根据A和/或其它信息确定B。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行计算机指令或计算机程序时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线网络或/和无线网络方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘。
本领域普通技术人员可以意识到,结合本发明中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
在本说明书的描述中,参考术语“一个实施例”、“示例”、“具体示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
综上实施例,与现有技术相比,本发明的技术效果如下:
1、本发明把为单个Pod查询状态,改成一次性查询Pod列表中所有Pod的状态,减少API的调用次数。
2、本发明结合了主动上报与周期轮询,即提升性能,又保证了可靠性。
3、本发明根据容器的实际启动过程,提出多队列思想;每条列表的轮询时间都有自己独立的值。
4、本发明轮询周期不再是一个固定的值,而是取最近一段时间内容器从该状态转换为下一状态的平均值。这种带有统计预测的方法,可以在最大程度上保证虚拟节点上的容器与底层集群中真实容器的状态更快地保持一致。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (10)
1.一种Kubernetes虚拟节点上容器状态同步的改进方法,其特征在于:所述方法包括如下具体步骤:
S1:在底层的每个Pod中注入一个Agent,当Agent运行起来后,可以直接向上面的Kube-Apiserver上报Pod的状态;
S2:识别底层Pod的状态,并通过Virtual Kubelet轮询机制来保证底层Pod的状态;
S3:根据底层集群中Pod的启动过程,把虚拟节点中的PodList拆分成多个队列;
S4:在虚拟节点中,把不同阶段的Pod放到到对应的队列中;
S5:通过Reconciler一次性查询本队列所有Pod的状态,并识别pod状态,执行改变策略;
S6:提取每条队列的轮询间隔时间,并对间隔时间进行动态自适应调整。
2.根据权利要求1所述的一种Kubernetes虚拟节点上容器状态同步的改进方法,其特征在于,S1执行的前提环境包括:已经有自己的容器实例产品,并且提供了CreatePod、DeletePod、GetPodListStatus等API接口,供virtual kubelet调用。
3.根据权利要求1所述的一种Kubernetes虚拟节点上容器状态同步的改进方法,其特征在于,S1包括如下具体步骤:
S11:开发虚拟节点的功能,并编译成二进制文件,制作docker镜像;
S12:创建一个Kubernetes集群;
S13:利用镜像部署虚拟节点,注册到Kubernetes集群中;
S14:在Kubernetes集群中,创建一系列Pod,把它调度到虚拟节点上。
4.根据权利要求1所述的一种Kubernetes虚拟节点上容器状态同步的改进方法,其特征在于,S2中,所述Virtual Kubelet轮询机制包括如下具体步骤:
S21:注册自身为一个节点,并在Kubernetes API服务器上创建对应的节点对象;
S22:Virtual Kubelet开始轮询Kubernetes API服务器,以获取当前分配给它的Pod;
S23:查询Kubernetes API服务器上的调度器绑定列表;
S24:若有Pod被分配给Virtual Kubelet,它会为这些Pod生成对应的容器实例,并在第三方容器编排平台上创建相应的容器;
S25:当容器创建成功后,Virtual Kubelet会向KubernetesAPI服务器报告Pod的状态,并更新节点的状态;
S26:如果Pod的状态发生变化,Virtual Kubelet会相应地更新Kubernetes API服务器上的Pod状态;
S27:Virtual Kubelet在时间间隔t内,重复执行上述步骤。
5.根据权利要求1所述的一种Kubernetes虚拟节点上容器状态同步的改进方法,其特征在于,S26中,所述Pod的状态的变化包括:完成、失败或异常。
6.根据权利要求1所述的一种Kubernetes虚拟节点上容器状态同步的改进方法,其特征在于,S3中,所述底层集群中Pod的启动过程包括:创建中、调度中、镜像拉取中、启动中、运行中。
7.根据权利要求1所述的一种Kubernetes虚拟节点上容器状态同步的改进方法,其特征在于,S5中,所述识别pod状态,执行改变策略包括:当本队列的Pod的状态发生改变时,把它从本队列移出,放入到对应的队列中去。
8.根据权利要求7所述的一种Kubernetes虚拟节点上容器状态同步的改进方法,其特征在于,S6中,所述每条队列的轮询间隔时间包括:Ti={T1,T2...Tn},其中,由于每个阶段的Pod转换到下一个阶段的时间会不一样,所以每条队列的轮询间隔时间也是不一样。
9.根据权利要求1所述的一种Kubernetes虚拟节点上容器状态同步的改进方法,其特征在于,S6中,动态适应性调整包括:
S61:计算时间间隔为x内,本队列的Pod转换到下一阶段的平均时间计算公式为:
S62:根据平均时间对轮询间隔时间进行动态适应性调整。
10.一种Kubernetes虚拟节点上容器状态同步的改进系统,其基于如权利要求1-9任一项所述的一种Kubernetes虚拟节点上容器状态同步的改进方法实现,其特征在于,所述系统包括以下模块:
PodAgent模块、Virtual Kubelet模块、PodList拆分模块、Pod分发模块、Reconciler模块、动态调整模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311722389.6A CN117850971A (zh) | 2023-12-14 | 2023-12-14 | 一种Kubernetes虚拟节点上容器状态同步的改进方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311722389.6A CN117850971A (zh) | 2023-12-14 | 2023-12-14 | 一种Kubernetes虚拟节点上容器状态同步的改进方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117850971A true CN117850971A (zh) | 2024-04-09 |
Family
ID=90537393
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311722389.6A Pending CN117850971A (zh) | 2023-12-14 | 2023-12-14 | 一种Kubernetes虚拟节点上容器状态同步的改进方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117850971A (zh) |
-
2023
- 2023-12-14 CN CN202311722389.6A patent/CN117850971A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112199194B (zh) | 基于容器集群的资源调度方法、装置、设备和存储介质 | |
JP5030592B2 (ja) | 監視ルールのスケーラブル(scalable)な同期処理および非同期処理 | |
US8239868B2 (en) | Computer system, servers constituting the same, and job execution control method and program | |
JP2006259812A (ja) | 動的キュー負荷分散方法、システム及びプログラム | |
CN102325148B (zh) | 一种WebService服务调用方法 | |
CN110888719A (zh) | 一种基于web服务的分布式任务调度系统及方法 | |
US20040111725A1 (en) | Systems and methods for policy-based application management | |
US20100262695A1 (en) | System and Method for Allocating Resources in a Distributed Computing System | |
JP2015537307A (ja) | コンポーネント指向ハイブリッドクラウドオペレーティングシステムのアーキテクチャ及びその通信方法 | |
CN109933431B (zh) | 一种智能的客户端负载均衡方法及系统 | |
CN114443263A (zh) | 显存管理方法、装置、设备及系统 | |
CN114610474A (zh) | 一种异构超算环境下多策略的作业调度方法及系统 | |
CN108984290A (zh) | 任务调度方法和系统 | |
CN110308987A (zh) | 一种更新容器云上分布式训练任务连接参数的方法 | |
CN110515728B (zh) | 服务器调度方法、装置、电子设备及机器可读存储介质 | |
CN113364888B (zh) | 服务调度方法、系统、电子设备及计算机可读存储介质 | |
CN118210609A (zh) | 一种基于dqn模型的云计算调度方法及系统 | |
CN117076133B (zh) | 云游戏平台异构资源分配方法、计算机装置及存储介质 | |
CN114675927B (zh) | 服务实例部署方法、装置、电子设备及存储介质 | |
Wu et al. | ABP scheduler: Speeding up service spread in docker swarm | |
CN111190731A (zh) | 基于权重的集群任务调度系统 | |
CN117850971A (zh) | 一种Kubernetes虚拟节点上容器状态同步的改进方法和系统 | |
CN113472886B (zh) | 分布式集群系统及其控制方法 | |
US8869171B2 (en) | Low-latency communications | |
CN116263715A (zh) | 一种面向云原生智能排版服务的自动缩放系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |