开发者社区> 问答> 正文

业界主要有哪四种方法来实现很好的隔离?

已解决

业界主要有哪四种方法来实现很好的隔离?

展开
收起
阿阿里云 2022-04-07 09:32:45 3317 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    第一种方法是最简单和直接的,就是把容器放在虚拟机里运行,这种方式不 需要对软件栈做改动,只是让同一个用户的容器运行在自己的虚拟机里,但 这样除了有额外的开销和不够高效,还有两层的维护复杂度。

    第二种方法是 MicroVM,仍然使用虚拟化技术来实现安全隔离,但是它的 出发点是针对容器场景实现轻量化的虚拟机,并且实现运行时无缝对接容器 生态,在保证兼容性的前提下尽量降低运行时和维护开销,并保证原生容器 的用户体验。Kata Containers 就是一个 MicroVM 方案。首先,对应用来说, 这是一个兼容 runC 的容器运行时引擎,可以被 Kubernetes 通过 containerd/ CRI-O 调用,可以直接运行任何 Docker 镜像或 OCI 镜像。但与 runC 不同的 是,它使用了硬件虚拟化技术,直接面对用户应用的不再是宿主机的独立内 核,而是一个装在轻量级虚拟机里的内核,即使有未知的安全漏洞导致这个 内核被攻击,攻击者仍然无法轻易突破虚拟化技术构建的沙箱。Kata 的思路 很不错,但是目前还在迭代完善中。

    第三种方法基于进程虚拟化,使用一个特定的内核来提供 Linux ABI,直接虚 拟化进程的运行环境。Google 的 gVisor 就是这样的进程虚拟化方案,实现了 一个新的内核并努力去补齐和兼容 Linux 的系统调用。这种方法的问题是很 难做到 Linux 的全兼容,无法支持部分应用。

    第四种方法基于 Unikernel/LibOS, 让应用带上自己的内核,好处在于简化的 LibOS 有更小的开销和攻击面,但是妨碍它被更广泛应用的问题在于它往往 需要修改应用,只适合比较特定的应用场景。

    《弹性计算:无处不在的算力》电子书可以通过以下链接下载:https://developer.aliyun.com/topic/download?id=7996"

    2022-04-07 10:23:48
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
阿里云开发者社区官方技术圈,用户产品功能发布、用户反馈收集等。
问答排行榜
最热
最新

相关电子书

更多
金融级别大数据平台的多租户隔离实践 立即下载
企业互联网应用架构的探索:共享服务 立即下载
云平台及租户业务安全性研究思考 立即下载