kata-container github#

https://github.com/kata-containers

https://github.com/kata-containers/runtime

  Kata Containers是一个开源项目和社区,致力于构建轻量级虚拟机(VM)的标准实现——这些虚拟机的感知和执行类似容器,但提供VM的工作负载隔离和安全优势,内核级别的隔离宿主机的内核!Kata Containers 项目最初是基于 QEMU 的,但它的设计从一开始就以支持多种管理程序解决方案为出发点.

kata-containers是什么 #

  kata containers是由OpenStack基金会管理,但独立于OpenStack项目之外的容器项目。它是一个可 以使用容器镜像以超轻量级虚机的形式创建容器的运行时工具。 kata containers整合了Intel的 Clear Containers 和 Hyper.sh 的 runV,能够支持不同平台的硬件 (x86-64,arm等),并符合OCI(Open Container Initiative)规范,同时还可以兼容k8s的 CRI(Container Runtime Interface)接口规范。目前项目包含几个配套组件,即Runtime,Agent, Proxy,Shim,Kernel等

  真正启动Docker容器的命令工具是RunC,它是OCI运行时规范 (runtime-spec)的默认实现。Kata containers其实跟RunC类似,也是一个符合OCI运行时规范的一种 实现(即Clear Container和runV 都符OCI规范),不同之处是,它给每个容器(在Docker容器的 角度)或每个Pod(k8s的角度)增加了一个独立的linux内核(不共享宿主机的内核),使容器有更好 的隔离性,安全性。

容器生态系统中的位置#

  容器运行时是一个相对的概念,比如,从k8s的角度看,直接创建容器的组件是docker或containerd, 因此,将docker、containerd以及新加入的CRI-O作为容器运行时组件。而在docker、containerd或 CRI-O的角度看,真正启动容器的组件是runC,因此,docker中将runC作为容器运行时工具,当然在 docker中,runC可以被替换,比如可以替换为本文介绍的kata containers(即clear Container或者 runV)(角度不同,对象不同)

docker组件关系图#

  我们看到runC处于docker组件图的最底端,runC下面就是容器。目前docker已经不是一个专一的容器 管理组件,而真正的容器管理组件是containerd,而containerd本身也不会直接跟操作系统交互,去 创建、删除容器,而是借助runC来对容器生命周期进行管理因此这里可以讲runC作为容器运行时。容器圈中针对容器运行时指定了OCI规范

Docker的架构#

如红色虚线框内所示,也就是说,只要符合OCI规范的运行时工具,都可以被docker(或者说是 containerd)使用。 了解上面的内容,我想kata containers在容器的什么位置,应该就显而易见了。它符合OCI运行时规 范,因此,可以作为runC的替代组件

k8s组件的结构图#

注: CC 表示 clear containers , CC 和 runV 有一个虚线框圈起来,表示后续这两个组件会合并成 kata containers ,目前可以分别使用。 上图中给出了k8s分别将docker、containerd和CRI-O作为容器管理工具(以k8s角度的容器运行时) 的组件关系图。k8s为了能对接多种容器管理工具,抽象了CRI接口,每个容器管理工具只需实现接口即可。

runc/kata#

包含的组件及其功能介绍#

runtime:符合OCI规范的容器运行时命令工具,主要用来创建轻量级虚机,并通过agent控制虚 拟机内容器的生命周期

agent:运行在虚机中的一个运行时代理组件,主要用来执行runtime传给他的指令,在虚机内 管理容器的生命周期

shim:以对接docker为例,这里的shim相当于是containerd-shim的一个适配,用来处理容器 进程的stdio和signals。shim可以将containerd-shim发来的数据流(如stdin)传给proxy,然 后转交给agent,也可以将agent经由proxy发过来的数据流(stdout/stderr)传给containerdshim,同时也可以传输signal。

这里的shim跟上一节k8s结构图中的shim不是一个组件,上节提到的shim表示 containerd-shim proxy:主要用来为runtime和shim分配访问agent的控制通道,以及路由shim实例和agent之 间的I/O数据流。

kernel:kernel其实比较好理解,就是提供一个轻量化虚机的linux内核,根据不同的需要,提供 几个内核选择,最小的内核仅有4M多

kata containers各组件之间的关系#

reference#

https://blog.csdn.net/O4dC8OjO7ZL6/article/details/78986732

https://www.cnblogs.com/qccz123456/p/10978505.html

https://blog.csdn.net/hdu_hanwei/article/details/82389111

认识kata-containers相关推荐

  1. 从零开始入门 K8s | Kata Containers 创始人带你入门安全容器技术

    作者 | 王旭  蚂蚁金服资深技术专家 本文整理自<CNCF x Alibaba 云原生技术公开课>第 28 讲,点击直达课程页面. 关注"阿里巴巴云原生"公众号,回复 ...

  2. OpenStack基金会携手Intel、Hyper发布开源Kata Containers项目

    OpenStack基金会本周二发布了新的开源项目Kata Containers,其目标是将虚拟机(VM)的安全优势与容器的高速及可管理性结合起来,为用户带来最出色的容器解决方案,同时提供最强大的虚拟机 ...

  3. 基于 Kata Containers 与 iSulad 的云容器实践解析

    在 4 月 9 号结束的 OpenStack 基金会董事会议上,董事们投票批准了 Kata Containers 成为基金会旗下第一个新的顶级开放基础设施(Open Infrastructure)项目 ...

  4. Kata Containers及相关vmm介绍

    Kata Containers介绍 Kata Containers 是轻量级虚拟机的一种新颖实现,可无缝集成到容器生态系统中. Kata Containers 与容器一样轻巧快速,并与容器管理层集成, ...

  5. Kata Containers创始人:安全容器导论

    从2015年5月初开始创业开发 HyperContainer (runV) 到现在,也快五年了,在这个时候还来写一篇什么是安全容器,显得略有尴尬.不过,也正是经过这五年,越来越多到人开始感到,我需要它 ...

  6. Kata Containers介绍

    美国东部时间12月5日早上8点,OpenStack基金会于KubeCon峰会正式发布基于Apache 2.0协议的容器技术Kata Containers项目(https://katacontainer ...

  7. 虚拟机容器嵌合体—— Kata Containers正式走出实验室

    将虚拟机的安全优势与基于软件的容器的部署和管理优势相结合在一起的开源的Kata Containers项目,在周二达到了1.0的里程碑. 由于去年12月宣布的英特尔Clear Containers和Hy ...

  8. Kata Containers 2.0 的进击之路

    Kata Containers 开源项目于2017年底正式启动,其目标是将虚拟机(VM)的安全优势与容器的高速及可管理性相结合,为用户带来出色的容器解决方案.该项目在过去两年取得了哪些进展?下一版本的 ...

  9. 配置Docker以使用Kata Containers

    Kata Containers是一种轻量级的虚拟化技术,它进一步加强了容器的安全性和隔离性.在Linux系统中,可以通过以下步骤安装Kata Containers: 添加Kata Containers ...

  10. Docker集成kata containers

    我现在机器是Linux mint 20.1 对标的是Ubuntu20.04 所以使用20.04的镜像源 echo "deb http://download.opensuse.org/repo ...

最新文章

  1. switch在C++中的用法以及用switch结构时要注意的问题(细节问题比较全面)
  2. 如何编写YARN应用程序
  3. [科技部与你共成长] 数组循环移位
  4. Altium Designer20原理图绘制
  5. Ghost Blog
  6. Android 学习资料
  7. PX4 VTOL控制逻辑
  8. [RE]如何调整堆栈平衡
  9. antdesign vue 表格,点击某行的事件写法
  10. win7网络不显示共享计算机,win7查找不到网络计算机怎么办_win7看不到网络计算机怎么解决-win7之家...
  11. Teigha绘制“月亮”形状
  12. 林轩田机器学习基石笔记(第23-24节)——上限函数Bounding Function
  13. Python3 面向对象编程
  14. 基于php的宠物狗销售网站
  15. 为什么气象站和 AI 都测不准天气?
  16. 带符号整数中负数采用什么编码_计算机系统是如何存储整数、小数、正数、负数的...
  17. 车联网上云最佳实践学习笔记
  18. 一张图理解非对称加密解密过程
  19. 从调制到LTE通信系统
  20. MySQL最新版本安装教程(Windows和Ubuntu)

热门文章

  1. c# RoundUp函数
  2. php采集今日头条,用php蓝天采集器抓取今日头条ajax的文章内容
  3. Docker容器下安装ubantu,其中 command not found 的问题(已经解决)
  4. 720度全景合成详细教程
  5. 选课系统源码html,高校选课系统 - WEB源码|源代码 - 源码中国
  6. Python 环境及开发工具 IDLE 安装教程
  7. 台湾成功大学起诉苹果Siri专利侵权 库克哥凌乱了
  8. java ee在线聊天室_基于jsp的网络聊天室-JavaEE实现网络聊天室 - java项目源码
  9. linux mint xmind运行,[deepin]安装XMind8并创建运行图标
  10. 《早秋客舍》赏析-[唐]杜牧古诗