一种用于函数计算服务的安全容器系统技术方案

技术编号:28500270 阅读:16 留言:0更新日期:2021-05-19 22:42
本发明专利技术公开了一种用于函数计算服务的安全容器系统,属于容器技术领域。本发明专利技术的用于函数计算服务的安全容器系统包括shim进程组件、Qemu进程组件、agent进程组件和定制的虚拟机内核及镜像;shim进程组件运行于宿主机上,负责接收容器管理程序的命令;Qemu进程组件运行于宿主机上,负责创建和管理虚拟机的生命周期,并管理相应的参数;agent进程组件运行于虚拟机内,负责容器和Pod的全生命周期管理;定制的虚拟机内核及镜像对虚拟机的内核及镜像做定制化的修改。该发明专利技术的用于函数计算服务的安全容器系统能够防止对宿主机上程序的危害,并能够充分利用内核的资源,具有很好的推广应用价值。价值。

【技术实现步骤摘要】
一种用于函数计算服务的安全容器系统


[0001]本专利技术涉及容器
,具体提供一种用于函数计算服务的安全容器系统。

技术介绍

[0002]软件产品在生产环境的部署经历了如下几个阶段:1)物理机部署,所有应用均部署于一台物理机上;2)虚拟机部署,虚拟化技术兴起后,将一台物理机分隔成数台相互隔离的虚拟机,将应用根据不同的标准分类部署在不同的虚拟机内,提升了物理机的使用效率;3)容器部署,Docker技术兴起后,大家把应用做成镜像,通过容器统一部署和管理,可以大大提升部署的效率;4)Pod部署,在容器技术被大范围使用后,如何管理成千上万的容器成了一个难题,Kubernetes将有关系的一组容器放到一个Pod内进行统一的调度和管理,完善了应用的整个生命周期管理。
[0003]函数计算服务将每个租户的函数放在Pod中进行调度、运行和管理,不同租户的Pod运行在同一个节点上,同一个节点指一台物理机或虚拟机。这些Pod基于传统的Linux namespace/cgroup技术进行隔离,每个Pod拥有自己单独的IPC和network namespace,同时Pod中的不同容器又单独拥有自己的mnt、pid、user和uts namespace。基于Linux namespace/cgroup技术隔离的Pod和容器共享一个Linux内核,共享同一个Linux内核会出现如下几个问题:1)内核也是在不断地更新完善,已发布的内核会包含漏洞,这些已有漏洞被恶意使用后会使容器内的程序脱离Linux namespace/cgroup的隔离获得root权限,进而对节点上的其他Pod和容器进行攻击;2)如果共享同一个内核的进程触发了内核的bug,造成内核panic,将会导致当前节点上的所有Pod和容器故障,影响其他租户的函数安全和运行;3)共享同一个内核会造成内核资源的竞争,比如调度器、内核线程和对象,会造成部分租户的函数性能抖动,影响应用运行。

技术实现思路

[0004]本专利技术的技术任务是针对上述存在的问题,提供一种能够防止对宿主机上程序的危害,并能够充分利用内核的资源,具有更安全、更稳定性能的用于函数计算服务的安全容器系统。
[0005]为实现上述目的,本专利技术提供了如下技术方案:
[0006]一种用于函数计算服务的安全容器系统,包括shim进程组件、Qemu进程组件、agent进程组件和定制的虚拟机内核及镜像;
[0007]shim进程组件运行于宿主机上,负责接收容器管理程序的命令;
[0008]Qemu进程组件运行于宿主机上,负责创建和管理虚拟机的生命周期,并管理相应的参数;
[0009]agent进程组件运行于虚拟机内,负责容器和Pod的全生命周期管理;
[0010]定制的虚拟机内核及镜像对虚拟机的内核及镜像做定制化的修改。
[0011]镜像使用Clear Linux操作系统,为了提高启动速度,只再包含一个systemd init
进程和一个用于容器和Pod生命周期管理的agent进程。Linux内核使用高版本的内核,包含了一些新特性,可以使用vsock技术进行宿主机和虚拟机之间的通信。同时需要安装virtio的驱动,除了CPU和内存,其他设备通过半虚拟化的方式接入虚拟机。
[0012]所述agent进程组件运行于轻量化虚拟机内,定制的虚拟机内核及镜像为定制的轻量化虚拟机的虚拟机内核及镜像。
[0013]作为优选,所述宿主机上的shim进程组件的一个shim进程代表一个容器或Pod。
[0014]作为优选,所述shim进程组件传递容器和Pod管理命令给虚拟机,并承载虚拟机到宿主机的IO流。
[0015]作为优选,所述Qemu进程组件管理的参数包括虚拟机的设备型号、CPU、IO和内存配置。由于函数计算对于冷启动速度的要求,Qemu进程组件经过定制化后必须足够轻量,才可以满足快速启动的要求,所以,对Qemu进程组件的定制还包括精简不必要的设备,如打印机、屏幕等设备。
[0016]作为优选,所述agent进程组件负责容器和Pod的全生命周期管理包括创建、运行、日志收集、删除和重启。在虚拟机内通过Linux namespace/cgroups技术进行Pod中容器的隔离,达到和在宿主机上使用Pod一样的体验。
[0017]作为优选,所述虚拟机内的agent进程组件管理容器和Pod的生命周期,并将容器的IO流传递给宿主机内的shim进程组件。
[0018]作为优选,所述shim进程组件和虚拟机内的agent进程组件通过Linux vsock进程通信。shim进程组件和虚拟机内的agent进程组件通过Linux vsock技术进行双向通信。
[0019]作为优选,定制的虚拟机镜像包括agent程序。
[0020]该用于函数计算服务的安全容器系统在传统的容器隔离技术上增加了一层虚拟化的隔离,做到了让Pod独占内核的目的,这样既可以让Pod可以稳定运行,也可以防止恶意程序在Pod内对宿主机的破坏。
[0021]与现有技术相比,本专利技术的用于函数计算服务的安全容器系统具有以下突出的有益效果:
[0022](一)所述用于函数计算服务的安全容器系统基于Linux namespace/cgroups隔离技术的容器,具有更安全、稳定的优点,适合运行于同一宿主机上不同租户应用程序的场景;
[0023](二)运行在同一个宿主机上的不同Pod各自拥有独立的内核,即使Pod内的应用程序使用内核漏洞逃离容器的隔离,也无法逃逸到宿主机上,防止了对宿主机上程序的危害;
[0024](三)运行在Pod内的应用程序即使无意触发了内核bug,导致内核panic,也只是影响自己一个Pod,因为当前Pod拥有自己独立的内核,所以并不会对宿主机上的其他Pod和应用程序造成影响;
[0025](四)即使部分Pod过度占用内核资源,也不会对其他Pod造成影响,可以充分利用内核的资源,具有良好的推广应用价值。。
具体实施方式
[0026]下面将结合实施例,对本专利技术的用于函数计算服务的安全容器系统作进一步详细说明。
[0027]实施例
[0028]本专利技术的用于函数计算服务的安全容器系统,包括shim进程组件、Qemu进程组件、agent进程组件和定制的虚拟机内核及镜像。
[0029]shim进程组件运行于宿主机上,负责接收容器管理程序的命令。
[0030]宿主机上的shim进程组件的一个shim进程代表一个容器或Pod。shim进程组件传递容器和Pod管理命令给虚拟机,并承载虚拟机到宿主机的IO流。
[0031]Qemu进程组件运行于宿主机上,负责创建和管理虚拟机的生命周期,并管理相应的参数。
[0032]Qemu进程组件管理的参数包括虚拟机的设备型号、CPU、IO和内存配置。由于函数计算对于冷启动速度的要求,Qemu进程组件经过定制化后必须足够轻量,才可以满足快速启动的要求本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于函数计算服务的安全容器系统,其特征在于:包括shim进程组件、Qemu进程组件、agent进程组件和定制的虚拟机内核及镜像;shim进程组件运行于宿主机上,负责接收容器管理程序的命令;Qemu进程组件运行于宿主机上,负责创建和管理虚拟机的生命周期,并管理相应的参数;agent进程组件运行于虚拟机内,负责容器和Pod的全生命周期管理;定制的虚拟机内核及镜像对虚拟机的内核及镜像做定制化的修改。2.根据权利要求1所述的用于函数计算服务的安全容器系统,其特征在于:所述宿主机上的shim进程组件的一个shim进程代表一个容器或Pod。3.根据权利要求2所述的用于函数计算服务的安全容器系统,其特征在于:所述shim进程组件传递容器和Pod管理命令给虚拟机,并承载虚拟机到宿主机的IO流。4.根据权利要求3所述的用于函...

【专利技术属性】
技术研发人员:于春钰张东海王刚高传集
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:

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

1