CN112995335B - 一种位置感知的容器调度优化系统及方法 - Google Patents
一种位置感知的容器调度优化系统及方法 Download PDFInfo
- Publication number
- CN112995335B CN112995335B CN202110373082.4A CN202110373082A CN112995335B CN 112995335 B CN112995335 B CN 112995335B CN 202110373082 A CN202110373082 A CN 202110373082A CN 112995335 B CN112995335 B CN 112995335B
- Authority
- CN
- China
- Prior art keywords
- node
- container
- position information
- module
- scheduling
- 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
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1021—Server selection for load balancing based on client or server locations
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
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
本发明公开了一种位置感知的容器调度优化系统及方法,系统包含服务器配置管理平台与容器云平台,容器云平台包含节点注册管理模块、节点位置感知模块、容器调度模块、容器调度优化模块;节点注册管理模块用于将一台节点注册到容器云平台的容器云集群中;节点位置感知模块用于在原节点注册管理模块的执行过程中,加入获取将被加入容器云集群的节点在服务器配置管理平台中节点所记录的物理位置信息,并将物理位置信息告知容器云平台;容器调度模块用于应用创建时的调度,在云集群中选择合适的节点,供容器应用在之上运行;容器调度优化模块用于在原容器调度模块的执行过程中,加入根据位置感知进行容器的故障域分散调度和服务访问优化的配置。
Description
技术领域
本发明涉及容器调度优化领域,具体涉及一种位置感知的容器调度优化系统及方法。
背景技术
应用自动调度,弹性和高可用是容器云的优点,而高可用的一个要素是:应用的多个副本要部署在至少一个以上的故障域内;一个故障域不单单是局限一个虚拟机、一个物理服务器等级别,还有机架甚至机房级别,如何在机架甚至机房级别进行容器的“分散部署”,这是目前社区和业界没有解决的困难之一;
上面提到,要在容器云场景下,实现应用的高可用,应用的多个副本要部署在至少一个以上的故障域(FailureDomain,故障域:通常是指集体受故障影响的一组服务器、存储和/或网络连接组件,比如一台服务器是一个故障域:当该某一台服务器出故障,故障仅隔离在这台服务器内);
故障域的另一个常见示例是服务器机架或叫做机柜(机架是一个物理整体的安装箱,可以容纳多台服务器,为之提供固定导轨、统一供电、统一网络交换机等功能),如果架顶式网络交换机(TopofRack)出现故障,或服务器机架的配电装置出现故障,则该机架中的所有服务器会离线,即使服务器硬件正常运行也是如此,所以该服务器机架可视为一个故障域;
一层楼的机房甚至一个数据中心也是一个更大范围的故障域,这些都是物理故障域,以物理位置或者物理网络拓扑为故障隔离的区域,更复杂的场景下,比如SDN或者SDS的场景,逻辑故障域可能会更加复杂;
业内的容器云调度系统(以最流行的kubernetes为例),会自动实现一个应用的多个副本(replica)在多个服务器节点(node)上的尽量分散的调度,在资源足够的前提下,会避免一个应用的2个副本在同一个服务器上,亦即避免“鸡蛋放在一个篮子”的情况,以期实现应用的高可用(在故障情况下,应用至少有一个或者多个副本仍然可以正常工作和响应,达到较高的业务可用性);
但是现实情况中,还有许多机架级别的故障会发生:比如架顶式交换机故障,机架配电PDU故障,机架供电线路故障…导致整个机架上的所有服务器无法工作,甚至还有机房级别的故障:机房对外的光缆被切断,机房地震、火灾等;
由于上述容器云的实现,只能处理故障域是单台服务器的情况,无法感知到更进一步的物理分布和位置信息,所以无法避免一个应用的多个副本落到一个机架故障域中等情况,导致高可用性和容灾性的降低;
而在容器云平台(拿主流的kubernetes为例)的集群组建时,每一个集群内的物理机会被“加入”容器云平台管理范畴内(亦即执行join(加入)集群的命令和动作),但是在已有技术框架下,容器云平台只能获取被加入的机器节点的IP地址和机器名,根本不会感知到物理位置等额外信息;
位置感知在具体的实现上:可以给每一个容器主机节点,打上位置信息(通过标签的形式),目前这种标签有两种做法:
(a)公有云:公有云会按照机房的地理位置,把集群中的节点进行区域的划分,比如分为上海机房、东京机房、洛杉矶机房等。部分公有云上,节点位置标签会被自动添加(通过cloudprovider机制),不过标签设置的粒度比较粗,一般只到机房/区域(zone)级别;
(b)私有云(本地数据中心):私有化的容器平台一般都需要通过手动配置节点标签的方式,效率低而且不一定准确;
所以,现存方案的缺点(一)位置感知缺陷:一些容器云平台,比如私有云场景,缺乏自动化手段,只能手动配置节点位置标签;另外一些容器云平台,比如公有云场景,虽然可以自动设置节点位置标签,但是标签的位置信息往往只能精确到机房/区域级别,能够满足多云管理场景,但是无法满足故障域隔离的需求,比如单个数据中心最常见的机架级别的故障域隔离;
即使加上了节点的位置标签,现有的Kubernetes的平均调度机制也无法满足故障域隔离的需求;Kubernetes调度器中默认包含SelectorSpreadPriority平均分布调度规则,会尽量把容器的副本调度到不同的节点上,对于设置了多区域(zone)的集群,也只会简单地尽力而为地将容器副本调度到不同的“区域”的不同节点上;
如果我们需要达到更精细的粒度(比如“故障域”的粒度是楼层或机架)的均衡调度,只能通过手动编辑应用编排文件(yaml格式),通过设计复杂的podAffinity(反亲和性)的规则,来实现容器在一个“故障域”内的互斥性(“互斥”即:在同一个区域的节点上,不允许有2个容器副本,这样容器的其他副本会尽量被排斥到其他区域);
所以现存方案的缺点(二)无法根据节点位置信息自动和精细化的实现容器调度,以满足故障域隔离(尽量将容器副本均衡分布在各个不同级别、粒度的故障域)的需要;
综上,引入细粒度(如机架级别)的位置感知的调度,对于提升容器云平台的稳定性可靠性有重要作用,本申请提出一个新颖实用的系统,用来在基于kubernetes的容器云领域,解决这个难题。
发明内容
本发明要解决的技术问题是现有的容器云平台的调度方案具有位置感知的缺陷,无法根据节点位置信息自动和精细化的实现容器调度,以满足故障域隔离的需要,本发明提供一种位置感知的容器调度优化系统,能够打通数据中心的运维配置系统流程和容器云平台,使得容器云感知了节点的物理位置,并拓展了容器云平台的调度系统,能够利用物理位置的感知,将应用的调度在各故障域平均分布,达到更强的容灾性可用性;特别在实际生产中,能达到具体是“机架”级别的容器应用高可用调度,是非常有实际价值和意义的,用以解决现有技术导致的缺陷。
本发明还提供一种位置感知的容器调度优化方法。
为解决上述技术问题本发明提供以下的技术方案:
第一方面,一种位置感知的容器调度优化系统,其中,包含服务器配置管理平台与容器云平台,所述容器云平台包含节点注册管理模块、节点位置感知模块、容器调度模块、容器调度优化模块;
所述节点注册管理模块用于将一台节点注册到容器云平台的容器云集群中;
所述节点位置感知模块用于在原节点注册管理模块的执行过程中,加入获取将被加入容器云集群的节点在所述服务器配置管理平台中节点所记录的物理位置信息,并将所述物理位置信息告知所述容器云平台,作为该节点的重要信息之一;
所述容器调度模块用于应用创建时的调度,在云集群中选择合适的节点,供容器应用在之上运行;
所述容器调度优化模块用于在原容器调度模块的执行过程中,加入根据位置感知进行容器的故障域分散调度和服务访问优化的配置。
上述的一种位置感知的容器调度优化系统,其中,所述容器云平台为Kubernetes的容器云系统。
上述的一种位置感知的容器调度优化系统,其中,所述节点物理位置信息通过插件的架构形式插入进行节点注册;
所述信息通过插件的架构形式插入应用调度中。
上述的一种位置感知的容器调度优化系统,其中,所述服务器配置管理平台内置有数据库,所述数据库存储有物理机的物理位置信息、IP地址信息;
所述物理位置信息包含机房信息、机架号信息、机架内位置信息;
所述IP地址信息包含主机管理IP、服务器序列号、企业资产编号。
上述的一种位置感知的容器调度优化系统,其中,所述数据库为CMDB配置管理数据库。
第二方面,一种位置感知的容器调度优化方法,其中,包含以下步骤:
步骤1:将服务器节点上架装入机房的机架上,记录该服务器节点所被安装的具体物理位置信息;
步骤2:节点位置感知模块判断节点位置信息的记录点,若节点位置信息记录在CMDB信息配置管理系统中,则节点位置感知模块调用CMDB信息配置管理系统中的API获取节点IP,依据节点IP查询数据库获取节点物理位置信息,并将节点物理位置信息传输至节点注册管理模块;
若节点位置信息记录在BMC板载管理控制器中,则节点位置感知模块从BMC板载管理控制器中获取节点物理位置信息,并将节点物理位置信息传输至节点注册管理模块;
步骤3:节点注册管理模块获取节点物理位置信息后进行节点注册并在节点注册成功后添加在节点上一个包含有位置信息的节点标签,此时容器云集群准备完毕;
步骤4:容器调度优化模块结合各个节点的物理位置信息将容器的多个副本安排分散到不同故障域的主机上。
上述的一种位置感知的容器调度优化方法,其中,步骤2中节点位置感知模块获取节点物理位置信息取决于位置信息存放位置,包含以下两种实现方式:
(a)通过Kubernetes插件机制中的Cloud Provider组件调用CMDB信息配置管理系统中的API,获取节点物理位置信息;
(b)节点位置感知模块通过ipmitool向该节点的BMC板载管理控制器发送网络请求,获取节点物理位置信息;
步骤4中容器的多个副本安排分散到不同故障域的主机,在容器调度模块进行初步的调度策略计算之后,基于其得出的多个可调度节点列表中,容器调度优化模块再根据根据各个节点的物理位置信息,再遴选出分属于不同故障域的节点列表,作为容器应用所调度的最终目标节点,后通过kubernetes admission controller,为该service的编排yaml中自动注入如下的topologyKeys,帮助服务实现物理位置感知的路由优化。
一种位置感知的容器调度优化系统整个过程分为3个部分:
第一部分:物理节点在外部系统的位置标记阶段(已有实践);
第二部分:自动化的Kubernetes的节点资源的位置感知的调度(本申请新提出);
第三部分:访问容器流量的负载均衡优化阶段;
在已有的实践当中,在私有化数据中心的物理机上架和初始化之后,需要记录管理配置在外部系统(所述容器云平台之外的信息系统):亦即在数据中心的管理配置系统里,记录该物理机的物理位置信息和IP地址信息等,通常使用CMDB配置管理数据库(Configuration Management Database)来做上述记录,数据格式大致包含如下样式,可以看到“机器管理IP”,“机房”,“机架号等关键信息:还有一些数据中心的管理实践中,还会将机器的物理位置记录在服务器上的BMC(基板管理控制器,Baseboard ManagerController)中,本申请并不限定机器管理配置的存储位置和流程、方法;
在所述容器云平台的集群组建时,每一个集群内的主机节点会被“加入”容器云平台管理范畴内(亦即执行join(加入、注册)集群的命令和动作),但是在已有技术框架下,容器云平台只能获取被加入节点的IP地址和机器名,根本不会感知到物理位置等额外信息,本申请创新地改造容器云平台的系统架构,拓展节点注册的功能模块,在加入集群时,从上述配置管理系统(如CMDB或者BMC)中根据本机IP地址,查找出物理位置信息,然后在注册节点时自动附带上本节点的物理位置标签,从而使容器云平台自动获得节点的位置信息;
所述物理位置信息包含机房信息、机架号信息、机架内位置信息;
所述IP地址信息包含主机管理IP、服务器序列号、企业资产编号;
同时本申请设计的系统,还会拓展 Kubernetes 容器云平台的调度模块,实现更加自动和精细化的基于物理位置的调度规则,这样在容器调度时,通过节点物理位置信息,结合集群实际情况,尽力而为地将应用多个副本进行分散性调度(比如调度到不同的机房、不同的机架),以实现故障域隔离最优的调度;
为了方便使用和对用户无感知,增设的容器调度优化模块可以设置为所有容器调度的默认行为,如果用户有特殊的分布调度需求,仍可以通过给容器配置额外的“容器拓扑传播配置”(Pod Topology Spread Constraints,其是Kubernetes 已支持的分布调度配置),来设置特殊的容器分布调度策略;
流量路由优化:Kubernetes 容器云集群内的不同应用之间访问(注意,这里是不同的应用,而不是上述同一个应用的不同副本),如果是跨机架或者跨机房通讯,在物理网络上会造成较长路径和较长延迟,造成一定的性能损耗,在Kubernetes容器云场景下,应用之间互相访问是通过Kubernetes的service(服务)机制实现,我们希望应用之间互相的访问流量,优先路由和选择位于同一机架或者同一机房中的容器,既然我们拥有了节点详细的物理位置,则可以利用kubernetes的service的topologyKeys机制,按照先同机架、后同机房、再同地域的优先顺序,优化应用之间的流量的路由路径,同样,为了方便用户,避免对每个应用都手动编辑编排文件,在本系统实现中,服务的topologyKeys也是默认自动加上。
本发明提供的技术方案主要针对的现有实践的几个难题:
(一)节点位置感知:通过对接数据中心的硬件配置管理系统,在Kubernetes架构下,以节点注册插件形式,自动化赋予节点详细粒度的位置感知;
(二)缺乏位置感知的自动均衡分布调度:通过在Kubernetes架构下,以调度器的插件形式,结合(一)所得到的不同粒度范围的位置信息,自动化达到尽量故障域分散的调度效果,实现故障域隔离。
依据上述本发明一种位置感知的容器调度优化系统及方法提供的技术方案具有以下技术效果:
打通了数据中心的运维配置系统流程和容器云平台,使得容器云感知了节点的物理位置,并拓展了容器云平台的调度系统,能够利用物理位置的感知,将应用的调度在各故障域平均分布,达到更强的容灾性可用性;
特别在实际生产中,能达到具体是“机架”级别的容器应用高可用调度,是非常有实际价值和意义的。
附图说明
图1为一种位置感知的容器调度优化系统的结构示意图;
图2为一种位置感知的容器调度优化方法的应用创建过程流程图;
图3为一种位置感知的容器调度优化方法的节点注册过程流程图。
其中,附图标记如下:
服务器配置管理平台101、容器云平台102、节点注册管理模块103、节点位置感知模块104、容器调度模块105、容器调度优化模块106。
具体实施方式
为了使发明实现的技术手段、创造特征、达成目的和功效易于明白了解,下结合具体图示,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。
基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
须知,本说明书所附图式所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容得能涵盖的范围内。
同时,本说明书中所引用的如“上”、“下”、“左”、“右”、“中间”及“一”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
本发明的一较佳实施例是提供一种位置感知的容器调度优化系统,目的是打通数据中心的运维配置系统流程和容器云平台,使得容器云感知了节点的物理位置,并拓展了容器云平台的调度系统,能够利用物理位置的感知,将应用的调度在各故障域平均分布,达到更强的容灾性可用性;特别在实际生产中,能达到具体是“机架”级别的容器应用高可用调度,是非常有实际价值和意义的。
如图1所示,第一方面,一种位置感知的容器调度优化系统,其中,包含服务器配置管理平台101与容器云平台102,容器云平台102包含节点注册管理模块103、节点位置感知模块104、容器调度模块105、容器调度优化模块106;
节点注册管理模块103用于将一台节点注册到容器云平台102的容器云集群中;
节点位置感知模块104用于在原节点注册管理模块103的执行过程中,加入获取将被加入容器云集群的节点在服务器配置管理平台101中节点所记录的物理位置信息,并将物理位置信息告知容器云平台102,作为该节点的重要信息之一;
容器调度模块105用于应用创建时的调度,在云集群中选择合适的节点,供容器应用在之上运行;
容器调度优化模块106用于在原容器调度模块105的执行过程中,加入根据位置感知进行容器的故障域分散调度和服务访问优化的配置。
其中,容器云平台102为Kubernetes的容器云系统。
其中,节点物理位置信息通过插件的架构形式插入进行节点注册;
信息通过插件的架构形式插入应用调度中。
其中,服务器配置管理平台101内置有数据库,数据库存储有物理机的物理位置信息、IP地址信息;
物理位置信息包含机房信息、机架号信息、机架内位置信息;
IP地址信息包含主机管理IP、服务器序列号、企业资产编号。
其中,数据库为CMDB配置管理数据库。
第二方面,一种位置感知的容器调度优化方法,其中,包含以下步骤:
步骤1:将服务器节点上架装入机房的机架上,记录该服务器节点所被安装的具体物理位置信息;
步骤2:节点位置感知模块104判断节点位置信息的记录点,若节点位置信息记录在CMDB信息配置管理系统中,则节点位置感知模块104调用CMDB信息配置管理系统中的API获取节点IP,依据节点IP查询数据库获取节点物理位置信息,并将节点物理位置信息传输至节点注册管理模块103;
若节点位置信息记录在BMC板载管理控制器中,则节点位置感知模块104从BMC板载管理控制器中获取节点物理位置信息,并将节点物理位置信息传输至节点注册管理模块103;
步骤3:节点注册管理模块103获取节点物理位置信息后进行节点注册并在节点注册成功后添加在节点上一个包含有位置信息的节点标签,此时容器云集群准备完毕;
步骤4:容器调度优化模块106结合各个节点的物理位置信息将容器的多个副本安排分散到不同故障域的主机上。
其中,步骤2中节点位置感知模块104获取节点物理位置信息取决于位置信息存放位置,包含以下两种实现方式:
(a)通过Kubernetes插件机制中的Cloud Provider组件调用CMDB信息配置管理系统中的API,获取节点物理位置信息;
(b)节点位置感知模块104通过ipmitool向该节点的BMC板载管理控制器发送网络请求,获取节点物理位置信息;
步骤4中容器的多个副本安排分散到不同故障域的主机,在容器调度模块105进行初步的调度策略计算之后,基于其得出的多个可调度节点列表中,容器调度优化模块106再根据根据各个节点的物理位置信息,再遴选出分属于不同故障域的节点列表,作为容器应用所调度的最终目标节点,后通过kubernetes admission controller,为该service的编排yaml中自动注入如下的topologyKeys,帮助服务实现物理位置感知的路由优化。
一种位置感知的容器调度优化系统整个过程分为3个部分:
第一部分:物理节点在外部系统的位置标记阶段(已有实践);
第二部分:自动化的Kubernetes的节点资源的位置感知的调度(本申请新提出);
第三部分:访问容器流量的负载均衡优化阶段;
在已有的实践当中,在私有化数据中心的物理机上架和初始化之后,需要记录管理配置在外部系统(容器云平台102之外的信息系统):亦即在数据中心的管理配置系统里,记录该物理机的物理位置信息和IP地址信息等,通常使用CMDB配置管理数据库(Configuration Management Database)来做上述记录,数据格式大致包含如下样式,可以看到“机器管理IP”,“机房”,“机架号等关键信息:还有一些数据中心的管理实践中,还会将机器的物理位置记录在服务器上的BMC(基板管理控制器,Baseboard ManagerController)中,本申请并不限定机器管理配置的存储位置和流程、方法;
在容器云平台102的集群组建时,每一个集群内的主机节点会被“加入”容器云平台102管理范畴内(亦即执行join(加入、注册)集群的命令和动作),但是在已有技术框架下,容器云平台102只能获取被加入节点的IP地址和机器名,根本不会感知到物理位置等额外信息,本申请创新地改造容器云平台102的系统架构,拓展节点注册的功能模块,在加入集群时,从上述配置管理系统(如CMDB或者BMC)中根据本机IP地址,查找出物理位置信息,然后在注册节点时自动附带上本节点的物理位置标签,从而使容器云平台102自动获得节点的位置信息;
物理位置信息包含机房信息、机架号信息、机架内位置信息;
IP地址信息包含主机管理IP、服务器序列号、企业资产编号;
同时本申请设计的系统,还会拓展 Kubernetes 容器云平台102的调度模块,实现更加自动和精细化的基于物理位置的调度规则,这样在容器调度时,通过节点物理位置信息,结合集群实际情况,尽力而为地将应用多个副本进行分散性调度(比如调度到不同的机房、不同的机架),以实现故障域隔离最优的调度;
为了方便使用和对用户无感知,增设的容器调度优化模块106可以设置为所有容器调度的默认行为,如果用户有特殊的分布调度需求,仍可以通过给容器配置额外的“容器拓扑传播配置”(Pod Topology Spread Constraints,其是Kubernetes 已支持的分布调度配置),来设置特殊的容器分布调度策略;
流量路由优化:Kubernetes 容器云集群内的不同应用之间访问(注意,这里是不同的应用,而不是上述同一个应用的不同副本),如果是跨机架或者跨机房通讯,在物理网络上会造成较长路径和较长延迟,造成一定的性能损耗,在Kubernetes容器云场景下,应用之间互相访问是通过Kubernetes的service(服务)机制实现,我们希望应用之间互相的访问流量,优先路由和选择位于同一机架或者同一机房中的容器,既然我们拥有了节点详细的物理位置,则可以利用kubernetes的service的topologyKeys机制,按照先同机架、后同机房、再同地域的优先顺序,优化应用之间的流量的路由路径,同样,为了方便用户,避免对每个应用都手动编辑编排文件,在本系统实现中,服务的topologyKeys也是默认自动加上。
本发明提供的技术方案主要针对的现有实践的几个难题:
(一)节点位置感知:通过对接数据中心的硬件配置管理系统,在Kubernetes架构下,以节点注册插件形式,自动化赋予节点详细粒度的位置感知;
(二)缺乏位置感知的自动均衡分布调度:通过在Kubernetes架构下,以调度器的插件形式,结合(一)所得到的不同粒度范围的位置信息,自动化达到尽量故障域分散的调度效果,实现故障域隔离。
一个具体实施例:
(一)节点注册过程(如图3所示):
1.节点注册请求(例如kubeadm join $node);
2.如果节点的位置信息被事先记录在CMDB,则由本申请提出的节点位置感知模块104作为拓展的节点注册插件(具体实现可通过扩展Kubernetes插件机制中的CloudProvider组件,调用CMDB系统的API),根据节点IP查询数据库,得到物理位置;
3.如果节点位置信息被事先记录在BMC中,则本申请提出的节点位置感知模块104作为拓展的节点注册插件(具体实现可直接通过ipmitool向该节点的BMC系统发送网络请求)获取物理位置;
4.节点位置感知模块104作为拓展的节点注册插件,会在节点接入Kubernetes集群时,根据获得的节点物理位置信息,自动为节点添加如下 Kubernetes 节点标签;
topology.kubernetes.io/region --记录城市/地域;
topology.kubernetes.io/zone --记录机房位置;
topology.kubernetes.io/rack – 新引入标签,用来记录机架信息位置;
5.完成过程;
(二)应用创建过程(如图2所示):
1.应用容器创建请求;
2.本申请提出的「容器调度优化模块106」作为拓展的容器调度插件,会结合各个节点的物理信息标签,将容器的多个副本安排到尽量分散的不同故障域的主机上;
3.最后通过拓展的kubernetes admission controller,为该service的编排yaml中自动注入如下的topologyKeys,帮助服务实现物理位置感知的路由优化;
apiVersion: v1
kind: Service
spec:
topologyKeys:
- "topology.kubernetes.io/rack"
- "topology.kubernetes.io/zone"
- "topology.kubernetes.io/region"
- "*"
4.完成过程;
综上,本发明的一种位置感知的容器调度优化系统及方法,能够打通数据中心的运维配置系统流程和容器云平台,使得容器云感知了节点的物理位置,并拓展了容器云平台的调度系统,能够利用物理位置的感知,将应用的调度在各故障域平均分布,达到更强的容灾性可用性;特别在实际生产中,能达到具体是“机架”级别的容器应用高可用调度,是非常有实际价值和意义的。
以上对发明的具体实施例进行了描述。需要理解的是,发明并不局限于上述特定实施方式,其中未尽详细描述的设备和结构应该理解为用本领域中的普通方式予以实施;本领域技术人员可以在权利要求的范围内做出各种变形或修改做出若干简单推演、变形或替换,这并不影响发明的实质内容。
Claims (7)
1.一种位置感知的容器调度优化系统,其特征在于,包含服务器配置管理平台与容器云平台,所述容器云平台包含节点注册管理模块、节点位置感知模块、容器调度模块、容器调度优化模块;
所述节点注册管理模块用于将一台节点注册到容器云平台的容器云集群中;
所述节点位置感知模块用于在原节点注册管理模块的执行过程中,加入获取将被加入容器云集群的节点在所述服务器配置管理平台中节点所记录的物理位置信息,并将所述物理位置信息告知所述容器云平台,作为该节点的重要信息之一;
所述容器调度模块用于应用创建时的调度,在云集群中选择合适的节点,供容器应用在之上运行;
所述容器调度优化模块用于在原容器调度模块的执行过程中,加入根据位置感知进行容器的故障域分散调度和服务访问优化的配置;所述根据位置感知进行容器的故障域分散调度的配置,用于根据各个节点的物理位置信息,遴选出分属于不同故障域的节点列表,作为容器应用所调度的最终目标节点,以实现将应用多个副本的调度在各故障域平均分布;
所述服务器配置管理平台存储有节点的物理位置信息;所述物理位置信息包含机房信息、机架号信息、机架内位置信息。
2.如权利要求1所述的一种位置感知的容器调度优化系统,其特征在于,所述容器云平台为Kubernetes的容器云系统。
3.如权利要求1所述的一种位置感知的容器调度优化系统,其特征在于,所述节点物理位置信息通过插件的架构形式插入进行节点注册;
所述信息通过插件的架构形式插入应用调度中。
4.如权利要求1所述的一种位置感知的容器调度优化系统,其特征在于,所述服务器配置管理平台内置有数据库,所述数据库存储有物理机的物理位置信息、IP地址信息;
所述IP地址信息包含主机管理IP、服务器序列号、企业资产编号。
5.如权利要求4所述的一种位置感知的容器调度优化系统,其特征在于,所述数据库为CMDB配置管理数据库。
6.一种位置感知的容器调度优化方法,其特征在于,包含以下步骤:
步骤1:将服务器节点上架装入机房的机架上,记录该服务器节点所被安装的具体物理位置信息;
步骤2:节点位置感知模块判断节点位置信息的记录点,若节点位置信息记录在CMDB信息配置管理系统中,则节点位置感知模块调用CMDB信息配置管理系统中的API获取节点IP,依据节点IP查询数据库获取节点物理位置信息,并将节点物理位置信息传输至节点注册管理模块;
若节点位置信息记录在BMC板载管理控制器中,则节点位置感知模块从BMC板载管理控制器中获取节点物理位置信息,并将节点物理位置信息传输至节点注册管理模块;
步骤3:节点注册管理模块获取节点物理位置信息后进行节点注册并在节点注册成功后添加在节点上一个包含有位置信息的节点标签,此时容器云集群准备完毕;
步骤4:容器调度优化模块结合各个节点的物理位置信息将容器的多个副本平均安排分散到不同故障域的主机上;所述物理位置信息包含机房信息、机架号信息、机架内位置信息;
容器调度优化模块结合各个节点的物理位置信息将容器的多个副本平均安排分散到不同故障域的主机上,具体为:容器调度优化模块根据各个节点的物理位置信息,遴选出分属于不同故障域的节点列表,作为容器应用所调度的最终目标节点。
7.如权利要求6所述的一种位置感知的容器调度优化方法,其特征在于,
步骤2中节点位置感知模块获取节点物理位置信息取决于位置信息存放位置,包含以下两种实现方式:
(a)通过Kubernetes插件机制中的Cloud Provider组件调用CMDB信息配置管理系统中的API,获取节点物理位置信息;
(b)节点位置感知模块通过ipmitool向该节点的BMC板载管理控制器发送网络请求,获取节点物理位置信息;
步骤4中遴选出分属于不同故障域的节点列表,作为容器应用所调度的最终目标节点,后通过kubernetes admission controller,为服务的编排yaml中自动注入topologyKeys,帮助服务实现物理位置感知的路由优化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110373082.4A CN112995335B (zh) | 2021-04-07 | 2021-04-07 | 一种位置感知的容器调度优化系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110373082.4A CN112995335B (zh) | 2021-04-07 | 2021-04-07 | 一种位置感知的容器调度优化系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112995335A CN112995335A (zh) | 2021-06-18 |
CN112995335B true CN112995335B (zh) | 2022-09-23 |
Family
ID=76339348
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110373082.4A Active CN112995335B (zh) | 2021-04-07 | 2021-04-07 | 一种位置感知的容器调度优化系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112995335B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113900771B (zh) * | 2021-10-14 | 2024-03-12 | 苏州申浪信息科技有限公司 | 一种使用容器云主机的工业数据传输方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110825494A (zh) * | 2019-11-01 | 2020-02-21 | 北京京东尚科信息技术有限公司 | 物理机调度方法及装置、计算机可存储介质 |
CN111274221A (zh) * | 2020-02-28 | 2020-06-12 | 苏州浪潮智能科技有限公司 | 一种大规模集群组件服务版本变更测试系统 |
CN111367711A (zh) * | 2018-12-26 | 2020-07-03 | 广州才捷信息科技有限公司 | 一种基于超融合数据安全容灾方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107426034B (zh) * | 2017-08-18 | 2020-09-01 | 国网山东省电力公司信息通信公司 | 一种基于云平台的大规模容器调度系统及方法 |
WO2020062131A1 (zh) * | 2018-09-29 | 2020-04-02 | 北京连云决科技有限公司 | 一种基于区块链技术的容器云管理系统 |
US11095661B2 (en) * | 2019-05-29 | 2021-08-17 | Cisco Technology, Inc. | Enforcing data sovereignty policies in a cloud environment |
CN112379971B (zh) * | 2020-11-17 | 2021-09-14 | 深圳前海微众银行股份有限公司 | 应用容器管理方法、装置及设备 |
-
2021
- 2021-04-07 CN CN202110373082.4A patent/CN112995335B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111367711A (zh) * | 2018-12-26 | 2020-07-03 | 广州才捷信息科技有限公司 | 一种基于超融合数据安全容灾方法 |
CN110825494A (zh) * | 2019-11-01 | 2020-02-21 | 北京京东尚科信息技术有限公司 | 物理机调度方法及装置、计算机可存储介质 |
CN111274221A (zh) * | 2020-02-28 | 2020-06-12 | 苏州浪潮智能科技有限公司 | 一种大规模集群组件服务版本变更测试系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112995335A (zh) | 2021-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109067828B (zh) | 基于Kubernetes和OpenStack容器云平台多集群构建方法、介质、设备 | |
US9999030B2 (en) | Resource provisioning method | |
CN109040276B (zh) | 一种构建云平台的方法、装置、计算机存储介质及终端 | |
CN107181808B (zh) | 一种私有云系统及运行方法 | |
CN105939290B (zh) | 一种分配资源的方法及装置 | |
CN109067827B (zh) | 基于Kubernetes和OpenStack容器云平台多租户构建方法、介质、设备 | |
CN106789168B (zh) | 一种数据中心服务器管理网络的部署方法及架顶式交换机 | |
US20160149771A1 (en) | Transparent orchestration and management of composite network functions | |
US7389367B2 (en) | Method of managing I/O interface modules in a computer system | |
WO2017036288A1 (zh) | 一种网元升级方法及设备 | |
CN105743995A (zh) | 一种可移植高可用部署和管理容器集群的系统和方法 | |
CN110572439B (zh) | 一种基于元数据服务和虚拟转发网桥的云监控方法 | |
CN113839814B (zh) | 去中心化的Kubernetes集群联邦实现方法及系统 | |
CN113504954B (zh) | 调用CSI LVM Plugin插件、动态持久卷供应的方法、系统及介质 | |
CN112698992B (zh) | 一种云集群的容灾管理方法以及相关装置 | |
CN110661641B (zh) | 一种虚拟网络功能vnf部署方法及装置 | |
CN110855488B (zh) | 一种虚拟机接入方法及装置 | |
CN113127152A (zh) | 实现kubernetes容器多网络平面的方法及装置 | |
KR20170043966A (ko) | Nfv 시스템 및 vnfm 연동 방법 | |
CN112995335B (zh) | 一种位置感知的容器调度优化系统及方法 | |
CN104753707A (zh) | 一种系统维护方法及网络交换设备 | |
WO2021077940A1 (zh) | 一种虚拟化方法及装置 | |
CN114416301A (zh) | 数据集合服务容器管理方法 | |
CN110110004B (zh) | 一种数据操作方法、装置和存储介质 | |
CN104836691B (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 | ||
CP02 | Change in the address of a patent holder |
Address after: 200433 floor 7, building 6, No. 99, jiangwancheng Road, Yangpu District, Shanghai Patentee after: Shanghai Daoke Network Technology Co.,Ltd. Address before: Room 1305-12, No.6 Weide Road, Yangpu District, Shanghai 200433 Patentee before: Shanghai Daoke Network Technology Co.,Ltd. |
|
CP02 | Change in the address of a patent holder |