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

Kata Containers 3.2 项目已经发布,开发了一个堆栈,用于使用基于成熟虚拟化机制的隔离来组织容器的执行。 该项目由 Intel 和 Hyper 结合 Clear Containers 和 runV 技术创建。 该项目代码是用 Go 和 Rust 编写的,并在 Apache 2.0 许可证下分发。 该项目的开发由独立组织 OpenStack 基金会支持下创建的工作组负责监督,该工作组成员包括 Canonical、中国移动、Dell/EMC、EasyStack、Google、华为、NetApp、Red Hat、SUSE 和 ZTE 等公司。

Kata 基于运行时,它允许您创建使用完整虚拟机管理程序运行的紧凑虚拟机,而不是使用使用通用 Linux 内核并使用命名空间和 cgroup 进行隔离的传统容器。 使用虚拟机可以让您获得更高级别的安全性,防止利用 Linux 内核漏洞造成的攻击。

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

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

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

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

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

在新版本中:

  • 除了支持 AMD64 (x86_64) 架构之外,还提供了针对 ARM64 (Aarch64) 和 s390 (IBM Z) 架构的版本。 对 ppc64le 架构 (IBM Power) 的支持正在开发中。
  • 为了组织对容器映像的访问,使用了 Nydus 2.2.0 文件系统,该系统使用内容寻址来与标准映像进行高效协作。 Nydus 支持即时加载图像(仅在需要时下载),提供重复数据的重复数据删除,并且可以使用不同的后端进行实际存储。 提供 POSIX 兼容性(与 Composefs 类似,Nydus 实现结合了 OverlayFS 与 EROFS 或 FUSE 模块的功能)。
  • Dragonball 虚拟机管理器已集成到 Kata Containers 项目的主要结构中,该项目现在将在公共存储库中开发。
  • kata-ctl 实用程序中添加了调试功能,用于从主机环境连接到虚拟机。
  • GPU 管理功能得到了扩展,并添加了对将 GPU 转发到机密计算容器(机密容器)的支持,该容器提供数据、内存和执行状态的加密,以便在主机环境或虚拟机管理程序遭到破坏时提供保护。
  • Runtime-rs 中添加了用于管理容器或沙箱环境中使用的设备的子系统。 支持与 vfio、块、网络和其他类型的设备配合使用。
  • 提供与 OCI Runtime 1.0.2 和 Kubernetes 1.23.1 的兼容性。
  • 建议使用带补丁的 6.1.38 版本作为 Linux 内核。
  • 开发已从使用 Jenkins 持续集成系统转移到 GitHub Actions。

来源: opennet.ru

添加评论