背景技术:
1、本公开内容涉及用于实例化和迁移容器化进程的方法。更具体地说,本文描述的方法和系统涉及用于实例化和透明地迁移执行中的容器化进程的功能。
2、需要迁移正在执行的进程。传统上,由于执行中的进程对底层操作系统的许多依赖性,在进程执行时迁移该进程是困难的,甚至是不可能的。解决这一需求的传统方法是提供一个虚拟机,进程可以在其中执行,并在虚拟机中包括进程所需的所有硬件和软件资源的虚拟化,然后迁移整个进程。然而,传统的方法通常不提供透明地迁移执行中的进程的功能,该进程在虚拟机内拥有的资源少于所有可用资源。传统的容器运行时进程可以迁移传统的容器化进程(由于它们与其他容器化进程共享操作系统内核,因此容器内的可用资源少于容器内的所有资源),但这种迁移通常不是透明的,也不是在执行容器化进程期间“现场”进行的,因为操作系统内核不能被迁移,而且操作系统与其他进程有很深的联系,因此无法以透明方式进行迁移。
技术实现思路
1、一种用于实例化和透明地迁移正在执行的容器化进程的方法,包括由在第一机器上执行的容器引擎接收在第一机器上实例化容器镜像的指令。容器引擎向在第一机器上执行的修改后的容器运行时进程发送在第一机器上实例化容器镜像的指令。修改后的容器运行时进程在第一机器上生成代表实例化的容器镜像的shim进程。shim进程通过服务器代理(proxy)将指令转发到在第二机器上执行的代理服务器(agent),服务器代理经由网络连接与代理服务器连接。该代理服务器指导容器镜像的实例化,作为一个容器化进程。在第一机器上执行的调度器组件确定将该容器化进程迁移到第三机器。调度器组件在执行容器化进程期间,指导将容器化进程迁移到第三机器。
1.一种用于实例化和透明地迁移执行中的容器化进程的方法,所述方法包括:
2.根据权利要求1所述的方法,其中由所述容器引擎接收在所述第一机器上实例化所述容器镜像的指令还包括由所述容器引擎从在所述第一机器上执行的容器编排引擎接收在所述第一机器上实例化所述容器镜像的指令。
3.根据权利要求1所述的方法,还包括由所述调度器组件确定所述第三机器提供用于以比所述第二机器提供的效率水平更高的效率水平托管所述容器化进程的功能。
4.根据权利要求1所述的方法,还包括由所述调度器组件确定所述第三机器提供用于以比所述第二机器提供的优化级别更高的优化级别托管所述容器化进程的功能。
5.一种用于实例化和透明地迁移执行中的容器化进程的系统,包括:
6.根据权利要求5所述的系统,其中所述第一机器是物理计算设备。
7.根据权利要求5所述的系统,其中所述第一机器是虚拟计算设备。
8.根据权利要求5所述的系统,其中所述第二机器是物理计算设备。
9.根据权利要求5所述的系统,其中所述第二机器是虚拟计算设备。
10.根据权利要求5所述的系统,其中所述容器镜像包括专用内核。
11.根据权利要求5所述的系统,其中所述容器镜像包括在用户模式下作为库执行的专用内核。
12.根据权利要求5所述的系统,其中所述系统还包括容器编排引擎。
13.根据权利要求12所述的系统,其中所述容器引擎还包括用于从所述容器编排引擎接收在所述第一机器上实例化容器镜像的指令的功能。
14.根据权利要求5所述的系统,其中所述容器引擎还包括用于接收执行所述修改后的容器运行时进程的指令的功能。
15.根据权利要求5所述的系统,其中所述调度器组件确定所述第三机器提供用于以比所述第二机器提供的效率水平更高的效率水平托管所述容器化进程的功能。
16.根据权利要求5所述的系统,其中所述调度器组件确定所述第三机器提供用于以比所述第二机器提供的优化级别更高的优化级别托管所述容器化进程的功能。