京东智联云原生容器,安全为王
最后,刘俊辉老师就京东智联云原生容器做了相关的介绍。在介绍之前,他先着重讲解了安全性对于容器产品的重要性。
当一个容器平台运行多个租户应用的时候,很容易发生「侧向攻击」,即进程利用系统的漏洞来进行权限提升,例如把自己的权限升级成管理员,从而获得对系统上运行的其他进程或容器的操作权限。目前这类漏洞通常会导致恶意的使用计算资源用来「挖矿」。
针对这一问题,目前有两种解决方案,一种是「限制系统调用」;一种是「独立内核」。
限制系统调用,指的是通过限制应用的系统调用,来降低应用的能力,从而避免对其他应用的危害。目前,Google的Givsor和IBM的Nabla都是采用的这种做法。如下图所示,原来一个应用会访问到所有的系统调用,但在Nabla的模式下,应用只会访问必要的系统调用,其他调用则都被屏蔽了。
但这种方法的弊端在于,它需要你在一开始就要给应用开放「恰到好处」的权限,如果一不小心没有开放足够的权限,那应用就可能会崩溃。
独立内核则参考了虚拟机的解决方案,它是指在容器中增加一个新的内核,这个内核是轻量化的,包括「微内核」和Unikernel两种实现方式。Unikernel和应用是编译在一起的,它们之间可以直接通过函数调用,而不需要系统调用。
这一方案的好处在于,容器本质上只是跟自己的内核打交道,而内核则是跟宿主机打交道,内核与宿主机的交互只需要一些通用的指令即可,不涉及到直接调用到危害系统的指令。目前Kata Container和京东智联云原生容器,就是采用的这种方式。
这种方式的好处在于,微内核作为一个最小化的操作系统,可以满足所有系统的调用,同时去除一些不必要的系统操作部分;它的系统启动时间非常短,可以达到秒级,同时开销比虚拟机要小。
除了安全性之外,京东智联云原生容器还有许多其他的优势,总结起来包括以下几个方面:
- 兼具虚机的安全性和容器的灵活性;
- 采用独立微内核,提供与虚机相同级别的安全保证;
- 使用标准Docker镜像直接启动,无需安装配置宿主机;
- 具有与虚机能力相同的计算、网络、存储能力;
- 支持容器和Pod,支持Kubernetes集群。
通过本次学习,开发者和对云原生感兴趣的人对容器的基本概念有了全面的了解,在老师分享环节之后,有不少学员都通过提问的方式与老师进一步交流,刘俊辉老师也就大家常见的疑问进行了耐心的解答。
值得留意的是,京东智联云还为本次课程设置了「课后作业」环节,作业包括两个部分:
使用京东智联云上的云主机,安装Docker运行环境,了解Docker运行、管理容器的基本操作,使用Linux系统工具,探索容器和Pod的基本结构;
使用京东智联云直接创建原生容器,通过京东智联云控制台对容器进行基本操作。了解、体验原生容器与Docker容器的异同。通过课后练习进一步夯实对容器和Pod的理解,同时完成作业并提交的同学,都可以获得精美的小礼品。
在这样一顿操作之后,很多参加课程的小伙伴都纷纷表示这次课程简直是「帮助小白走近了容器世界的大门」,并对下次课程充满期待!
云原生的时代已来,而你,也将成为这个新时代的构建者之一!