searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Kata Containers介绍(一)

2023-04-28 07:17:48
61
0

Kata组件

containerd-shim-kata-v2(runtime)

在旧的Kata 1.x架构中,kata运行时是一个名为kata-runtime的可执行文件。容器管理器在创建每个容器时多次调用此可执行文件。每次调用运行时都会提供不同的OCI命令。这种架构很简单,但由于处理调用与调用之间的状态问题,不太适合创建基于VM的容器。此外,该架构还存在性能上的问题,这与不断产生运行时新实例有关,以及kata shim和kata proxy进程不提供VSOCK。

在新的kata 2.x架构中,kata运行时变成了containerd-shim-kata-v2可执行文件,它兼容containerd runtime shimv2架构。shimv2架构能够解决一些1.x中存在的问题:不用再多次调用运行时可执行文件,而是创建一个套接字并将其传递给shimv2运行时。套接字是一个双向通信通道,它使用基于gRPC的协议,允许容器管理器将API调用发送到shimv2运行时。shimv2架构对于任意数量的container都只运行一个实例,这样提升了性能并且解决了多次调用之间的状态问题。

containerd-shim-kata-v2负责启动管理程序及其VM,并使用基于ttRPC的协议通过VSOCK套接字与代理进行通信,该VSOCK套接字提供VM和主机之间的通信链接。(2.0版本开始使用更轻量的ttrpc替代掉grpc)

hypervisor

目前kata支持以下几种hypervisor:

  • ACRN:c语言开发的轻量化hypervisor,主要面向物联网设备。
  • Cloud-Hypervisor:基于rust-vmm使用rust语言开发的轻量化hypervisor,适合高性能要求的云场景工作负载。
  • Firecracker:基于rust-vmm使用rust语言开发的更加轻量化hypervisor,不支持文件系统共享、热插拔、VFIO,适合serverless/FaaS场景。
  • Qemu:c/c++语言开发的hypervisor,轻量程度不及前三种,但是具有丰富的特性,泛用性较强。

kata agent

kata-agent由Rust语言编写,是一个运行在虚拟机内部的代理进程,负责管理容器和在这些容器中运行的工作负载,每个创建的VM只运行一个代理进程。kata 2.0开始,agent通过更加轻量的ttRPC协议,而不是gRPC协议,与其他kata组件通信。

0条评论
0 / 1000
t****n
1文章数
0粉丝数
t****n
1 文章 | 0 粉丝
t****n
1文章数
0粉丝数
t****n
1 文章 | 0 粉丝
原创

Kata Containers介绍(一)

2023-04-28 07:17:48
61
0

Kata组件

containerd-shim-kata-v2(runtime)

在旧的Kata 1.x架构中,kata运行时是一个名为kata-runtime的可执行文件。容器管理器在创建每个容器时多次调用此可执行文件。每次调用运行时都会提供不同的OCI命令。这种架构很简单,但由于处理调用与调用之间的状态问题,不太适合创建基于VM的容器。此外,该架构还存在性能上的问题,这与不断产生运行时新实例有关,以及kata shim和kata proxy进程不提供VSOCK。

在新的kata 2.x架构中,kata运行时变成了containerd-shim-kata-v2可执行文件,它兼容containerd runtime shimv2架构。shimv2架构能够解决一些1.x中存在的问题:不用再多次调用运行时可执行文件,而是创建一个套接字并将其传递给shimv2运行时。套接字是一个双向通信通道,它使用基于gRPC的协议,允许容器管理器将API调用发送到shimv2运行时。shimv2架构对于任意数量的container都只运行一个实例,这样提升了性能并且解决了多次调用之间的状态问题。

containerd-shim-kata-v2负责启动管理程序及其VM,并使用基于ttRPC的协议通过VSOCK套接字与代理进行通信,该VSOCK套接字提供VM和主机之间的通信链接。(2.0版本开始使用更轻量的ttrpc替代掉grpc)

hypervisor

目前kata支持以下几种hypervisor:

  • ACRN:c语言开发的轻量化hypervisor,主要面向物联网设备。
  • Cloud-Hypervisor:基于rust-vmm使用rust语言开发的轻量化hypervisor,适合高性能要求的云场景工作负载。
  • Firecracker:基于rust-vmm使用rust语言开发的更加轻量化hypervisor,不支持文件系统共享、热插拔、VFIO,适合serverless/FaaS场景。
  • Qemu:c/c++语言开发的hypervisor,轻量程度不及前三种,但是具有丰富的特性,泛用性较强。

kata agent

kata-agent由Rust语言编写,是一个运行在虚拟机内部的代理进程,负责管理容器和在这些容器中运行的工作负载,每个创建的VM只运行一个代理进程。kata 2.0开始,agent通过更加轻量的ttRPC协议,而不是gRPC协议,与其他kata组件通信。

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0