发布具有基于虚拟化隔离的 Kata Containers 3.0

经过两年的开发,Kata Containers 3.0 项目已经发布,它开发了一个堆栈,用于使用基于成熟虚拟化机制的隔离来组织容器的执行。 该项目由英特尔和 Hyper 通过结合 Clear Containers 和 runV 技术创建。 项目代码是用 Go 和 Rust 编写的,并在 Apache 2.0 许可下分发。 该项目的开发由独立组织 OpenStack 基金会主持下创建的工作组监督,该组织包括 Canonical、中国移动、戴尔/EMC、EasyStack、谷歌、华为、NetApp、红帽、SUSE 和中兴等公司.

Kata 的核心是运行时,它提供了创建紧凑型虚拟机的能力,这些虚拟机使用成熟的管理程序运行,而不是使用使用通用 Linux 内核并使用命名空间和 cgroup 进行隔离的传统容器。 使用虚拟机可以让您获得更高级别的安全性,以防止因利用 Linux 内核中的漏洞而引起的攻击。

Kata Containers 专注于集成到现有的容器隔离基础架构中,并能够使用此类虚拟机来增强对传统容器的保护。 该项目提供了使轻量级虚拟机与各种容器隔离框架、容器编排平台和 OCI(开放容器计划)、CRI(容器运行时接口)和 CNI(容器网络接口)等规范兼容的机制。 可以与 Docker、Kubernetes、QEMU 和 OpenStack 集成。

发布具有基于虚拟化隔离的 Kata Containers 3.0

与容器管理系统的集成是使用模拟容器管理的层实现的,该层通过 gRPC 接口和特殊代理访问虚拟机中的控制代理。 在由管理程序启动的虚拟环境中,使用经过特别优化的 Linux 内核,仅包含最少的必要功能集。

作为管理程序,支持使用带有 QEMU 工具包的 Dragonball Sandbox(针对容器优化的 KVM 版本),以及 Firecracker 和 Cloud Hypervisor。 系统环境包括初始化守护进程和代理。 该代理以 OCI 格式为 Docker 运行用户定义的容器映像,为 Kubernetes 运行 CRI。 当与 Docker 结合使用时,为每个容器创建一个单独的虚拟机,即管理程序启动的环境用于嵌套容器。

发布具有基于虚拟化隔离的 Kata Containers 3.0

为了减少内存消耗,使用DAX机制(不使用块设备级别直接访问FS绕过page cache),使用KSM(Kernel Samepage Merging)技术去重相同的内存区域,允许共享主机系统资源并连接到不同的客户系统一个共同的系统环境模板。

在新版本中:

  • 提出了另一种运行时(runtime-rs),它形成了容器的填充,用 Rust 语言编写(之前提供的运行时是用 Go 语言编写的)。 Runtime兼容OCI、CRI-O和Containerd,兼容Docker和Kubernetes。
  • 提出了一种基于 KVM 和 rust-vmm 的新龙珠管理程序。
  • 添加了对使用 VFIO 的 GPU 访问转发的支持。
  • 添加了对 cgroup v2 的支持。
  • 通过替换位于“config.d/”目录中的单独文件中的块,在不更改主配置文件的情况下实现了对更改设置的支持。
  • Rust 组件使用一个新的库来安全地处理文件路径。
  • virtiofsd 组件(用 C 编写)已替换为 virtiofsd-rs(用 Rust 编写)。
  • 添加了对 QEMU 组件沙盒隔离的支持。
  • QEMU 使用 io_uring API 进行异步 I/O。
  • 已为 QEMU 和 Cloud-hypervisor 实现了对 Intel TDX(可信域扩展)扩展的支持。
  • 更新组件:QEMU 6.2.0、Cloud-hypervisor 26.0、Firecracker 1.1.0、Linux 内核 5.19.2。

来源: opennet.ru

添加评论