当前位置: 首页 > 专利查询>红帽公司专利>正文

减少计算环境中用于容器克隆的部署时间制造技术

技术编号:39814899 阅读:11 留言:0更新日期:2023-12-22 19:33
通过实现本文描述的一些示例,可以减少容器克隆的部署时间

【技术实现步骤摘要】
减少计算环境中用于容器克隆的部署时间


[0001]本公开总体上涉及在计算环境中部署容器

更具体地,但不作为限制,本公开涉及减少计算环境中用于容器克隆的部署时间


技术介绍

[0002]诸如应用

无服务器功能和微服务的软件服务可以部署在计算环境内的容器内

容器
(container)
是通过利用
Linux
内核的资源隔离特征
(
例如,
cgroup
和命名空间
)
创建的相对隔离的虚拟环境

在容器内部署软件服务可以帮助将软件服务彼此隔离,这可以改善速度和安全性并提供其他益处

[0003]使用容器引擎
(
诸如
)
从镜像文件部署容器

这些镜像文件通常被称为容器镜像

容器镜像可以被概念化为层的堆叠布置,其中基础层位于底部,并且其他层位于基础层上方

基础层可以包括用于在容器内部署客户操作系统的操作系统文件

客户操作系统可以与在其上部署容器的物理机器的底层主机操作系统不同

其他层可以包括目标软件服务及其依赖性,诸如其库

二进制文件和配置文件

目标软件服务可以被配置为在容器的隔离上下文内运行
(
例如,在客户操作系统上
)。
在运行时,目标软件服务可以生成存储在与容器镜像不同的存储器区域中的运行时数据,该存储器区域通常是不可变的

这样的运行时数据可以包括环境变量值和其他数据,其可以在为了执行目标软件服务而初始化容器之后生成

附图说明
[0004]图1是根据本公开的一些方面的用于生成容器快照的系统的示例的框图

[0005]图2是根据本公开的一些方面的用于生成容器快照的过程的示例的流程图

[0006]图3是根据本公开的一些方面的用于从容器快照部署容器克隆的系统的示例的框图

[0007]图4是根据本公开的一些方面的用于共享软件服务的运行时数据的系统的示例的框图

[0008]图5是根据本公开内容的一些方面的分层架构的示例的框图

[0009]图6是根据本公开内容的一些方面的用于部署容器克隆的过程的示例的流程图

[0010]图7是根据本公开内容的一些方面的用于减少用于容器克隆的部署时间的系统的示例的框图

[0011]图8是根据本公开的一些方面的用于从容器部署容器克隆的系统的示例的框图

[0012]图9是根据本公开的一些方面的用于从容器部署容器克隆的过程的示例的流程图

具体实施方式
[0013]容器可以出于各种目的被部署在计算环境中,例如以服务客户端请求

不同的容
器可以包括执行不同类型的功能的不同类型的软件服务

例如,一个容器可以包括网络服务器,而另一个容器可以包括负载平衡器

尽管创建容器可以非常快,但是容器内的软件服务的启动进程
(startup process)
可以是任意长的

相同的软件服务可能基于各种各样的因素
(
诸如在其上部署其的物理机器的硬件和软件特性
)
而花费可变的时间量来启动

例如,网络服务器在一个容器中启动可能比在另一个容器中花费更长的时间

因为容器可能无法执行有用的操作,直到其软件服务准备好
(
例如,已经完成启动
)
,所以启动软件服务所花费的时间量可能是容器部署进程中的瓶颈

该瓶颈可能会将时延引入系统中,从而对性能产生负面影响

并且因为瓶颈是高度可变的,所以以抢先的方式预测和考虑瓶颈可能是具有挑战性的

[0014]本公开的一些示例可以通过帮助减少和标准化计算环境中用于容器的部署时间来克服上述问题中的一个或多个

这可以使用本文描述的两种技术来实现

第一种技术涉及使用容器快照来加快部署时间

容器快照是容器在给定时间点的快照

为了创建容器快照,系统可以在计算环境中部署容器

容器可以包括软件服务

软件服务可以经历启动进程,并且一旦其已经完成启动进程就最终进入就绪状态

在软件服务进入就绪状态之后,但是在其实际用于执行任务之前,系统可以生成容器的快照

容器快照可以在该时间点将软件服务的运行时环境存储在容器内

例如,容器快照可以存储作为启动进程的结果的针对软件服务生成的运行时数据

因为容器快照是在启动进程完成之后并且在软件服务实际用于执行任务之前生成的,所以容器快照可以被认为是其中软件服务准备好使用的容器的“纯”版本

在创建容器快照之后,它随后可以用于快速且容易地部署原始容器的克隆
(
副本
)。
因为软件服务在容器快照中已经处于就绪状态,所以软件服务在容器克隆中默认也将至少处于基本就绪状态

因此,当部署容器克隆时,可以至少部分地跳过软件服务的启动进程,这可以显著减少和标准化它们的部署时间

[0015]本文描述的第二技术涉及一种加速从容器快照部署容器克隆的方式

特别地,系统可以接收容器快照并从容器快照部署容器克隆,该容器快照使软件服务默认至少处于基本就绪状态

部署容器克隆的过程的部分可以涉及将运行时数据从容器快照加载到存储器区域中

存储器区域可以在易失性存储器中,诸如
RAM
或高速缓存存储器

在部署容器克隆之后,系统可以冻结容器

冻结容器可以涉及冻结容器内的一些或所有运行过程以暂停或停止它们的执行

通过冻结容器克隆,存储在存储器区域中的运行时数据可以被认为是锁定的,因为它不能被容器克隆修改

这可以允许容器克隆用作模板
(
例如,基础
)
,可以从该模板部署附加的容器克隆

因为容器克隆可以以这种方式用作模板,所以它可以被称为模板容器

然后可以使用已经存储在存储器区域中的运行时数据来部署一个或多个附加容器克隆,而不必将运行时数据从容器快照单独地重新加载到分配给附加容器克隆的附加存储器区域中

这可以减少附加容器克隆的部署时间并改善存储器效率,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种包括程序代码的非暂时性计算机可读介质,所述程序代码可由处理器执行以使所述处理器:接收容器快照,所述容器快照包括在先前时间点在容器内执行的软件服务的运行时数据;至少部分地通过将存储器区域分配给模板容器并将所述运行时数据从容器快照加载到所述存储器区域中来部署来自所述容器快照的所述模板容器;冻结所述模板容器以防止修改所述存储器区域中的所述运行时数据;以及在所述模板容器被冻结时,使用所述存储器区域中的所述运行时数据部署容器克隆,使得所述容器克隆包括基于所述运行时数据默认至少处于基本就绪状态的所述软件服务
。2.
根据权利要求1所述的非暂时性计算机可读介质,其中,所述容器克隆被配置为使用所述存储器区域作为从中取回所述运行时数据的不可变层,并且其中,所述容器克隆被配置为将其他数据存储在与所述不可变层分离并且对所述容器克隆私有的可写层中
。3.
根据权利要求1所述的非暂时性计算机可读介质,其中,所述存储器区域是第一存储器区域,并且还包括可由所述处理器执行以使所述处理器至少部分地通过以下操作来部署所述容器克隆的程序代码:将第二存储器区域分配给所述容器克隆,用于存储在所述容器克隆的运行时期间由所述软件服务生成的数据;以及使用存储在所述第一存储器区域中的所述运行时数据来配置所述容器克隆,而不将所述运行时数据从所述容器快照重新加载到所述第二存储器区域中
。4.
根据权利要求1所述的非暂时性计算机可读介质,还包括可由所述处理器执行以使所述处理器执行以下操作的程序代码:使用存储在所述存储器区域中的所述运行时数据将多个容器克隆同时部署到彼此,而不将所述运行时数据从所述容器快照重新加载到分配给所述多个容器克隆的附加存储器区域中
。5.
根据权利要求1所述的非暂时性计算机可读介质,还包括可由所述处理器执行以使所述处理器执行以下操作的程序代码:将具有所述软件服务的所述容器部署在计算环境中;确定所述软件服务在所述容器内处于就绪状态用于执行客户端任务;在确定所述软件服务处于所述就绪状态之后,生成包括处于所述就绪状态的所述软件服务的所述运行时数据的所述容器快照
。6.
根据权利要求5所述的非暂时性计算机可读介质,其中,所述先前时间点在所述容器完成启动阶段并且所述软件服务进入所述就绪状态之后,并且在所述软件服务用于执行任何客户端任务之前
。7.
根据权利要求5所述的非暂时性计算机可读介质,还包括可由所述处理器执行以使所述处理器执行以下操作的程序代码:在生成所述容器快照之前,访问指示所述软件服务的所述运行时数据的

要从所述容器快照中排除的部分的文件;以及当生成所述容器快照时,从所述容器快照中排除所述部分
。8.
根据权利要求7所述的非暂时性计算机可读介质,其中,所述文件是被配置用于在一
个或多个计算环境中部署所述容器的镜像文件,并且其中所述镜像文件包括指示所述运行时数据的

要从所述容器快照中排除的所述部分的元数据
。9.
一种方法,包括:由处理器接收容器快照,所述容器快照包括在先前时间点在容器内执行的软件服务的运行时数据;由所述处理器至少部分地通过将存储器区域分配给模板容器并将所述运行时数据从容器快照加载到所述存储器区域中来部署来自所述容器快照的所述模板容器;由所述处理器冻结所述模板容器以防止修改所述存储器区域中的所述运行时数据;以及在所述模板容器被冻结时,由所述处理器使用所述存储器区域中的所述运行时数据部署容器克隆,使得所述容器克隆包括基于所述运行时数据默认至少处于基本就绪状态的所述软件服务
。10.
根据权利要求9所述的方法,其中,所述容器克隆被配置为使用所述存储器区域作为从中取回所述运行时数据的不可变层,并且其中,所述容器克隆被配置为将其...

【专利技术属性】
技术研发人员:G
申请(专利权)人:红帽公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1