發布具有基於虛擬化隔離的 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

添加評論