一种处理器的绑定方法、装置、计算机设备和存储介质与流程

文档序号:23175618发布日期:2020-12-04 14:06阅读:158来源:国知局
本发明实施例涉及容器集群的
技术领域
:,尤其涉及一种处理器的绑定方法、装置、计算机设备和存储介质。
背景技术
::随着容器集群kubernetes逐渐成为容器编排的事实标准,越来越多的企业基于容器集群kubenetes构建容器管理平台。容器管理平台可部署在线任务、离线任务,大部分的离线任务属于大数据相关的作业,i/o(input/output,输入/输出)高,这类离线任务一般运行在多磁盘的物理机上,通过多磁盘和多核处理器(centralprocessingunit,cpu)的配合,达到较高的i/o吞吐。在处理器的使用上,容器集群kubernetes提供了抢占模式与绑定模式,绑核模式是指定容器使用执行任务的核,而不是在所有的核中进行抢占,在绑定模式下,离线任务即使出现cpu资源不足带来iowait(引i/o不足导致的等待)的提升,iowait出现在绑核的核上,不会影响其他核,从而做到在线业务与离线业务在cpu上的隔离。但是,容器集群kubernetes是针对每个容器单独手动配置,除了离线任务要配置绑核,在线业务也要配置绑核,容器集群kubernetes的容器数量多,考虑容器在不同节点上的调度,以及cpu核的个数调整等情况,为每个容器手动配置绑核的运维成本高。一般情况下,在线业务的优先级最高,离线任务的优先级最低,容器集群kubernetes原生支持容器的绑核,限定了绑核的容器的qos(qualityofservice,服务质量)等级,在发生驱逐和抢占时的优先级最高,这不符合离线任务的实际优先级。此外,容器集群kubernetes原生的绑核模式依赖较高的版本,而在实际的生产环境中,不能随意的升级容器集群kubernetes的版本,导致绑核的应用范围较小。技术实现要素:本发明实施例提出了一种处理器的绑定方法、装置、计算机设备和存储介质,以解决在容器集群kubernetes绑核的成本高、任务的优先级错乱、应用范围较小的问题。第一方面,本发明实施例提供了一种处理器的绑定方法,在容器集群kubenetes中具有节点,在所述节点中具有可容纳容器的实例与调度组件,所述方法应用于所述调度组件,包括:接收所述实例的更新事件,所述更新事件包括用于绑定处理器的配置信息;在所述节点中的处理器中,查找处于空闲状态且满足所述配置信息的逻辑核,作为目标核;若查找到所述目标核,则绑定所述实例与所述目标核。可选地,在所述容器集群kubenetes中具有接口服务,所述接收所述实例的更新事件,包括:向所述接口服务发送wath请求,以订阅所述实例绑定处理器的配置信息;接收所述接口服务在所述配置信息发生变化时发送的更新事件。可选地,所述在所述节点中的处理器中,查找处于空闲状态且满足所述配置信息的逻辑核,作为目标核,包括:从所述配置信息中读取目标值;在所述节点中的处理器中,查找处于空闲状态且数量为所述目标值的逻辑核,作为目标核。可选地,所述在所述节点中的处理器中,查找处于空闲状态且满足所述配置信息的逻辑核,作为目标核,包括:在所述节点中的处理器中,按照逻辑核的序号对所述逻辑核进行降序排序;按照降序排序之后的顺序,查找处于空闲状态且满足所述配置信息的逻辑核,作为目标核。可选地,所述绑定所述实例与所述目标核,包括:将所述目标核的序号设置至所述实例的第一配置文件中的绑定模式;将所述目标核的序号更新至所述容器的第二配置文件中的绑定模式。可选地,所述绑定所述实例与所述目标核,还包括:若更新所述第二配置文件失败,则生成更新失败事件;将所述更新失败事件绑定至所述实例。可选地,还包括:若绑定所述实例与所述目标核成功,则将所述目标核从所述空闲状态修改为绑定状态。可选地,还包括:若未查找到所述目标核,则生成绑定失败事件;将所述绑定失败事件绑定至所述实例。可选地,还包括:接收所述实例的删除事件;响应于所述删除事件,查询所述实例当前绑定的逻辑核,作为候选核;将所述候选核从绑定状态修改为空闲状态。可选地,还包括:查询所述实例当前绑定的逻辑核,作为参考核;若所述参考核与所述目标核不同,则将所述实例从绑定所述参考核切换至绑定所述目标核。第二方面,本发明实施例还提供了一种处理器的绑定装置,在容器集群kubenetes中具有节点,在所述节点中具有可容纳容器的实例与调度组件,所述装置位于所述调度组件,包括:更新事件接收模块,用于接收所述实例的更新事件,所述更新事件包括用于绑定处理器的配置信息;目标核查找模块,用于在所述节点中的处理器中,查找处于空闲状态且满足所述配置信息的逻辑核,作为目标核;目标核绑定模块,用于若查找到所述目标核,则绑定所述实例与所述目标核。可选地,在所述容器集群kubenetes中具有接口服务,所述更新事件接收模块包括:接口服务请求子模块,用于向所述接口服务发送wath请求,以订阅所述实例绑定处理器的配置信息;接口服务接收子模块,用于接收所述接口服务在所述配置信息发生变化时发送的更新事件。可选地,所述目标核查找模块包括:目标值读取子模块,用于从所述配置信息中读取目标值;数量查找子模块,用于在所述节点中的处理器中,查找处于空闲状态且数量为所述目标值的逻辑核,作为目标核。可选地,所述目标核查找模块包括:逻辑核排序子模块,用于在所述节点中的处理器中,按照逻辑核的序号对所述逻辑核进行降序排序;降序查找子模块,用于按照降序排序之后的顺序,查找处于空闲状态且满足所述配置信息的逻辑核,作为目标核。可选地,所述目标核绑定模块包括:实例设置子模块,用于将所述目标核的序号设置至所述实例的第一配置文件中的绑定模式;容器更新子模块,用于将所述目标核的序号更新至所述容器的第二配置文件中的绑定模式。可选地,所述目标核绑定模块还包括:更新失败事件生成子模块,用于若更新所述第二配置文件失败,则生成更新失败事件;更新失败事件绑定子模块,用于将所述更新失败事件绑定至所述实例。可选地,还包括:第一状态修改模块,用于若绑定所述实例与所述目标核成功,则将所述目标核从所述空闲状态修改为绑定状态。可选地,还包括:绑定失败事件生成模块,用于若未查找到所述目标核,则生成绑定失败事件;绑定失败事件绑定模块,用于将所述绑定失败事件绑定至所述实例。可选地,还包括:删除事件接收模块,用于接收所述实例的删除事件;候选核查询模块,用于响应于所述删除事件,查询所述实例当前绑定的逻辑核,作为候选核;第二状态修改模块,用于将所述候选核从绑定状态修改为空闲状态。可选地,还包括:参考核查询模块,用于查询所述实例当前绑定的逻辑核,作为参考核;绑定切换模块,用于若所述参考核与所述目标核不同,则将所述实例从绑定所述参考核切换至绑定所述目标核。第三方面,本发明实施例还提供了一种计算机设备,所述计算机设备包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面中任一项所述的处理器的绑定方法。第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如第一方中任一项所述的处理器的绑定方法。本实施例应用于容器集群kubenetes的调度组件进行绑核,调度组件独立于绑核模式,因此无需依赖高版本的容器集群kubenetes的绑核模式,从而使得绑核配置不依赖实例的qos等级,更加适用于业务超卖场景,该调度组件为组件的形式,容器集群kubenetes原生支持调度组件加载、运行,因此无需侵入容器集群kubernetes的代码,可减小对容器集群kubernetes运行的影响,调度组件作为旁路插件即插即用,具备良好的普适性。调度组件接收实例的更新事件,更新事件包括用于绑定处理器的配置信息,在节点中的处理器中,查找处于空闲状态且满足配置信息的逻辑核,作为目标核,若查找到目标核,则绑定实例与目标核。调度组件实现了绑定处理器核的自动管理,通过节点的声明式配置自动进行分配,大大降低了运维成本,可以让i/o密集型的离线任务通过绑定处理器核的方式,将其运行过程中由于超卖带来的iowait提升隔离在特定的处理器核上,从而不会影响在线业务,保证了在混部场景下在线业务的稳定性。附图说明图1为本发明实施例一提供的一种处理器的绑定方法的流程图;图2为本发明实施例一提供的一种容器集群kubenetes的结构示意图;图3是本发明实施例二提供的一种处理器的绑定方法的流程图;图4为本发明实施例三提供的一种处理器的绑定装置的结构示意图;图5为本发明实施例四提供的一种计算机设备的结构示意图。具体实施方式下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。实施例一图1为本发明实施例一提供的一种处理器的绑定方法的流程图,本实施例可适用于在容器集群kubenetes的节点node上运行调度组件,监听本机器上所实例pod的状态变化,从而绑定cpu核的情况。在具体实现中,容器集群kubenetes是自动化容器操作的平台,提供应用部署、维护、扩展机制等功能,可用于管理跨集群运行容器化的应用。容器集群kubenetes中的集群是指一组节点,这些节点可以是物理机器或者虚拟机,在集群之上安装了kubernetes平台。如图2所示,容器集群kubenetes可以包括如下结构:master(主节点):一个容器集群kubenetes中拥有一个主节点master,主节点master拥有一系列组件,比如apiserver(applicationprogramminginterfaceserver,接口服务),apiserver提供可以用来和容器集群kubenetes交互的rest(representationalstatetransfer,表象化状态转变)端点。master可以用于创建和复制实例pod的rc(replicationcontroller,rc可用于保证在任意时间运行pod的副本数量,从而能够保证pod总是可用的)。node(节点):节点node是物理机器或者虚拟机器,作为worker(工作者),节点node也通常称为minion,每个节点node可以运行如下组件:kubelet:主节点代理。kube-proxy:service(服务)使用其将链接路由到pod。docker或rocket:kubernetes使用的容器技术来创建容器。pod(实例):实例pod是容器集群kubernetes创建或部署的最小或最简单的基本单位,一个实例pod代表容器集群kubernetes上正在运行的一个进程,一个实例pod封装一个或多个容器,存储资源、一个独立的ip(internetprotocol,网际互连协议)地址以及管理控制容器运行方式的策略选项。其中,容器是程序代码和和其依赖关系在应用层的一个抽象,多个容器各自作为独立的进程在同一台机器上的用户空间中运行,并共享操作系统内核。vscaled(调度组件):调度组件vscaled是一个daemon组件,运行在每一节点node上,可监听本机上所有实例pod的状态变化,并根据其声明的绑核配置动态调整实例pod绑定的cpu。即,在本实施例中,在容器集群kubenetes中具有节点node,在节点node中具有可容纳容器的实例pod与调度组件vscaled。该方法可以由处理器的绑定装置来执行,该处理器的绑定装置可以由软件和/或硬件实现,可配置在计算机设备中,例如,服务器、工作站、个人电脑,等等,具体包括如下步骤:步骤101、接收实例的更新事件。容器集群kubernetes提供了request/limit(请求/限制)的资源模型来描述容器的资源声明,requests声明的资源是容器集群kubernetes在调度时的依据,而limit声明的资源是容器在实际运行时能使用到资源上限。基于不同的requests/limits配比,容器集群kubernetes定义了guaranteed、burstable、besteffort三类qos等级,在实际生产环境中,大部分的业务容器都会采用一定程度的超卖,以提供资源利用率。其中,当limits大于requests时,实例pod属于超卖的状态。在节点node上,容器的request/limit会转换为配置文件linuxcgroup,通过配置文件cgroup来达到限制容器资源使用的目的。在处理器cpu的使用上,配置文件cgroup提供了两种资源限制方式,一种是通过cpu.cfs_quota限制以cpushare为权重的抢占模式,一种是通过cpuset.cpus做到绑定处理器核的绑核模式。在容器集群kubernetes的资源模型里,既支持通过cpushare的抢占模式使用处理器cpu,也支持通过cpuset的绑核模式来使用处理器cpu,但cpuset的使用前提是容器的request/limit配比为一比一,即容器的qos等级为guaranteed这一最高的qos等级,在发生驱逐和抢占时的优先级最高,不符合离线任务的实际优先级。在实际应用中,用户可以根据在线业务或离线业务的需求,修改在线业务或离线业务所在实例pod中metadata(元数据)的annotation字段,声明期望绑定的处理器,如“cpuset.huya.com:4”。本实施例可应用于调度组件vscaled,调度组件vscaled可监听在同一个节点node上实例pod的状态变化。当用户修改实例pod中metadata(元数据)的annotation字段时,该实例pod所在节点node中调度组件vscaled可接收到该实例pod的更新事件,该更新事件包括用于绑定处理器的配置信息。进一步而言,调度组件vscaled可通过容器集群kubenetes的list/watch机制监听在同一个节点node上实例pod的状态变化。在容器集群kubenetes中具有接口服务apiserver,etcd存储集群的数据信息,接口服务apiserver作为统一入口,对数据的操作一般会经过接口服务apiserver,客户端(kubelet/scheduler/controller-manager/调度组件vscaled)通过list-watch监听接口服务apiserver中资源(pod/rs/rc等等)的create(创建),update(更新)和delete(删除)事件,并针对事件类型调用相应的事件处理函数。list是调用资源的listapi罗列资源,基于http(hypertexttransferprotocol,超文本传输协议)短链接实现;watch则是调用资源的watchapi监听资源变更事件,基于http长链接实现。其中,watchapi,往往带上watch=true,表示采用http长连接持续监听pod相关事件(如更新事件),每当有事件来临,返回一个watchevent。因此,调度组件vscaled可向接口服务apiserver发送wath请求,以订阅实例pod绑定处理器的配置信息,在接口服务apiserver中,接收到wath请求之后,调用rw.watch()创建一个watcher,使用servewatch()来处理这个请求,即记录同一个节点node中实例pod的配置信息是否发生变化,在发生变化时,从watcher的结果channel(频道)中读取一个event对象,生成更新事件,编码写入到response(响应)的流中,并发送至调度组件vscaled,从而调度组件vscaled接收接口服务apiserver在同一个节点node中实例pod的配置信息发生变化时发送的更新事件。步骤102、在节点中的处理器中,查找处于空闲状态且满足配置信息的逻辑核,作为目标核。在本实施例中,调度组件vscaled可从其所在节点node的matadata(元数据)中读取该节点node中处理器的拓扑,并在内存中维护处理器的状态,其中,该状态包括空闲状态、绑定状态,空闲状态表示未被绑定,绑定状态表示已被绑定。一般情况下,拓扑结构为socket、core、hyperthread的层级结构。其中,socket为处理器所在的卡槽。core为处理器的物理核(physicalcore/processor),有独立的电路元件以及l1、l2缓存,可以独立地执行指令。hyperthread为逻辑核(logicalcore/processor,lcpu)上的超线程(hyper-threading,ht)。逻辑核指的是在同一个物理核内,逻辑层面的核。超线程可以在一个逻辑核等待指令执行的间隔(等待从cache或内存中获取下一条指令),把时间片分配到另一个逻辑核。高速在这两个逻辑核之间切换,让应用程序感知不到这个间隔。在具体实现中,调度组件vscaled在监听到节点node绑定处理器的配置信息,则可以在当前节点node中的处理器中,查找处于空闲状态(即未被绑定)且满足配置信息的逻辑核,作为目标核。以数量作为配置信息的示例,则调度组件vscaled可从配置信息中读取目标值,例如,配置信息“cpuset.huya.com:4”中,目标值为4。在节点node中的处理器中,查找处于空闲状态且数量为该目标值的逻辑核,作为目标核。此外,逻辑核配置有序号,节点node中诸如网卡等系统组件,一般会优先使用序号为0的逻辑核,因此,为了避免抢占0号逻辑核,调度组件vscaled可在节点node中的处理器中,按照逻辑核的序号对逻辑核进行降序排序,按照降序排序之后的顺序,查找处于空闲状态且满足配置信息的逻辑核,作为目标核。例如,调度组件vscaled启动后维护着逻辑核的列表,序号分别为[0,31],若在先两个实例pod依次声明绑定处理器,分别需要4个逻辑核和2个逻辑核,依次分配的逻辑核的序号分别为[28,31]、[26,27],则其他实例pod在序号为[0,25]的逻辑核进行绑定。在已绑定的逻辑核较多等情况下,空闲状态(即未绑定)的逻辑核并不满足当前示例pod的需求,若调度组件vscaled未查找到目标核,则可以生成绑定失败事件,将绑定失败事件绑定至当前的实例pod,通知容器集群kubernetes的上层应用。步骤103、若查找到目标核,则绑定实例与目标核。如果调度组件vscaled查找到空闲状态(即未绑定)且满足配置信息的逻辑核作为目标核,则可以将实例pod与目标核进行绑定。在具体实现中,可以将目标核的序号设置至实例pod的第一配置文件cgroup中的绑定模式cpuset。调用dockerupdate(容器更新)接口将目标核的序号更新至该实例pod中容器的第二配置文件cgroup中的绑定模式cpuset,该实例pod中容器在调用处理器执行业务时,按照第二配置文件cgroup中的绑定模式cpuset调用该序号对应的逻辑核(即目标核)执行业务。若设置实例pod的第一配置文件cgroup成功、更新该实例pod中容器的第二配置文件cgroup成功,则确定实例pod与目标核绑定成功。若绑定实例pod与目标核成功,则将目标核的状态从空闲状态修改为绑定状态,以防止后续被其他实例pod调用。进一步而言,第一配置文件cgroup与第二配置文件cgroup均属于配置文件cgroup,配置文件cgroup是linux操作系统提供的一种资源限制机制,它分为多个子系统,分别限制不同类别的资源,例如cpu、memory(存储)、cpuset等,其中cpusetcgroup限制了进程可以使用的处理器核的范围,超出该范围的处理器核心则不会使用,在混部的场景下,cpuset的限制可以避免离线业务的iowait遍布所有处理器核从而影响在线业务。对于原生的容器集群kubernetes,如果调整容器绑定的处理器核,需要重新创建容器,对业务产生很大的影响,而本实施例通过对节点的第一配置文件和容器的第二配置文件进行动态调整实现绑核的动态修改,无需重新创建实例pod、容器,即可修改绑核配置并即时生效,可大大减少对业务的影响。若更新该实例pod中容器的第二配置文件cgroup失败,则确认实例pod与目标核绑定失败,此时,可生成更新失败事件,将该更新失败事件绑定至当前的实例pod,通知容器集群kubernetes的上层应用。本实施例应用于容器集群kubenetes的调度组件进行绑核,调度组件独立于绑核模式,因此无需依赖高版本的容器集群kubenetes的绑核模式,从而使得绑核配置不依赖实例的qos等级,更加适用于业务超卖场景,该调度组件为组件的形式,容器集群kubenetes原生支持调度组件加载、运行,因此无需侵入容器集群kubernetes的代码,可减小对容器集群kubernetes运行的影响,调度组件作为旁路插件即插即用,具备良好的普适性。调度组件接收实例的更新事件,更新事件包括用于绑定处理器的配置信息,在节点中的处理器中,查找处于空闲状态且满足配置信息的逻辑核,作为目标核,若查找到目标核,则绑定实例与目标核。调度组件实现了绑定处理器核的自动管理,通过节点的声明式配置自动进行分配,大大降低了运维成本,可以让i/o密集型的离线任务通过绑定处理器核的方式,将其运行过程中由于超卖带来的iowait提升隔离在特定的处理器核上,从而不会影响在线业务,保证了在混部场景下在线业务的稳定性。实施例二图3为本发明实施例二提供的一种处理器的绑定方法的流程图,本实施例以前述实施例为基础,进一步增加删除实例pod、检测绑定情况的操作,该方法具体包括如下步骤:步骤301、接收实例的更新事件。其中,更新事件包括用于绑定处理器的配置信息。步骤302、在节点中的处理器中,查找处于空闲状态且满足配置信息的逻辑核,作为目标核。步骤303、若查找到目标核,则绑定实例与目标核。步骤304、接收实例的删除事件。在实际应用中,用户可以根据在线业务或离线业务的需求,可通过“kubectldeletepodname”等命令删除在线业务、离线业务所在实例pod。调度组件vscaled可通过list/watch机制等方式监听在同一个节点node上实例pod的状态变化,当用户删除某个实例pod时,该实例pod所在节点node中调度组件vscaled可接收到该实例pod的删除事件。在具体实现中,调度组件vscaled可向接口服务apiserver发送wath请求,以订阅删除实例pod的信息,在接口服务apiserver中,接收到wath请求之后,调用rw.watch()创建一个watcher,使用servewatch()来处理这个请求,即记录同一个节点node中实例pod是否删除,在删除时,从watcher的结果channel(频道)中读取一个event对象,生成删除事件,编码写入到response(响应)的流中,并发送至调度组件vscaled,从而调度组件vscaled接收接口服务apiserver在删除同一个节点node中的实例pod时发送的删除事件。步骤305、响应于删除事件,查询实例当前绑定的逻辑核,作为候选核。调度组件vscaled响应实例pod的删除事件,查询待删除的实例pod当前绑定的逻辑核,作为候选核。一般情况下,可从待删除的实例pod的容器中读取第二配置文件cgroup,从该第二配置文件cgroup读取绑定模式中的序号,确定待删除的实例pod当前绑定该序号表示的逻辑核,从而获得候选核。当然,除了容器的第二配置文件cgroup查询实例当前绑定的逻辑核之外,还可以应用实例pod的第一配置文件cgroup查询实例当前绑定的逻辑核,即从待删除的实例pod中读取第一配置文件cgroup,从该第一配置文件cgroup读取绑定模式中的序号,确定待删除的实例pod当前绑定该序号表示的逻辑核,从而获得候选核,等等,本实施例对此不加以限制。步骤306、将候选核从绑定状态修改为空闲状态。对于待删除的实例pod已绑定的逻辑核(即候选核),可以将其状态从绑定状态修改为空闲状态,使得可以被其他实例pod抢占、绑定,保证逻辑核的正常调配,避免空占的情况,即已被绑定、无业务分配执行。步骤307、查询实例当前绑定的逻辑核,作为参考核。在某些情况下,实例pod实际绑定的逻辑核会发生变化,使得与在先期望绑定的逻辑核不符。例如,由于调度组件vscaled并非容器集群kubernetes的控制程序,容器集群kubernetes在发生故障重启时,会按照默认的方式绑定实例pod与逻辑核,并非按照调度组件vscaled记录的配置信息绑定实例pod与逻辑核。在本实施例中,调度组件vscaled可周期性地查询当前节点node中各个实例pod当前绑定的逻辑核,作为参考核。一般情况下,可从各个实例pod的容器中读取第二配置文件cgroup,从该第二配置文件cgroup读取绑定模式中的序号,确定当前节点node中各个实例pod当前绑定该序号表示的逻辑核,从而获得参考核。当然,除了容器的第二配置文件cgroup查询实例pod当前绑定的逻辑核之外,还可以应用实例pod的第一配置文件cgroup查询实例pod当前绑定的逻辑核,即从各个实例pod中读取第一配置文件cgroup,从该第一配置文件cgroup读取绑定模式中的序号,确定待删除的实例pod当前绑定该序号表示的逻辑核,从而获得参考核,等等,本实施例对此不加以限制。步骤308、若参考核与目标核不同,则将实例从绑定参考核切换至绑定目标核。针对同一个实例pod,参考核为实际绑定的逻辑核,目标核为期望绑定的逻辑核,调度组件vscaled可将参考核与目标核进行比较。如果参考核与目标核相同,则表示实际绑定的逻辑核与预期绑定的逻辑核相同,调度组件vscaled并不做处理,等待下一次检测。如果参考核与目标核不同,则表示实际绑定的逻辑核与预期绑定的逻辑核不同,调度组件vscaled将实例pod从绑定参考核切换至绑定目标核,使得实际绑定的逻辑核与预期绑定的逻辑核相同。在具体实现中,可以将目标核的序号设置至实例pod的第一配置文件cgroup中的绑定模式cpuset。调用dockerupdate(容器更新)接口将目标核的序号更新至该实例pod中容器的第二配置文件cgroup中的绑定模式cpuset,该实例pod中容器在调用处理器执行业务时,按照第二配置文件cgroup中的绑定模式cpuset调用该序号对应的逻辑核(即目标核)执行业务。若设置实例pod的第一配置文件cgroup成功、更新该实例pod中容器的第二配置文件cgroup成功,则确定实例pod与目标核绑定成功。对于切换绑定目标核之后、未被绑定的参考核,可以将该参考核的状态设置为空闲状态。需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。实施例三图4为本发明实施例三提供的一种处理器的绑定装置的结构框图,在容器集群kubenetes中具有节点,在所述节点中具有可容纳容器的实例与调度组件,所述装置位于所述调度组件,具体可以包括如下模块:更新事件接收模块401,用于接收所述实例的更新事件,所述更新事件包括用于绑定处理器的配置信息;目标核查找模块402,用于在所述节点中的处理器中,查找处于空闲状态且满足所述配置信息的逻辑核,作为目标核;目标核绑定模块403,用于若查找到所述目标核,则绑定所述实例与所述目标核。在本发明的一个实施例中,在所述容器集群kubenetes中具有接口服务,所述更新事件接收模块401包括:接口服务请求子模块,用于向所述接口服务发送wath请求,以订阅所述实例绑定处理器的配置信息;接口服务接收子模块,用于接收所述接口服务在所述配置信息发生变化时发送的更新事件。在本发明的一个实施例中,所述目标核查找模块402包括:目标值读取子模块,用于从所述配置信息中读取目标值;数量查找子模块,用于在所述节点中的处理器中,查找处于空闲状态且数量为所述目标值的逻辑核,作为目标核。在本发明的一个实施例中,所述目标核查找模块402包括:逻辑核排序子模块,用于在所述节点中的处理器中,按照逻辑核的序号对所述逻辑核进行降序排序;降序查找子模块,用于按照降序排序之后的顺序,查找处于空闲状态且满足所述配置信息的逻辑核,作为目标核。在本发明的一个实施例中,所述目标核绑定模块403包括:实例设置子模块,用于将所述目标核的序号设置至所述实例的第一配置文件中的绑定模式;容器更新子模块,用于将所述目标核的序号更新至所述容器的第二配置文件中的绑定模式。在本发明的一个实施例中,所述目标核绑定模块403还包括:更新失败事件生成子模块,用于若更新所述第二配置文件失败,则生成更新失败事件;更新失败事件绑定子模块,用于将所述更新失败事件绑定至所述实例。在本发明的一个实施例中,还包括:第一状态修改模块,用于若绑定所述实例与所述目标核成功,则将所述目标核从所述空闲状态修改为绑定状态。在本发明的一个实施例中,还包括:绑定失败事件生成模块,用于若未查找到所述目标核,则生成绑定失败事件;绑定失败事件绑定模块,用于将所述绑定失败事件绑定至所述实例。在本发明的一个实施例中,还包括:删除事件接收模块,用于接收所述实例的删除事件;候选核查询模块,用于响应于所述删除事件,查询所述实例当前绑定的逻辑核,作为候选核;第二状态修改模块,用于将所述候选核从绑定状态修改为空闲状态。在本发明的一个实施例中,还包括:参考核查询模块,用于查询所述实例当前绑定的逻辑核,作为参考核;绑定切换模块,用于若所述参考核与所述目标核不同,则将所述实例从绑定所述参考核切换至绑定所述目标核。本发明实施例所提供的处理器的绑定装置可执行本发明任意实施例所提供的处理器的绑定方法,具备执行方法相应的功能模块和有益效果。实施例四图5为本发明实施例四提供的一种计算机设备的结构示意图。图5示出了适于用来实现本发明实施方式的示例性计算机设备12的框图。图5显示的计算机设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。如图5所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的处理器的绑定方法。实施例五本发明实施例五还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述处理器的绑定方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,计算机可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1