首页 > 编程语言 >Kata Containers 的第二层隔离及其虚拟机管理程序支持

Kata Containers 的第二层隔离及其虚拟机管理程序支持

时间:2024-12-05 11:56:58浏览次数:6  
标签:VMM 虚拟机 支持 Virtio Kata Containers

Kata Containers 的第二层隔离及其虚拟机管理程序支持

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

引言

Kata Containers 在传统容器技术之上引入了第二层隔离,通过结合硬件虚拟化接口,提供更强的安全性和隔离性。本文将详细介绍 Kata Containers 如何将容器技术映射到虚拟机技术,并探讨其在多个虚拟机管理程序(VMM)和虚拟化监视器(VMM)上的支持与实现。

Kata Containers 的架构概述

第二层隔离的实现

Kata Containers 在传统命名空间容器提供的隔离层之上,进一步创建了第二层隔离。这一层依赖于硬件虚拟化接口,利用轻量级虚拟机(VM)来运行容器工作负载。具体来说,Kata Containers 会使用客户机的 Linux 内核,在多容器 Pod 的情况下创建工作负载,并在 Kubernetes 中以 Pod 级别执行沙箱。每个沙箱都是通过虚拟机创建的,确保容器之间具有更强的隔离性和安全性。

容器与虚拟机的映射

Kata Containers 将容器概念映射到虚拟机技术,具体过程如下:

  1. 容器运行时接口(CRI):Kata Containers 通过 CRI 在 Kubernetes 中实现容器的部署和管理。Kubelet 与 CRI 实现者(如 containerd 或 CRI-O)交互,后者与 Kata Containers 作为基于 OCI 的运行时进行通信。

  2. API 构建:为了支持完整的 CRI API,Kata Containers 必须提供相应的构建结构。这些结构进一步映射到与虚拟机连接所需的设备。

  3. 虚拟机概念的底层技术映射:每个虚拟机管理程序或 VMM 都有自己处理这些映射的方式,具体取决于其设计和实现。

支持的虚拟机管理程序和 VMM

Kata Containers 支持多种虚拟机管理程序,每种方案都有其独特的特点和优势。以下是主要支持的 VMM 及其功能概述:

QEMU/KVM

  • 兼容性:带有 QEMU 的 Kata Containers 与 Kubernetes 完全兼容,支持多种主机架构,包括 x86、ARM 和 IBM Power 系统。

  • 设备与功能

    • Virtio VSOCK 或 Virtio 串行:用于虚拟机与宿主机或其他虚拟机之间的通信。
    • Virtio 块或 Virtio SCSI:提供高性能的块设备支持。
    • Virtio 网络:实现高效的网络接口。
    • Virtio FS 或 Virtio 9P:推荐使用 Virtio FS 进行文件系统共享。
    • VFIO:支持设备直通,允许虚拟机直接访问宿主机的硬件设备。
    • 热插拔:支持在运行时添加或移除设备。
    • 机器加速器:优化虚拟机的性能和资源管理。
  • 机器加速器

    • NVDIMM:特定于 x86 架构,用于将根文件系统作为持久内存设备提供给虚拟机。
  • 热插拔设备

    • Kata Containers 的虚拟机会从最少的资源量开始,随着容器启动过程的进行,动态热插拔设备,如 virtio 块、virtio SCSI 和 VFIO 等,以优化资源使用和启动时间。

Firecracker/KVM

  • 架构:Firecracker 建立在 Rust-VMM 的基础上,拥有极简的设备模型,显著减少了代码量和攻击面,适用于功能即服务(FaaS)的使用场景。

  • 功能限制

    • 不支持文件系统共享:仅支持基于块存储的驱动程序。
    • 不支持设备热插拔和 VFIO:无法在虚拟机启动后更新容器资源或进行设备直通。
  • 支持的设备

    • Virtio VSOCK
    • Virtio 块
    • Virtio 网络

Cloud Hypervisor/KVM

  • 设计目标:基于 Rust-VMM,旨在实现更小的占用空间和攻击面,适合运行现代云工作负载。

  • 兼容性:与 QEMU 配置相当,提供与 Kubernetes 的大部分兼容性。

  • 版本支持:自 Kata Containers 1.12 和 2.0.0 版本起,支持包括 CPU 和内存大小调整、设备热插拔、Virtio-fs 文件系统共享、基于块的卷支持等功能。

  • 支持的设备与功能

    • Virtio VSOCK 或 Virtio 串行
    • Virtio 块
    • Virtio 网络
    • Virtio FS 软件
    • Virtio PMEM
    • VFIO
    • 热插拔
    • Seccomp 过滤器:为每个 VMM 线程提供精细的系统调用过滤,增强安全性。
    • HTTP 开放 API

StratoVirt/KVM

  • 概述:StratoVirt 是面向云数据中心的企业级开源 VMM,旨在支持标准虚拟机、容器和无服务器(Micro-VM)工作负载。

  • 优势

    • 轻量级和低资源开销:优化性能,减少资源消耗。
    • 快速启动:支持微虚拟机机器类型,适应快速变化的工作负载需求。
    • 硬件加速:提升虚拟化性能。
    • 语言级安全性:基于 Rust 语言,提高代码安全性。
  • 功能支持

    • Micro-VM 机器类型:主要针对 FaaS 场景,支持 virtio mmio 总线驱动程序。
    • 设备热插拔:支持 virtio 块热插拔。
    • Virtio FS 共享文件系统
    • Virtio RNG:提供熵源支持。
    • QMP API:支持 QEMU 管理协议接口。
  • 功能限制

    • 不支持 CPU/内存大小调整
    • 不支持 VFIO

支持的 Hypervisor 和 VMM 功能总结

解决方案版本介绍小结
Cloud Hypervisor1.10上游 Cloud Hypervisor 提供丰富的功能支持,包括热插拔、VFIO 和文件系统共享
Firecracker1.5上游 Firecracker 基于 Rust-VMM,功能有限,不支持 VFIO、文件系统共享、内存/CPU 热插拔
QEMU/KVM1.0上游 QEMU 支持热插拔和文件系统共享
StratoVirt3.3上游 StratoVirt 提供文件系统共享和 virtio 块热插拔,不支持 VFIO 和 CPU/内存大小调整

总结

Kata Containers 通过在传统容器技术之上引入硬件虚拟化基础的第二层隔离,实现了更强的安全性和隔离性。它支持多种虚拟机管理程序,每种方案各有特点,适应不同的使用场景和需求。以下是主要的关键点总结:

  1. 第二层隔离的实现:利用硬件虚拟化接口,通过轻量级虚拟机为容器提供额外的隔离层,提升安全性。

  2. 虚拟机管理程序的多样性:Kata Containers 支持多种 VMM,如 QEMU/KVM、Firecracker/KVM、Cloud Hypervisor/KVM 和 StratoVirt/KVM,每种 VMM 都有其独特的优势和适用场景。

  3. 功能支持与限制:不同的 VMM 在设备支持、热插拔、VFIO、文件系统共享等方面有不同的支持情况,用户可根据具体需求选择合适的 VMM。

  4. 性能与安全的平衡:通过选择适合的 VMM,Kata Containers 在保证安全隔离的同时,尽可能减少资源消耗和提升性能。

通过这些设计和实现,Kata Containers 为运行在 Kubernetes 上的容器工作负载提供了强大的隔离和安全保障,同时保持了高效的性能表现。

标签:VMM,虚拟机,支持,Virtio,Kata,Containers
From: https://blog.csdn.net/u011027104/article/details/144262279

相关文章

  • 苹果im虚拟机系统,苹果imessage推信软件,苹果iMessage自动群发协议 – 持续更新中...
    一、电脑版虚拟机苹果系统(MacOS)上实现imessage群发:/*MacOS苹果系统,正常情况下,只能安装到苹果公司自己出品的Mac电脑,俗称白苹果,不能安装到各种组装机或者其他品牌的品牌机上,黑苹果的的原理,就是通过一些“破解补丁”工具欺骗macOS系统,让苹果系统认为你的电脑其实是一台苹......
  • DBeaver远程连接虚拟机中的hive
    文章目录DBeaver连接虚拟机中的hive教程Hadoop集群启动与hiveserver启动DBeaver连接hive跑HQL实例DBeaver连接虚拟机中的hive教程Hadoop集群启动与hiveserver启动1.本实例Hadoop集群为伪分布式,启动命令为:start-all.sh2.启动成功后使用jps查看节点是否都成功启动,启......
  • 端口映射让宿主机之外的局域网也能访问Hyper-V下虚拟机
    如果要让宿主机之外的局域网机器也能实现访问,要做端口映射实现,在宿主机打开命令窗口使用以下命令配置端口映射:#查询端口映射netshinterfaceportproxyshowv4tov4#查询指定IP端口映射netshinterfaceportproxyshowv4tov4|findstr"172.21.162.29"#增加一个端口......
  • VMware虚拟机磁盘扩容
    环境:linux系统:ubuntu1.修改磁盘配置2.在虚拟机内部系统分配空间运行以下命令:sudoaptupdatesudoaptinstallgpartedgparted启动如下界面:sda2右键选择“Resize/Move”freespacefollowing直接输入0,回车确认,数值会自动变成下图的样子应用修改检查是否修改成......
  • 高级java每日一道面试题-2024年12月02日-JVM篇-虚拟机为什么使用元空间替换了永久代?
    如果有遗漏,评论区告诉我进行补充面试官:虚拟机为什么使用元空间替换了永久代?我回答:在Java高级面试中,关于虚拟机为何使用元空间替换了永久代的问题,可以从以下几个方面进行详解:一、背景与概念永久代(PermanentGeneration):内存溢出:永久代的大小是固定的,且默认值较小......
  • windows7上可以安哪个版本的VM虚拟机?
    您好,Windows7支持的虚拟机软件版本取决于您的硬件配置和虚拟机使用场景。以下是一些常用的虚拟机软件以及其对Windows7的支持情况:VMwareWorkstation:VMwareWorkstation15.x版本支持Windows7。但是,如果您需要使用WindowsAero动画效果,则需要安装VMwareTools......
  • Java虚拟机(JVM)深度解析
    目录1.JVM介绍2.JVM的组成3.JVM各组成部分的作用3.1类加载器(ClassLoader)3.2运行时数据区(RuntimeDataArea)3.3执行引擎(ExecutionEngine)3.4本地方法接口(NativeMethodInterface)4.运行时数据区详解4.1方法区(MethodArea)4.2堆(Heap)4.3Java栈(JavaStack)4.4本......
  • [kali] kali系统的下载及在虚拟机中详细安装过程(附有下载链接)
    前言kalilinux链接:https://pan.quark.cn/s/7b394681d7c6提取码:k9ES链接失效(可能被官方和谐)可评论或私信我重发下载压缩包后解压!!安装路径不要有中文下载完以后是一个7z压缩包,需要用解压工具解压成文件夹。比如安装bandizip[Bandzip]文件解压工具的下载及详细安装......
  • [Ubuntu] linux之Ubuntu18.04的下载及在虚拟机中详细安装过程(附有下载链接)
    前言ubuntu链接:https://pan.quark.cn/s/283509d0d36e提取码:dfT1链接失效(可能被官方和谐)可评论或私信我重发下载压缩包后解压!!安装路径不要有中文下载后解压得到.iso文件,不要放在有中文路径的目录下,我这里是解压放在E盘下打开虚拟机,这里使用的是VMwareWorkstation......
  • [kali] kali系统的下载及在虚拟机中详细安装过程(附有下载链接)
    前言kalilinux链接:https://pan.quark.cn/s/7b394681d7c6提取码:k9ES链接失效(可能被官方和谐)可评论或私信我重发下载压缩包后解压!!安装路径不要有中文下载完以后是一个7z压缩包,需要用解压工具解压成文件夹。比如安装bandizip[Bandzip]文件解压工具的下载及详细安装......