containers github组织的新项目,有点意思,容器的未来,可能是以一种超微虚拟机的形式存在。更像是一个虚拟机,一个真实的linux容器完整的虚拟化。
libkrun是一个动态库,它允许程序使用KVM虚拟化轻松获得在部分隔离的环境中运行进程的能力。
它将 VMM(虚拟机监视器,Hypervisor 的用户空间端)与其目的所需的最少模拟设备集成在一起,抽象了虚拟机管理带来的大部分复杂性,为用户提供了一个简单的 C API。
可能的用例
- 将 VM 隔离功能添加到 OCI 运行时。
- 为无服务器工作负载实施轻量级监狱器。
- 为传统服务带来额外的自我隔离功能(想像一些简单chroot但更强大的东西)。
目标和非目标
目标
- 使其他项目能够轻松获得基于 KVM 的进程隔离能力。
- 自给自足(无需调用外部 VMM)并且非常易于使用。
- 尽可能小,只实现实现目标所需的功能。
- 在各个方面(RAM 消耗、CPU 使用和启动时间)都尽可能减少占用空间。
- 与合理数量的工作负载兼容。
非目标
- 成为通用 VMM。
- 兼容各种工作负载。
变体
该项目提供了该库的两种不同变体:
- libkrun:与所有支持虚拟化的系统兼容的通用变体。
- libkrun-sev:变体,包括支持 AMD SEV(裸 SEV 和 SEV-ES)内存加密和远程证明。需要支持 SEV 的 CPU。
每个变体都会生成一个具有不同名称(和soname)的动态库,因此它们可以同时安装在同一个系统中。
Virtio 设备支持
所有变体
- 虚拟控制台
- virtio-vsock(专门用于 TSI,透明套接字模拟)
库运行
- virtio-fs
- virtio-balloon(仅免费页面报告)
- virtior-rng
libkrun-sev
- 虚拟块
联网
其中libkrun,网络是使用一种称为透明套接字模拟或TSI的新技术实现的。这允许 VM 在没有虚拟接口的情况下具有网络连接(因此,virtio-net不在支持的设备列表中)。
此技术支持传出和传入连接。在 VM 中运行的用户空间应用程序可以透明地连接到 VM 外部的端点,并且还可以从外部接收到 VM 内部侦听端口的连接。
限制
TSI仅支持模拟 AF_INET SOCK_DGRAM 和 SOCK_STREAM 套接字。这意味着无法在 VM 外部使用原始套接字进行通信。
本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 cloud@ksuyun.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.hanjifoods.com/24252.html
如若转载,请注明出处:https://www.hanjifoods.com/24252.html