CN109246167B - 一种容器调度方法及装置 - Google Patents
一种容器调度方法及装置 Download PDFInfo
- Publication number
- CN109246167B CN109246167B CN201710559196.1A CN201710559196A CN109246167B CN 109246167 B CN109246167 B CN 109246167B CN 201710559196 A CN201710559196 A CN 201710559196A CN 109246167 B CN109246167 B CN 109246167B
- Authority
- CN
- China
- Prior art keywords
- application
- container
- stateless
- server node
- 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/14—Session management
-
- 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
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)
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例公开了一种容器调度方法及装置。所述方法包括:接收调度应用容器的请求,所述请求中包括所述应用容器中的应用信息;根据所述应用信息判断所述应用容器中的应用是否为无状态应用;当判断结果为是时,将所述应用容器调度至预设无状态服务器节点上。利用本申请方法或装置实施例,可以在进行服务器节点释放之前,不需要对应用容器进行迁移,避免现有技术对容器集群进行收缩的过程中锁定容器集群的步骤,提升用户对容器集群的使用体验感。
Description
技术领域
本申请涉及互联网及云计算技术领域,特别涉及一种容器调度方法及装置。
背景技术
近两年,容器(Container)技术以其轻量级、可移植性高、隔离性好等优点在很多企业得到广泛应用。容器可以用于运行应用(Application),并为应用提供基础环境和服务设施。当应用规模比较庞大时,使用单个容器运行应用实现起来相对困难;或者,当应用比较重要时,需要容器运行期间不能因发生故障而中断服务。在现有的技术方法中,可以通过使用多个容器来部署上述规模比较庞大或者比较重要的应用以解决上述问题,这样,不仅可以提高容器的并发访问能力,还可以避免容器因单点故障而中断服务的问题。上述多个容器对外作为一个整体提供服务,所述多个容器以及容器运行所需要的云资源形成容器集群(Container Cluster),所述云资源通常可以包括多个服务器节点、负载均衡、专有网络等资源。
当容器集群业务压力较小时,可以对容器集群进行收缩,具体的做法可以是释放部分服务器节点。由于每个服务器节点上可以运行多个容器,因此在释放服务器节点之前,需要对服务器节点中的容器进行迁移。在对容器进行迁移时,需要保证容器集群状态的一致性。此时,现有技术中,很多提供容器服务的企业往往是先锁定容器集群,再对容器进行迁移,待迁移完成之后,再恢复容器服务。
现有技术中在进行容器集群收缩过程中锁定容器集群的做法会产生一段时间的集群不可操作状态,影响对用户的服务质量。因此,现有技术中亟需一种不影响容器运行的容器集群收缩方法。
发明内容
本申请实施例的目的在于提供一种容器调度方法及装置,可以在进行服务器节点释放之前,不需要对应用容器进行迁移,避免现有技术对容器集群进行收缩的过程中锁定容器集群的步骤,提升用户对容器集群的使用体验感。
本申请实施例提供的一种容器调度方法及装置具体是这样实现的:
一种容器调度方法,所述方法包括:
接收调度应用容器的请求,所述请求中包括所述应用容器中的应用信息;
根据所述应用信息判断所述应用容器中的应用是否为无状态应用;
当判断结果为是时,将所述应用容器调度至预设无状态服务器节点上。
一种容器调度方法,所述方法包括:
获取容器集群中的无状态服务器节点,所述无状态服务器节点用于部署至少一个运行无状态应用的应用容器;
当需要对所述容器集群进行服务器节点释放时,释放所述无状态服务器节点。
一种容器调度方法,所述方法包括:
确定容器中的应用的类型;
如果所述容器中的应用的类型为无状态应用,将所述容器调度至无状态服务器节点上。
一种容器调度装置,所述装置包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现:
接收调度应用容器的请求,所述请求中包括所述应用容器中的应用信息;
根据所述应用信息判断所述应用容器中的应用是否为无状态应用;
当判断结果为是时,将所述应用容器调度至预设无状态服务器节点上。
一种容器调度装置,所述装置包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现:
获取容器集群中的无状态服务器节点,所述无状态服务器节点用于部署至少一个运行无状态应用的应用容器;
当需要对所述容器集群进行服务器节点释放时,释放所述无状态服务器节点。
一种容器调度装置,所述装置包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现:
确定容器中的应用的类型;
如果所述容器中的应用的类型为无状态应用,将所述容器调度至无状态服务器节点上。
一种容器调度装置,所述装置包括:
请求接收单元,用于接收调度应用容器的请求,所述请求中包括所述应用容器中的应用信息;
状态判断单元,用于根据所述应用信息判断所述应用容器中的应用是否为无状态应用;
第一容器调度单元,用于当所述状态判断单元的判断结果为是时,将所述应用容器调度至预设无状态服务器节点上。
本申请提供的容器调度方法及装置,可以根据应用容器中的应用信息判断所述应用容器中的应用是否为无状态应用,当确定所述应用为无状态应用时,可以将运行所述无状态应用的应用容器调度至预设无状态服务器上。提供上述容器调度方法,可以将无状态应用聚合至预设服务器节点上,基于此,当容器集群需要进行服务器节点释放时,可以优先释放所述预设无状态服务器节点。由于运行无状态应用的应用容器不需要进行数据存储,那么在进行服务器节点释放之前,不需要对应用容器进行迁移,也就避免了现有技术对容器集群进行收缩的过程中锁定容器集群的步骤,提升用户对容器集群的使用体验感。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的部分关键术语之间的关联关系图;
图2是本申请提供的容器调度方法的一种实施例的方法流程图;
图3是本申请提供的判断应用是否为无状态应用方法的一种实施例的方法流程图;
图4是本申请提供的判断应用是否为无状态应用方法的另一种实施例的方法流程图;
图5是本申请提供的容器调度装置的一种实施例的模块结构示意图;
图6是本申请提供的容器调度装置的另一种实施例的模块结构示意图;
图7是本申请提供的容器调度方法的另一种实施例的方法流程图;
图8是本申请提供的容器调度方法的另一种实施例的方法流程图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
为了便于清楚地理解本申请实施例,下面首先介绍本申请中所涉及到的部分关键术语之间的关联关系,所述关联关系如附图1所示,其中,
容器集群(Container Cluster)可以包括容器运行所需要的云资源,所述云资源通常可以包括多个服务器节点、负载均衡、专有网络等资源。
服务器节点可以用于部署和管理容器,所述服务器节点可以为虚拟机实例,也可以为物理服务器。所述服务器节点上可以安装容器运行环境和包管理器,所述管理器例如可以包括Docker平台上的Docker Engine等。另外,还可以将容器服务的Agent程序安装到服务器节点上并注册到容器集群上,所述服务器节点的数量可以伸缩。
所述容器可以包括通过镜像创建的运行时实例,且一个服务器节点上可运行多个容器。
所述镜像可以包括容器应用打包的标准格式文件,在容器中部署应用时可以指定镜像。所述镜像例如可以来自于Docker平台上的Docker Hub、企业云容器Hub、用户私有Registry等。镜像可以通过镜像所在仓库的统一资源标识符(URI)和镜像标签唯一标识。
所述应用可以包含至少一个服务,所述应用可以通过单个镜像或者编排模板创建。
所述服务可以包括多个基于相同镜像和配置定义的容器。
所述编排模板可以包括多个服务关联关系的定义,用于多容器应用的部署和管理。所述编排模板例如可以包括Docker平台上的Docker Compose模板。
下面基于上述关联关系的说明,介绍本申请技术方案的技术环境。
目前,很多企业可以提供容器管理服务,所述容器管理服务可以基于容器管理服务平台,往往可以覆盖应用的完整生命周期。所述容器管理服务不仅可以通过容器平台(如Docker平台)部署应用,还可以对容器集群进行管理,例如可以帮助用户运维、扩展集群管理基础设施等。容器服务可以简化容器管理集群的搭建工作,具有简单易用、灵活弹性、秒级部署等优点。
当容器集群业务压力较小时,容器管理服务平台可以对容器集群中的部分服务器节点进行释放。如上所述,在释放服务器节点之前,很多容器管理服务平台往往是先锁定容器集群,再对容器进行迁移,待迁移完成之后,再释放服务器节点和恢复容器服务。这样导致所述容器集群处于一段时间的不可用状态,影响对用户的服务质量。
利用本申请提供的容器调度方法,可以在调度容器的过程中,将运行无状态应用的容器统一调度至预设服务器节点上。这样,在需要释放服务器节点时,可以直接释放部署有运行无状态应用容器的服务器节点。无状态应用中的数据可以不需要存储保留,因此运行无状态应用的容器不需要迁移,也就可以避免现有技术中进行容器迁移而锁定容器集群的过程,保证容器服务不被中断。
下面结合附图对本申请所述的容器调度方法进行详细的说明。图2是本申请提供的容器调度方法的一种实施例的方法流程图。虽然本申请提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑性上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本申请实施例提供的执行顺序。所述方法在实际中的容器调度过程中或者装置执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
具体的本申请提供的一种容器调度方法的一种实施例如图2所示,所述方法可以包括:
S21:接收调度应用容器的请求,所述请求中包括所述应用容器中的应用信息。
本实施例中,所述应用容器可以为用于运行应用的容器,本实施例中,可以首先获取所述应用容器,再对所述应用容器进行调度。所述对所述应用容器进行调度可以包括将所述应用容器部署至容器集群中的服务器节点上。在获取所述应用容器之前,可以接收调度应用容器的请求。在一个实施例中,所述请求可以来自于用户,即可以由用户创建所述应用容器。在其他实施例中,所述请求可以来自于其他第三方平台等,即可以由其他第三方平台等创建所述应用容器,本申请在此不做限制。
所述请求中可以包括所述应用容器中的应用信息,所述应用信息可以包括所述应用容器中所运行的应用的数据信息。如上所述,所述应用中可以包括至少一个服务,对应地,在一些实施例中,所述应用信息例如可以包括所述应用中所包含的服务的数据信息,所述服务数据信息例如可以包括服务的类别、配置信息等。
本实施例中,所述应用容器中的应用可以包括无状态应用和有状态应用。其中,有状态应用可以具有数据存储功能,所述有状态应用可以保存应用运行过程中所产生的信息数据,所述信息数据例如可以包括工作流、用户状态日志等。典型的,在web应用中,所述有状态应用例如可以包括数据库、缓存等。对应地,所述无状态应用中可以用于执行一次性操作,且不能用于保存数据。
S22:根据所述应用信息判断所述应用容器中的应用是否为无状态应用。
本实施例中,可以根据所述应用信息判断所述应用容器中的应用是否为无状态应用。在一个具体的实施方式中,可以根据所述应用容器的扩展数目确定所述应用容器中的应用是否为无状态应用,具体地,图3是本申请提供的判断应用是否为无状态应用方法的一种实施例的方法流程图,如图3所示,所述方法可以包括:
S31:根据所述应用信息确定所述应用容器的扩展数目;
S32:若所述扩展数目大于1,则确定所述应用容器中的应用为无状态应用。
若所述应用容器中的应用为有状态应用,则所述应用的应用信息可以不相同。反之,所所述应用容器中的应用为无状态应用,则所述应用的应用信息可以为相同信息,所述无状态应用所对应的应用容器可以基于相同的镜像和相同的配置定义。基于此,本实施例中,可以根据所述应用容器的扩展数据确定所述应用容器中的应用是否为无状态应用。具体地,可以确定请求调度的应用容器中具有相同镜像和相同配置定义的应用容器的扩展数目。当所述应用容器的扩展数目大于1时,可以确定所述应用容器中的应用为无状态应用。
本实施例提供的判断应用容器中的应用是否为无状态应用的方法,可以很简便快捷地根据应用容器的扩展数目确定所述应用容器中的应用是否为无状态应用。
在另一个实施例中,还可以根据所述应用容器的应用是否支持复制操作判断所述应用是否为无状态应用。具体地,图4是本申请提供的判断应用是否为无状态应用方法的另一种实施例的方法流程图,如图4所示,所述方法可以包括:
S41:根据所述应用信息判断所述应用容器的应用是否支持复制操作;
S42:若所述应用支持复制操作,则确定所述应用为无状态应用。
若所述应用容器中的应用为有状态应用,为了保证有状态应用的应用信息的稳定性,所述有状态应用的应用信息可以不支持复制操作。反之,如所述应用容器中的应用为无状态应用,则所述应用的应用信息可以支持复制操作。基于此,本实施例中,可以根据所述应用容器中的应用是否支持复制操作确定所述应用知否为无状态应用。具体地,在接收调度应用容器的请求之后,可以对所述请求中的所述应用容器中的应用信息进行复制操作,若所述复制操作可行,则确定所述应用容器中的应用为无状态应用。
本实施例提供的判断应用容器中的应用是否为无状态应用的方法,可以全面、准确地判断所述应用是否为无状态应用。
需要说明的是,本申请中的判断应用是否为无状态应用方法不限于上述实施方式,在其他实施方式中,还可以根据数据卷信息判断所述应用是否为无状态应用,对于判断应用是否为无状态应用的方法,本申请在此不做限制。
本实施例中,可以在对应用容器进行调度之前,获取到所述应用容器中应用的状态信息,并确定出状态应用。
S23:当判断结果为是时,将所述应用容器调度至预设无状态服务器节点上。
本实施例中,当确定所述应用容器中的应用为无状态应用时,可以将所述应用容器调度至预设无状态服务器节点上。所述预设无状态服务器节点可以用于部署运行无状态应用的应用容器。由于所述无状态应用往往执行一次性操作,且不保存数据,那么在释放容器集群中的服务器节点之前,可以不需要对运行无状态应用的应用容器进行数据迁移。本实施例中,可以将运行无状态应用的应用容器聚合至预设无状态服务器节点上,如此,即使需要释放所述预设无状态服务器节点时,可以不需要对部署在所述预设无状态服务器节点上的应用容器进行迁移。
在本申请的一个实施例中,在根据所述应用信息判断所述应用容器中的应用是否为无状态应用之后,所述方法还包括:
SS1:当判断结果为否时,将所述应用容器调度至预设有状态服务器节点上。
本实施例中,当确定所述应用容器中的应用为有状态应用时,可以将所述应用容器调度至预设有状态服务器节点上。这样,所述预设有状态服务器节点上可以聚合有运行有状态应用的应用容器。当需要对所述容器集群进行服务器节点释放时,可以避免释放所述有状态服务器节点。
本实施例中,另一方面还可以记录所述预设无状态服务器节点,例如,可以对无状态服务器节点的个数、节点中包含的应用容器个数等信息进行记录。
基于此,在本申请的一个实施例中,在将所述应用容器部署至预设无状态服务器节点上之后,所述方法还可以包括:
SS2:当需要对所述容器集群进行服务器节点释放时,释放所述预设无状态服务器节点。
本实施例中,当需要对所述容器集群进行服务器节点释放时,可以释放所述预设无状态服务器节点。具体地,可以查询关于所述无状态服务器节点的记录信息,当所述记录信息中记录所述无状态服务器节点的个数大于等于1时,可以释放记录的无状态服务器节点。反之,当所述记录信息中记录所述无状态服务器节点个数为0,则表示所述容器集群中的服务器节点均用于部署运行有状态应用的应用容器,即所述容器集群不可进行收缩。
具体地,在本申请的一个实施例中,所述当需要对所述容器集群进行服务器节点释放时,释放所述预设无状态服务器节点包括:
SS-1:当需要对所述容器集群进行服务器节点释放时,获取预设无状态服务器节点的节点标识;
SS-2:根据所述节点标识访问所述预设无状态服务器节点,并释放所述预设无状态服务器节点所占用的资源。
由上述可知,当应用容器中的应用为无状态应用时,将所述应用容器调度至预设无状态服务器节点上。本实施例中,所述预设无状态服务器节点具有节点标识,所述节点标识例如可以包括所述预设无状态服务器节点的下述至少一种信息:主机名称、MAC地址、硬盘序列号、CPU序列号、BIOS编号等等。因此,当需要对容器集群进行服务器节点释放时,可以获取所述预设无状态服务器的节点标识。根据所述节点标识访问所述预设无状态服务器节点,并释放所述预设无状态服务器节点所占用的资源。
如图5所示,本申请另一方面还提供一种容器调度装置,所述装置包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时可以实现:
接收调度应用容器的请求,所述请求中包括所述应用容器中的应用信息;
根据所述应用信息判断所述应用容器中的应用是否为无状态应用;
当判断结果为是时,将所述应用容器调度至预设无状态服务器节点上。
可选的,在本申请的一个实施例中,所述处理器执行在实现步骤将所述应用容器部署至预设无状态服务器节点上之后,还包括:
当需要对所述容器集群进行服务器节点释放时,释放所述预设无状态服务器节点。
可选的,在本申请的一个实施例中,所述处理器执行在实现步骤当需要对所述容器集群进行服务器节点释放时,释放所述预设无状态服务器节点包括:
当需要对所述容器集群进行服务器节点释放时,获取预设无状态服务器节点的节点标识;
根据所述节点标识访问所述预设无状态服务器节点,并释放所述预设无状态服务器节点所占用的资源。
可选的,在本申请的一个实施例中,所述处理器执行在实现步骤根据所述应用信息判断所述应用容器中的应用是否为无状态应用时可以包括:
根据所述应用信息确定所述应用容器的扩展数目;
若所述扩展数目大于1,则确定所述应用容器中的应用为无状态应用。
可选的,在本申请的一个实施例中,所述处理器执行在实现步骤根据所述应用信息判断所述应用容器中的应用是否为无状态应用时可以包括:
根据所述应用信息判断所述应用容器的应用是否支持复制操作;
若所述应用支持复制操作,则确定所述应用为无状态应用。
可选的,在本申请的一个实施例中,所述处理器执行在实现步骤在根据所述应用信息判断所述应用容器中的应用是否为无状态应用之后,还可以包括:
当判断结果为否时,将所述应用容器调度至预设有状态服务器节点上。
对应于上述容器调度方法,本申请还提供容器调度装置的另一种实施例,图6是本申请提供的容器调度装置的一种实施例的模块结构示意图,如图6所示,所述装置60可以包括:
请求接收单元61,用于接收调度应用容器的请求,所述请求中包括所述应用容器中的应用信息;
状态判断单元62,用于根据所述应用信息判断所述应用容器中的应用是否为无状态应用;
第一容器调度单元63,用于当所述状态判断单元的判断结果为是时,将所述应用容器调度至预设无状态服务器节点上。本申请提供的容器调度方法及装置,可以根据应用容器中的应用信息判断所述应用容器中的应用是否为无状态应用,当确定所述应用为无状态应用时,可以将运行所述无状态应用的应用容器调度至预设无状态服务器上。提供上述容器调度方法,可以将无状态应用聚合至预设服务器节点上,基于此,当容器集群需要进行服务器节点释放时,可以优先释放所述预设无状态服务器节点。由于运行无状态应用的应用容器不需要进行数据存储,那么在进行服务器节点释放之前,不需要对应用容器进行迁移,也就避免了现有技术对容器集群进行收缩的过程中锁定容器集群的步骤,提升用户对容器集群的使用体验感。
本申请另一方面还提供一种容器调度方法,图7是本申请提供的容器调度方法的一种实施例的方法流程图,如图7所示,所述方法可以包括:
S71:获取容器集群中的无状态服务器节点,所述无状态服务器节点用于部署至少一个运行无状态应用的应用容器;
S72:当需要对所述容器集群进行服务器节点释放时,释放所述无状态服务器节点。
对应于上述一种容器调度方法,本申请还提供一种容器调度装置,所述装置包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现:
获取容器集群中的无状态服务器节点,所述无状态服务器节点用于部署至少一个运行无状态应用的应用容器;
当需要对所述容器集群进行服务器节点释放时,释放所述无状态服务器节点。本实施例中,可以获取容器集群中的无状态服务器节点,所述无状态服务器节点用于部署至少一个运行无状态应用的应用容器。在一个实施例中,所述获取无状态服务器节点的方式可以包括获取服务器节点记录数据。本实施例中的所述无状态服务器节点用于部署至少一个运行无状态用于的应用容器,因此,当需要对容器集群进行服务器节点释放时,可以释放所述无状态服务器节点。由于运行无状态应用的应用容器不需要进行数据存储,那么在进行服务器节点释放之前,不需要对应用容器进行迁移,也就避免了现有技术对容器集群进行收缩的过程中锁定容器集群的步骤,提升用户对容器集群的使用体验感。
本申请另一方面还提供容器调度方法的另一种实施例,如图8所示,所述方法可以包括:
S81:确定容器中的应用的类型;
S82:如果所述容器中的应用的类型为无状态应用,将所述容器调度至无状态服务器节点上。
本实施例中,所述应用的类型可以包括无状态应用和有状态应用。具体地,所述确定容器中的应用的类型可以根据所述应用容器的应用信息确定得到,具体的实施方式可以参考上述实施步骤S21,在此不做赘述。
对应于上述一种容器调度方法,本申请还提供一种容器调度装置,所述装置包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现:
确定容器中的应用的类型;
如果所述容器中的应用的类型为无状态应用,将所述容器调度至无状态服务器节点上。
尽管本申请内容中提到实施例中的接收调度请求、应用状态判断、容器调度、节点释放等之类的数据处理描述,但是,本申请并不局限于必须是完全符合行业编程语言设计标准或实施例所描述的数据展示、处理的情况。某些页面设计语言或实施例描述的基础上略加修改后的实施方案也可以实行上述实施例相同、等同或相近、或变形后可预料的实施效果。当然,即使不采用上数据处理、判断的方式,只要符合本申请上述各实施例的接收调度请求、应用状态判断、容器调度、节点释放方式,仍然可以实现相同的申请,在此不再赘述。
虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
上述实施例阐明的单元、装置,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。当然,本申请中所述的某一单元模块也可以将实现同一功能的模块由多个子模块或子模块的组合实现。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。
Claims (15)
1.一种容器调度方法,其特征在于,所述方法包括:
接收调度应用容器的请求,所述请求中包括所述应用容器中的应用信息;
根据所述应用信息判断所述应用容器中的应用是否为无状态应用;
当判断结果为是时,将所述应用容器调度至预设无状态服务器节点上;
当需要对容器集群进行服务器节点释放时,释放所述预设无状态服务器节点。
2.根据权利要求1所述的方法,其特征在于,所述当需要对所述容器集群进行服务器节点释放时,释放所述预设无状态服务器节点包括:
当需要对所述容器集群进行服务器节点释放时,获取预设无状态服务器节点的节点标识;
根据所述节点标识访问所述预设无状态服务器节点,并释放所述预设无状态服务器节点所占用的资源。
3.根据权利要求1所述的方法,其特征在于,所述根据所述应用信息判断所述应用容器中的应用是否为无状态应用包括:
根据所述应用信息确定所述应用容器的扩展数目;
若所述扩展数目大于1,则确定所述应用容器中的应用为无状态应用。
4.根据权利要求1所述的方法,其特征在于,所述根据所述应用信息判断所述应用容器中的应用是否为无状态应用包括:
根据所述应用信息判断所述应用容器的应用是否支持复制操作;
若所述应用支持复制操作,则确定所述应用为无状态应用。
5.根据权利要求1所述的方法,其特征在于,在根据所述应用信息判断所述应用容器中的应用是否为无状态应用之后,所述方法还包括:
当判断结果为否时,将所述应用容器调度至预设有状态服务器节点上。
6.一种容器调度方法,其特征在于,所述方法包括:
获取容器集群中的无状态服务器节点,所述无状态服务器节点用于部署至少一个运行无状态应用的应用容器;所述无状态应用的应用容器是在其应用被判断为无状态应用时调度至所述无状态服务器节点上的;
当需要对所述容器集群进行服务器节点释放时,释放所述无状态服务器节点。
7.一种容器调度方法,其特征在于,所述方法包括:
确定容器中的应用的类型;
如果所述容器中的应用的类型为无状态应用,将所述容器调度至无状态服务器节点上;
当需要对容器集群进行服务器节点释放时,释放所述无状态服务器节点。
8.一种容器调度装置,其特征在于,所述装置包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现:
接收调度应用容器的请求,所述请求中包括所述应用容器中的应用信息;
根据所述应用信息判断所述应用容器中的应用是否为无状态应用;
当判断结果为是时,将所述应用容器调度至预设无状态服务器节点上;
当需要对容器集群进行服务器节点释放时,释放所述预设无状态服务器节点。
9.根据权利要求8所述的装置,其特征在于,所述处理器执行在实现步骤当需要对所述容器集群进行服务器节点释放时,释放所述预设无状态服务器节点包括:
当需要对所述容器集群进行服务器节点释放时,获取预设无状态服务器节点的节点标识;
根据所述节点标识访问所述预设无状态服务器节点,并释放所述预设无状态服务器节点所占用的资源。
10.根据权利要求8所述的装置,其特征在于,所述处理器执行在实现步骤根据所述应用信息判断所述应用容器中的应用是否为无状态应用时包括:
根据所述应用信息确定所述应用容器的扩展数目;
若所述扩展数目大于1,则确定所述应用容器中的应用为无状态应用。
11.根据权利要求8所述的装置,其特征在于,所述处理器执行在实现步骤根据所述应用信息判断所述应用容器中的应用是否为无状态应用时包括:
根据所述应用信息判断所述应用容器的应用是否支持复制操作;
若所述应用支持复制操作,则确定所述应用为无状态应用。
12.根据权利要求8所述的装置,其特征在于,所述处理器执行在实现步骤在根据所述应用信息判断所述应用容器中的应用是否为无状态应用之后,还包括:
当判断结果为否时,将所述应用容器调度至预设有状态服务器节点上。
13.一种容器调度装置,其特征在于,所述装置包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现:
获取容器集群中的无状态服务器节点,所述无状态服务器节点用于部署至少一个运行无状态应用的应用容器;所述无状态应用的应用容器是在其应用被判断为无状态应用时调度至所述无状态服务器节点上的;
当需要对所述容器集群进行服务器节点释放时,释放所述无状态服务器节点。
14.一种容器调度装置,其特征在于,所述装置包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现:
确定容器中的应用的类型;
如果所述容器中的应用的类型为无状态应用,将所述容器调度至无状态服务器节点上;
当需要对容器集群进行服务器节点释放时,释放所述无状态服务器节点。
15.一种容器调度装置,其特征在于,所述装置包括:
请求接收单元,用于接收调度应用容器的请求,所述请求中包括所述应用容器中的应用信息;
状态判断单元,用于根据所述应用信息判断所述应用容器中的应用是否为无状态应用;
第一容器调度单元,用于当所述状态判断单元的判断结果为是时,将所述应用容器调度至预设无状态服务器节点上;
所述装置还包括:当需要对容器集群进行服务器节点释放时,释放所述预设无状态服务器节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710559196.1A CN109246167B (zh) | 2017-07-11 | 2017-07-11 | 一种容器调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710559196.1A CN109246167B (zh) | 2017-07-11 | 2017-07-11 | 一种容器调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109246167A CN109246167A (zh) | 2019-01-18 |
CN109246167B true CN109246167B (zh) | 2022-04-01 |
Family
ID=65083692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710559196.1A Active CN109246167B (zh) | 2017-07-11 | 2017-07-11 | 一种容器调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109246167B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7562370B2 (en) * | 2004-04-28 | 2009-07-14 | International Business Machines Corporation | Stateless session Enterprise Java Bean initialization method |
CN101694709A (zh) * | 2009-09-27 | 2010-04-14 | 华中科技大学 | 一种面向服务的分布式工作流管理系统 |
CN103473298A (zh) * | 2013-09-04 | 2013-12-25 | 华为技术有限公司 | 数据归档方法和装置以及存储系统 |
CN105607954A (zh) * | 2015-12-21 | 2016-05-25 | 华南师范大学 | 一种有状态容器在线迁移的方法和装置 |
CN105631196A (zh) * | 2015-12-22 | 2016-06-01 | 中国科学院软件研究所 | 一种面向微服务架构的容器级弹性资源供给系统及方法 |
CN105760212A (zh) * | 2016-02-02 | 2016-07-13 | 贵州大学 | 一种基于容器的数据重分布方法及装置 |
CN106603592A (zh) * | 2015-10-15 | 2017-04-26 | 中国电信股份有限公司 | 一种用于基于服务模型的应用集群迁移的方法和迁移装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030167456A1 (en) * | 2000-04-17 | 2003-09-04 | Vinay Sabharwal | Architecture for building scalable object oriented web database applications |
US9336060B2 (en) * | 2011-06-17 | 2016-05-10 | Microsoft Technology Licensing, Llc | Middleware services framework for on-premises and cloud deployment |
CN103716182B (zh) * | 2013-12-12 | 2016-08-31 | 中国科学院信息工程研究所 | 一种面向实时云平台的故障检测与容错方法及系统 |
US9766945B2 (en) * | 2015-06-25 | 2017-09-19 | Wmware, Inc. | Virtual resource scheduling for containers with migration |
-
2017
- 2017-07-11 CN CN201710559196.1A patent/CN109246167B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7562370B2 (en) * | 2004-04-28 | 2009-07-14 | International Business Machines Corporation | Stateless session Enterprise Java Bean initialization method |
CN101694709A (zh) * | 2009-09-27 | 2010-04-14 | 华中科技大学 | 一种面向服务的分布式工作流管理系统 |
CN103473298A (zh) * | 2013-09-04 | 2013-12-25 | 华为技术有限公司 | 数据归档方法和装置以及存储系统 |
CN106603592A (zh) * | 2015-10-15 | 2017-04-26 | 中国电信股份有限公司 | 一种用于基于服务模型的应用集群迁移的方法和迁移装置 |
CN105607954A (zh) * | 2015-12-21 | 2016-05-25 | 华南师范大学 | 一种有状态容器在线迁移的方法和装置 |
CN105631196A (zh) * | 2015-12-22 | 2016-06-01 | 中国科学院软件研究所 | 一种面向微服务架构的容器级弹性资源供给系统及方法 |
CN105760212A (zh) * | 2016-02-02 | 2016-07-13 | 贵州大学 | 一种基于容器的数据重分布方法及装置 |
Non-Patent Citations (1)
Title |
---|
"云端应用的自动化高可用部署技术研究";郑健;《中国优秀硕士学位论文全文数据库(电子期刊)》;20151215;I138-82 * |
Also Published As
Publication number | Publication date |
---|---|
CN109246167A (zh) | 2019-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11307890B2 (en) | Methods and apparatus to manage virtual machines | |
US11405274B2 (en) | Managing virtual network functions | |
EP3340057B1 (en) | Container monitoring method and apparatus | |
US9491117B2 (en) | Extensible framework to support different deployment architectures | |
US9626172B2 (en) | Deploying a cluster | |
US9641392B2 (en) | Policy implementation in a networked computing environment | |
US20180060187A1 (en) | Intelligent restore-container service offering for backup validation testing and business resiliency | |
US9253053B2 (en) | Transparently enforcing policies in hadoop-style processing infrastructures | |
US9348709B2 (en) | Managing nodes in a distributed computing environment | |
US20150186129A1 (en) | Method and system for deploying a program module | |
JP5352890B2 (ja) | 計算機システムの運用管理方法、計算機システム及びプログラムを記憶する計算機読み取り可能な媒体 | |
CN111290828A (zh) | 使用容器编排服务进行动态路由 | |
US20150067761A1 (en) | Managing security and compliance of volatile systems | |
US9760441B2 (en) | Restoration of consistent regions within a streaming environment | |
US10783007B2 (en) | Load distribution for integration scenarios | |
CN109246167B (zh) | 一种容器调度方法及装置 | |
EP3916540A1 (en) | Compiling monoglot function compositions into a single entity | |
Mosa et al. | Towards a cloud native big data platform using micado | |
US20220350656A1 (en) | Increase assignment effectiveness of kubernetes pods by reducing repetitive pod mis-scheduling | |
US9436523B1 (en) | Holistic non-invasive evaluation of an asynchronous distributed software process | |
US11288291B2 (en) | Method and system for relation discovery from operation data | |
US20240103818A1 (en) | Annotation driven just in time and state-based rbac policy control | |
Kousalya et al. | Workflow modeling and simulation techniques | |
Srikrishnan et al. | A log data analytics based scheduling in open source cloud software | |
CN114064054A (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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230601 Address after: Room 1-2-A06, Yungu Park, No. 1008 Dengcai Street, Sandun Town, Xihu District, Hangzhou City, Zhejiang Province Patentee after: Aliyun Computing Co.,Ltd. Address before: Cayman Islands, Grand Cayman Patentee before: ALIBABA GROUP HOLDING Ltd. |