说容器 vs gVisor?

Kata Containers vs gVisor?

据我了解, Kata Containers

Kata Container build a standard implementation of lightweight Virtual Machines (VMs) that feel and perform like containers but provide the workload isolation and security advantages of VMs

另一方面,gvisor

gVisor is a user-space kernel for containers. It limits the host kernel surface accessible to the application while still giving the application access to all the features it expects.

我相信,这两种技术都试图将 linux space 添加到容器中以增​​强安全性。

我的问题是它们之间有何不同?功能是否有重叠?

据我所知:

型容器

  • 轻量级 QEMU/KVM 虚拟机之上的完整内核
    • 内核已在较新版本中进行了优化。
  • 让系统调用自由进行
  • 由于 VM 层导致的性能损失。尚不清楚比 gVisor
  • 慢或快多少
  • 理论上,启动时间较慢。
  • 可以运行任何应用程序。
  • 如果管理程序和硬件支持,可以在嵌套虚拟化环境中 运行。

gVisor

  • 用户空间中的部分内核。
  • 拦截系统调用
  • 由于系统调用过滤,运行 时的性能下降。尚不清楚比 Kata 慢或快多少。
  • 理论上,启动时间更快。
  • 只能运行使用支持的系统调用的应用程序。
  • 理论上,您可能不需要嵌套虚拟化。

这里有一个简单的解释

型容器

Some kind of Containers which run on Hardware.

传统虚拟机安全,但不如容器快速。 Kata Containers Project 就像是一个像 Container 一样轻量级的 Virtual Machine。也就是说,Kata Containers 解决了 VMs.

的低 speed 问题

gVisor

Containers running inside a sandbox named gVisor (there's a sandbox per container)

容器快速但不如虚拟机安全。 gVisor 有点像沙箱,每个容器都应该 运行 在一个沙箱中。也就是说,gVisor解决了Containerssecurity问题。