CN114675956B - 一种基于Kubernetes集群之间Pod配置及调度的方法 - Google Patents
一种基于Kubernetes集群之间Pod配置及调度的方法 Download PDFInfo
- Publication number
- CN114675956B CN114675956B CN202210392907.1A CN202210392907A CN114675956B CN 114675956 B CN114675956 B CN 114675956B CN 202210392907 A CN202210392907 A CN 202210392907A CN 114675956 B CN114675956 B CN 114675956B
- Authority
- CN
- China
- Prior art keywords
- pod
- cluster
- service
- scheduling
- dispatching
- 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.)
- Active
Links
Images
Classifications
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- 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/45579—I/O management, e.g. providing access to device drivers or storage
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于Kubernetes集群之间Pod配置及调度的方法,在组网上建立跨多个集群的调度集群,对Pod运行的服务与其他Pod运行的服务进行业务特征上的关联并汇集成Pod集合,对Pod运行的服务与当前Pod集合的服务与业务上间接有关联的Pod重新生成关联Pod集合,并过调用程序将Pod集合及其关联Pod集合迁移到最优集群。
Description
技术领域
本发明涉及云计算领域,尤其涉及一种基于Kubernetes集群之间Pod配置及调度的方法。
背景技术
Kubernetes是一个开源的系统,主要用于集群中跨主机的集成应用的管理。Kubernetes的一个核心的特性是它动态地管理着容器来保证集群的状态是满足用户需求的。Pod是集群当中调度和管理的最小单元,所有的容器都在Pod里面运行,每个Pod里可以运行一到多个容器。每个集群都由控制节点Master和Node节点所组成。Scheduler(调度器)的核心是如何从集群中选择合适的Node节点分配给待调度Pod。
当前kubernetes的资源调度算法大多对Node节点进行评分划分优先级,如内置的LeastRequested、Priority算法,公开专利CN106027643A。该算法不考虑Node节点的实际资源使用情况,也没有考虑不同业务对资源需求的差异性;Kubernetes内置的优先级抢占的调度策略可能会导致某些Pod永远无法被成功调度,且抢占过程中资源安排不合理。这都会导致Node节点的其他纬度的资源不能被充分的使用,从而产生大量的资源碎片,造成资源的浪费。
随着数字化发展的逐渐深入,各单位在运设备逐渐增加,相较于十年前设备增长10~100倍,即便运维已经在从手工运维向工具运维和平台运维发展,但仍然无法满足当前集群对运维管理要求、高效调度处理及数据备份的功能、在庞大的机房运维场景下集群业务规模大,应用关系复杂,依赖层次多,排查问题困难、主机管理Kubernetes集群的方式不能满足跨Kubernetes集群管理需求等技术问题。
发明内容
针对以上问题,本发明提出一种基于Kubernetes集群之间Pod配置及调度的方法,为集群Pod的跨集群备份,集群之间业务数据交互,及集群资源灵活配置及调度提供了一种可行性方法。
一种基于Kubernetes集群之间Pod配置及调节的方法,包括:
步骤1.1,在中央组网服务器上创建一个基于Kubernetes的调度集群,在此集群上部署调度程序、分析数据库和实时监控数据库;所述调度程序负责记录每个Pod或Pod集合在同一组网内跨集群部署及调度过程的行为;所述实时监控数据库负责实时监控每个Pod或Pod集合的运行状态及资源占用量Z:CPU占用率、内存使用率、磁盘IO和网络IO资源占用量,在资源占用量Z超过告警阈值Y时上报告警;所述分析数据库负责记录每个Pod或Pod集合的运行状态及资源占用情况,为Pod集合选择最佳集群宿主提供基础数据;
步骤1.2,在同一组网内建立多个基于Kubernetes的业务集群,所述业务集群与中央组网服务器和调度集群互通;
步骤1.3,在调度集群中创建全部需要在组网内部署的Pod;
步骤1.4,由调度程序按照跨Kubernetes集群的调度算法将Pod调度到合适的Node节点上,所述跨Kubernetes集群的调度算法,包括:
步骤2.1,分析调度集群的Master主节点的日志,对Pod运行的服务与其他Pod运行的服务进行业务特征上的关联并汇集成Pod集合;
步骤2.2,选择一个业务集群作为目的集群,通过调度程序将Pod集合从调度集群移植到目的集群的Node节点,并将Pod集合中的Pod运行起来提供正常服务;同时通过调度程序记录Node节点上Pod集合在目的集群运行时的资源占用量Z:CPU占用率、内存使用率、磁盘IO和网络IO资源占用量;同时将目的集群Master节点上记录的Pod集合的运行状态(正常状态标识=0,异常=1)存储到调度集群的分析数据库中;
步骤2.3,重复执行步骤2.2的操作,将Pod集合部署到下一个业务目的集群,直到将组网内全部目的集群遍历一遍,完成整个组网内跨调度集群配置调度流程;
步骤2.4,分析调度集群Master主节点的日志,若Pod运行的服务与当前Pod集合的服务或业务上间接有关联,则将该Pod列入关联Pod集合;按步骤2.2~2.3测试并记录Pod集合及其关联Pod集合一起移植到目的集群后,在Nod节点和Master节点上的资源占用量Z和运行状态;
步骤2.5、重复执行步骤2.1~步骤2.4的操作,直到将调度集群中所有分类的Pod集合全部执行,完成Pod集合在所有目的集群的数据收集流程;
步骤2.6、通过分析数据库中存储的每个Pod集合及每个关联Pod集合在各目的集群的资源占用量Z:CPU占用率、内存使用率、磁盘IO和网络IO资源占用量及运行状态,同时通过实时监控数据库获取资源占用量Z与告警阈值Y的差值C,若C为负数,标记每个Pod集合及每个关联Pod集合在各目的集群中的等级D,D=C/(Y*10%),将等级D最小的目的集群作为Pod集合及关联Pod集合的最优目的集群;
步骤2.7、通过调度程序将所有Pod集合及其关联Pod集合部署到他们的最优目的集群。
本发明的有益效果:本发明通过分析Pod运行时的关联性,将Pod汇集为Pod集合及其关联Pod集合,并记录他们在各目的集群运行时的资源占用量和运行状态,根据他们在各目的集群运行时的资源占用量和运行状态,针对资源占用量进行评价打分,使Pod集合及其关联Pod集合被部署到他们的最优目的集群中。使各个目的集群中的Pod集合及其关联Pod集合在运行时的资源占用量最小,且状态正常。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并于说明书一起用于解释本发明的原理。
图1:一种基于Kubernetes集群之间Pod配置及调度的方法说明图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先对本发明所设计的术语解释如下:
“Kubernetes”(k8s)是自动化容器操作的开源平台,这些操作包括部署,调度和节点集群间扩展。
“Master”是K8S的集群控制节点,每个K8S集群里需要有一个Master节点来负责整个集群的管理和控制,基本上K8S所有的控制命令都是发给它,它来负责具体的执行过程。Master节点通常会占据一个独立的服务器,因为它太重要了,如果它不可用,那么所有的控制命令都将失效。
“Node”除了Master,K8S集群中的其它机器被称为Node节点,Node节点是K8S集群中的工作负载节点,每个Node都会被Master分配一些工作负载,当某个Node宕机时,其上的工作负载会被Master自动转移到其它节点上去。
“Pod”是K8S中最重要也是最基本的概念,Pod是最小的部署单元,是一组容器的集合。每个Pod都由一个特殊的根容器Pause容器,以及一个或多个紧密相关的用户业务容器组成。Pause容器作为Pod的根容器,以它的状态代表整个容器组的状态。K8S为每个Pod都分配了唯一的IP地址,称之为Pod IP。Pod 里的多个业务容器共享Pause容器的IP,共享Pause容器挂载的Volume。
实施例1
步骤一、部署Kubernetes集群及调度程序、分析数据库、实时监控数据库
S1、在中央组网服务器上创建一个基于Kubernetes的调度集群,在此集群上部署调度程序、分析数据库和实时监控数据库。调度程序负责记录每个Pod或Pod集合在同一组网内跨集群部署及调度过程的行为;实时监控数据库负责实时监控每个Pod或Pod集合的运行状态及资源占用量Z:CPU占用率、内存使用率、磁盘IO和网络IO资源占用量,在各资源占用量Z超过告警阈值时上报告警;分析数据库负责记录每个Pod或Pod集合的运行状态及资源占用量Z:CPU占用率、内存使用率、磁盘IO和网络IO资源占用量,为Pod集合选择最佳集群宿主提供基础数据。
S2、在组网内建立多个基于Kubernetes的业务集群,中央组网服务器和调度集群与组网内的所有业务集群互通。
步骤二、Pod配置与调度
Kubernetes集群由Master、Node、Pod构成,其中Pod运行在Node中,一个Node内可部署多个Pod,一个Master可管理多个Node。集群内Pod的部署任务在本集群的Master上创建,由Master负责将Pod部署在本集群的Node节点上。
为了实现跨集群部署Pod,本实施例中,先将待部署Pod的创建在中央组网服务器上所创建的调度集群中,再由中央组网服务器上的调度程序将Pod调度到合适的Node节点上。具体调度步骤如下:
S1、分析调度集群的Master(主节点)的日志,对Pod运行的服务与其他Pod运行的服务进行业务特征上的关联并汇集成Pod集合。例如若Pod间有频繁的业务交互,则认为这些Pod上的业务服务有关联,作为一个Pod集合统一部署。
S2、选择一个业务集群作为目的集群,通过调度程序将Pod集合从调度集群移植到业务目的集群的Node节点,并成功将Pod集合中的Pod运行起来提供正常服务;同时通过调度程序记录Node节点上Pod集合在目的集群运行时的资源占用量Z:CPU占用率、内存使用率、磁盘IO和网络IO资源占用量;同时将目的集群Master节点上记录Pod集合的运行状态(正常状态标识=0,异常=1)存储到调度集群的分析数据库中。
S3、重复执行S2的操作,将Pod集合部署到下一个目的集群,直到将组网内全部目的集群遍历一遍,完成整个组网内跨集群配置调度流程。
S4、继续分析调度集群Master(主节点)的日志,分析当前Pod集合中Pod的IP和其他哪些ip有关联,如果关联ip是其他Pod则证明这些Pod之间有间接关联。将其他Pod列为当前Pod集合的关联Pod集合。按步骤S2~S3测试并记录当前Pod集合及其关联Pod集合一起移植到目的集群后,在Nod节点和Master节点上的资源占用量Z和运行状态。
S5、重复执行S1~S4的操作,直到将调度集群中所有分类的Pod集合全部执行,完成Pod集合在所有目的集群的运行数据收集流程。
S6、通过分析数据库中存储的每个Pod集合及每个关联Pod集合在各目的集群的资源占用量Z:CPU占用率、内存使用率、磁盘IO和网络IO资源占用量及Pod集合运行的状态标识,同时通过实时监控数据库获取四个资源占用量Z与告警阈值Y的差值C,若C为负数,标记每个Pod集合及每个关联Pod集合在各目的集群中的等级D,D=C/(Y*10%),将等级D最小的目的集群作为Pod集合及关联Pod集合的最优目的集群。
S7、通过调度程序将所有Pod集合及其关联Pod集合部署到他们的最优目的集群。
Claims (1)
1.一种基于Kubernetes集群之间Pod配置及调节的方法,其特征在于,包括:
步骤1.1,在中央组网服务器上创建一个基于Kubernetes的调度集群,在此集群上部署调度程序、分析数据库和实时监控数据库;所述调度程序负责记录每个Pod或Pod集合在同一组网内跨集群部署及调度过程的行为;所述实时监控数据库负责实时监控每个Pod或Pod集合的运行状态及资源占用量Z:CPU占用率、内存使用率、磁盘IO和网络IO资源占用量,在资源占用量Z超过告警阈值Y时上报告警;所述分析数据库负责记录每个Pod或Pod集合的运行状态及资源占用情况,为Pod集合选择最佳集群宿主提供基础数据;
步骤1.2,在同一组网内建立多个基于Kubernetes的业务集群,所述业务集群与中央组网服务器和调度集群互通;
步骤1.3,在调度集群中创建全部需要在组网内部署的Pod;
步骤1.4,由调度程序按照跨Kubernetes集群的调度算法将Pod调度到合适的Node节点上,所述跨Kubernetes集群的调度算法,包括:
步骤2.1,分析调度集群的Master主节点的日志,对Pod运行的服务与其他Pod运行的服务进行业务特征上的关联并汇集成Pod集合;
步骤2.2,选择一个业务集群作为目的集群,通过调度程序将Pod集合从调度集群移植到目的集群的Node节点,并将Pod集合中的Pod运行起来提供正常服务;同时通过调度程序记录Node节点上Pod集合在目的集群运行时的资源占用量Z:CPU占用率、内存使用率、磁盘IO和网络IO资源占用量;同时将目的集群Master节点上记录的Pod集合的运行状态存储到调度集群的分析数据库中,Pod集合的运行状态包括:正常状态标识=0、异常=1;
步骤2.3,重复执行步骤2.2的操作,将Pod集合部署到下一个业务目的集群,直到将组网内全部目的集群遍历一遍,完成整个组网内跨调度集群配置调度流程;
步骤2.4,分析调度集群Master主节点的日志,若Pod运行的服务与当前Pod集合的服务或业务上间接有关联,则将该Pod列入关联Pod集合;按步骤2.2~2.3测试并记录Pod集合及其关联Pod集合一起移植到目的集群后,在Nod节点和Master节点上的资源占用量Z和运行状态;
步骤2.5、重复执行步骤2.1~步骤2.4的操作,直到将调度集群中所有分类的Pod集合全部执行,完成Pod集合在所有目的集群的数据收集流程;
步骤2.6、通过分析数据库中存储的每个Pod集合及每个关联Pod集合在各目的集群的资源占用量Z:CPU占用率、内存使用率、磁盘IO和网络IO资源占用量及运行状态,同时通过实时监控数据库获取资源占用量Z与告警阈值Y的差值C,若C为负数,标记每个Pod集合及每个关联Pod集合在各目的集群中的等级D,D=C/(Y*10%),将等级D最小的目的集群作为Pod集合及关联Pod集合的最优目的集群;
步骤2.7、通过调度程序将所有Pod集合及其关联Pod集合部署到他们的最优目的集群。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210392907.1A CN114675956B (zh) | 2022-04-14 | 2022-04-14 | 一种基于Kubernetes集群之间Pod配置及调度的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210392907.1A CN114675956B (zh) | 2022-04-14 | 2022-04-14 | 一种基于Kubernetes集群之间Pod配置及调度的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114675956A CN114675956A (zh) | 2022-06-28 |
CN114675956B true CN114675956B (zh) | 2022-08-30 |
Family
ID=82078876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210392907.1A Active CN114675956B (zh) | 2022-04-14 | 2022-04-14 | 一种基于Kubernetes集群之间Pod配置及调度的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114675956B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115333928B (zh) * | 2022-07-12 | 2024-07-02 | 中国电信股份有限公司 | 网络预警方法、装置、电子设备及存储介质 |
CN117170811B (zh) * | 2023-09-07 | 2024-09-13 | 中国人民解放军国防科技大学 | 一种基于volcano的节点分组作业调度方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011000199A1 (zh) * | 2009-06-30 | 2011-01-06 | 深圳市融创天下科技发展有限公司 | 集群服务器智能调度的方法及系统 |
CN109783218A (zh) * | 2019-01-24 | 2019-05-21 | 中国—东盟信息港股份有限公司 | 一种基于Kubernetes容器集群的与时间相关联的容器调度方法 |
CN111966453A (zh) * | 2020-07-29 | 2020-11-20 | 苏州浪潮智能科技有限公司 | 一种负载均衡方法、系统、设备及存储介质 |
CN112015536A (zh) * | 2020-08-28 | 2020-12-01 | 北京浪潮数据技术有限公司 | Kubernetes集群容器组调度方法、装置及介质 |
CN112995303A (zh) * | 2021-02-08 | 2021-06-18 | 中国工商银行股份有限公司 | 跨集群调度方法及装置 |
CN113553140A (zh) * | 2021-09-17 | 2021-10-26 | 阿里云计算有限公司 | 资源调度方法、设备及系统 |
-
2022
- 2022-04-14 CN CN202210392907.1A patent/CN114675956B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011000199A1 (zh) * | 2009-06-30 | 2011-01-06 | 深圳市融创天下科技发展有限公司 | 集群服务器智能调度的方法及系统 |
CN109783218A (zh) * | 2019-01-24 | 2019-05-21 | 中国—东盟信息港股份有限公司 | 一种基于Kubernetes容器集群的与时间相关联的容器调度方法 |
CN111966453A (zh) * | 2020-07-29 | 2020-11-20 | 苏州浪潮智能科技有限公司 | 一种负载均衡方法、系统、设备及存储介质 |
CN112015536A (zh) * | 2020-08-28 | 2020-12-01 | 北京浪潮数据技术有限公司 | Kubernetes集群容器组调度方法、装置及介质 |
CN112995303A (zh) * | 2021-02-08 | 2021-06-18 | 中国工商银行股份有限公司 | 跨集群调度方法及装置 |
CN113553140A (zh) * | 2021-09-17 | 2021-10-26 | 阿里云计算有限公司 | 资源调度方法、设备及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114675956A (zh) | 2022-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114675956B (zh) | 一种基于Kubernetes集群之间Pod配置及调度的方法 | |
CN112153700B (zh) | 一种网络切片资源管理方法及设备 | |
US8122453B2 (en) | Method and system for managing resources in a data center | |
CN107968802A (zh) | 一种资源调度的方法、装置和过滤式调度器 | |
CN108632365A (zh) | 服务资源调整方法、相关装置和设备 | |
US20170180220A1 (en) | Techniques to Generate Workload Performance Fingerprints for Cloud Infrastructure Elements | |
CN108521339B (zh) | 一种基于集群日志的反馈式节点故障处理方法及系统 | |
WO2005124553A1 (en) | Autonomic monitoring in a grid environment | |
CN104317650A (zh) | 一种面向Map/Reduce型海量数据处理平台的作业调度方法 | |
CA2476314A1 (en) | Method and system for managing resources in a data center | |
CN111459641B (zh) | 一种跨机房的任务调度和任务处理的方法及装置 | |
CN109271602A (zh) | 深度学习模型发布方法及装置 | |
CN114996018A (zh) | 面向异构计算的资源调度方法、节点、系统、设备及介质 | |
CN105868222A (zh) | 一种任务调度方法及装置 | |
CN112799596A (zh) | 一种存储资源的扩容控制方法、装置及电子设备 | |
CN113448685A (zh) | 一种基于Kubernetes的Pod调度方法及系统 | |
CN113326097A (zh) | 一种虚拟机限速方法、装置、设备和计算机存储介质 | |
CN109597764A (zh) | 一种目录配额的测试方法及相关装置 | |
CN112612587A (zh) | 一种针对流量分析的Spark平台动态资源调配方法 | |
CN116775233A (zh) | 一种任务调度方法及装置 | |
CN110971532B (zh) | 一种网络资源管理方法、装置及设备 | |
US20160110234A1 (en) | Apparatus and method for processing complex event based on high load path | |
CN115562841A (zh) | 一种云视频服务自适应资源调度系统和方法 | |
CN109510862A (zh) | 数据规约方法、装置及系统 | |
CN113703394A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |