kata-container

KataContainer是一个开源项目,通过轻量级虚拟机提供安全的容器解决方案,利用硬件虚拟化增强隔离性。它由OpenStackFoundation支持,具有安全、兼容性和高性能特点,可替代runc。内部组件如kata-agent和kata-runtime协同工作,实现容器管理和通信优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

kata-container

Kata Container是一个开放源代码的容器,运行时可以构建无缝插入容器生态系统的轻量级虚拟机,致力于通过轻量级虚拟机机来构建安全的容器,这些虚拟机的运行方式和性能类似于容器,但是使用硬件虚拟化救赎作为第二程防御层,可以提供更强的工作负载隔离

​ Kata Container 社区由 OpenStack Foundation(OSF) 领导,该基金会支持全球开放基础架构的开发和采用

特性

  • 安全:在专用的内核中运行,提供网络,I/O和内存的隔离,并可以通过虚拟化扩展利用硬件强制隔离
  • 兼容性:支持行业标准,包括 OCI容器格式,Kubernetes CRI 接口已经旧版虚拟化技术
  • 性能:提供与标准 Liunx 容器一直的性能;提高隔离度,而无需增加标准虚拟化的性能
  • 简单:消除了在完整的虚拟机内部嵌套容器的要求;标准接口使插入和入门变得容易

kata-container 和 runc是平级的。docker 管理容器生命周期的框架,而真正启动容器是 runc,可以换成 kata。kata-container可以当做 docker 的一个插件 。

img

hypervisor

Hypervisor启动用于容器运行的虚拟机,虚拟机包含一个极简的guest kernel和guest image, 然后在虚拟机内部真正起我们想要的容器 。

img

  1. Guest kernel :用于启动VM。 Kata-container高度优化了内核启动时间和极小的内存占用,只用于一个容器的运行。
  2. Guest image : 包含了initrd和rootfs
内部组件
  1. Agent

    kata-agent 是一个运行在虚拟机中的进程,管理虚拟机中的容器进程。

    kata-agent 的最小运行单元是沙箱,一个 kata-agent 沙箱是一个由一些列namespace(NS, UTS, IPC, PID)隔离出来的。 kata-runtime 能够在一个虚拟机内运行多个容器进程以支持POD内多个container模式。

    kata-agent 使用gRPC协议与Kata其他组件通信,在gRPC同一个URL上还运行了一个 yamux 服务。

    kata-agent 使用 libcontainer 管理容器生命周期,复用了 runc 的大部分代码。

  2. Runtime

    kata-runtime 是一个符合OCI(接口规范)规范的容器运行时,负责处理OCI运行时规范中的所有命令,并启动 kata-shim 进程。

  3. Proxy

    默认使用virtio-serial(一种通信机制吧)和VM通信,内核版本高于4.8可以使用vsock,一种虚拟的套接字。VM可以运行多个容器进程。在使用virtio-serial的情况下,与每个进程相关联的I/O流需要在主机上多路复用和解复用。

    Kata-proxy给多个kata-shim和kata-runtime客户端提供对kata-agent的访问,它的主要作用是在每个kata-shim和kata-agent之间路由I/O流和信号。Kata-proxy连接到kata-agent的unix域套接字上,这个套接字是kata-proxy启动时kata-runtime提供的。

  4. Shim

    kata-shim扮演了监控容器进程的角色。Kata-shim需要处理容器的所有I/O流,包括stdout、stdin和stderr,以及转发所有的要发送出去的信号。

参考链接
https://www.csdn.net/tags/MtjaIg5sNTMwODAtYmxvZwO0O0OO0O0O.html
https://www.pianshen.com/article/1321486823/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值