OCI

简单来说OCI(Open Container Initiative (OCI) Specifications)就是两个“规范”

Image specifications

参考文档定义了如下几个部分,总体来说就是我们平时使用的docker image的定义和方式。也保证了image可以跨平台使用,因为所有的image都遵循image specifications。

  • Layer
  • Image Json
  • Layer diffid
  • Layer ChainID
  • ImageID

Runtime specifications

参考文档主要定义了容器运行时需要的内容如下:

  • Root
  • Mounts
  • process
  • user
  • hostname
  • lifecycle

Image和Runtime specifications的协作

引用两张图,来说明协作的事情。
对于遵循image spec的image,runtime spec将可以按照定义的方式,启动停止这些image将其转化为运行时的容器。在运行时/转化的过程中,要考虑几个方面,磁盘,权限,网络,进程。

CNI

容器网络规范文档

  • 容器是一个网络隔离域,尽管规范中没有定义实际的隔离技术。例如,这可以是网络名称空间或虚拟机。
  • 网络指的是一组可唯一寻址的端点,它们可以相互通信。这可能是一个单独的容器(如上所述)、一台机器或一些其他网络设备(例如路由器)。容器可以从概念上添加到一个或多个网络或从中移除。
  • runtime是负责执行CNI插件的程序。
  • 插件是一个应用指定网络配置的程序。

总结CNI规范了:

  • 管理员定义网络配置的格式。
  • 容器运行时向网络插件发出请求的协议。
  • 根据提供的配置执行插件的过程。
  • 插件将功能委托给其他插件的过程。
  • 用于插件将结果返回到运行时的数据类型。

协作

这里参考CNI相关的生命周期

  • 在调用任何插件之前,容器运行时必须为容器创建一个新的网络名称空间。
  • 容器运行时不能为同一容器调用并行操作,但允许为不同容器调用并行操作。这包括多个附件。
  • 插件必须处理跨不同容器并发执行的问题。如有必要,他们必须对共享资源(如IPAM数据库)实施锁定。
  • 容器运行时必须确保add后面最后跟着一个相应的delete。唯一的例外是发生灾难性故障,例如节点丢失。即使添加失败,仍必须执行删除。
  • 删除之后可能会有其他删除。
  • 网络配置不应在添加和删除之间更改。
  • 网络配置不应在附件之间更改。
  • 容器运行时负责清理容器的网络命名空间。

参考资料

https://github.com/opencontainers/image-spec
https://github.com/opencontainers/runtime-spec/blob/main/config.md#startContainer-hooks
https://www.alibabacloud.com/blog/open-container-initiative-oci-specifications_594397#:~:text=The%20Runtime%20Specification%20specifies%20the,sandboxing%20features%20to%20use%2C%20etc
https://zhuanlan.zhihu.com/p/383552578
http://www.dasblinkenlichten.com/understanding-cni-container-networking-interface/
https://github.com/containernetworking/cni/blob/main/SPEC.md

OCI和CNI个人笔记相关推荐

  1. docker和k8s发展史--理解oci/cri/cni/docker swarm/containerd/runc/dockershim

    1. docker和k8s的爱恨情仇 1.1 PaaS的普及和难点 2013年,伴随着 PaaS 概念的逐步普及,以 Cloud Foundry 为代表的经典 PaaS 项目,开始进入基础设施领域的视 ...

  2. CNCF CNI 学习笔记

    如何使用 CNI 1 首先在每个结点上配置 CNI 配置文件(/etc/cni/net.d/xxnet.conf),其中 xxnet.conf 是某一个网络配置文件的名称: 2 安装 CNI 配置文件 ...

  3. Ubuntu 20.04 离线安装podman

    由于本人是linux小白,所以安装过程遇到一些命令,不明白就会查询记录下来.写了1~6步.您可以直接看7,8,9步. 1. deb是什么 deb是debian linus的安装格式,跟red hat的 ...

  4. Kata Containers介绍

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

  5. Kubernetes学习笔记之Calico CNI Plugin源码解析(二)

    女主宣言 今天小编继续为大家分享Kubernetes Calico CNI Plugin学习笔记,希望能对大家有所帮助. PS:丰富的一线技术.多元化的表现形式,尽在"360云计算" ...

  6. Kubernetes学习笔记之Calico CNI Plugin源码解析(一)

    女主宣言 今天小编为大家分享Kubernets Calico CNI Plugin的源码学习笔记,希望对正在学习k8s相关部分的同学有所帮助: PS:丰富的一线技术.多元化的表现形式,尽在" ...

  7. 关于 kubernetes网络(CNI规范)中Calico,NetworkPolicy(网络策略)方面的一些笔记

    写在前面 学习k8s遇到整理笔记 博文内容主要涉及 K8s网络理论体系简述 K8s中Calico网络方案容器跨主机通信过程Demo K8s中Calico的实现方案 K8s中网络策略方式:egress和 ...

  8. Kubernetes系列-OCI、CRI、CNI、CSI、CRD、CNM介绍

    OCI Open Container Initiative,容器开放接口规范,由多家公司共同组成于2015年6月成立的项目(Docker, Google, CoreOS等公司),并由Linux基金会运 ...

  9. OCI、CRI、CNI、CSI规范在kubernetes项目体系里的关系

    OCI.CRI.CNI.CSI.CRD.CNM规范基本概念: (1)OCI(Open Container Initiative):容器开放接口规范,由多家公司共同组成于2015年6月成立的项目(Doc ...

最新文章

  1. C语言数组类型、数组指针类型、数组指针类型变量
  2. C/C++ 基本类型注意事项
  3. gin context和官方context_Go语言gin框架从入门到精通(3)
  4. python与室内设计_基于树莓派和Python的智能家居系统设计
  5. ddos应急处理_当遇到DDOS攻击的几种应对措施
  6. 51. magento 手动创建订单
  7. 移动平均法又称滑动平均法、滑动平均模型法(Moving average,MA)
  8. 庄懂技术美术入门课笔记_L13_特效类shader(AlphaBlendAlphaCutoutAdditice)
  9. java实现影视创作论坛
  10. 浏览器不能上网,QQ能登录 问题解决方法
  11. ListView嵌套viewpager 头部图片轮换,listview 进行下拉刷新
  12. 【基础知识】~ 分频器
  13. Folium库使用心得(二)
  14. JDO持久框架——DataNucles
  15. 从瓶盖挑战事件看企业如何做好新闻事件营销?
  16. 机器学习实战 —— 决策树(完整代码)
  17. 图像处理学习 灰度图像与二值图像
  18. Android应用内换肤
  19. 计算机主机报警 声,电脑出现报警声怎么办?电脑出现报警声的原因
  20. TOR BROWSER 洋葱浏览器

热门文章

  1. 拥抱人工智能,从机器学习开始
  2. 每日新闻:阿里发布AliOS 2.0;百度与Intel成立联合实验室;微软发布Office 2019;苹果公司收购Shazam...
  3. 【如何成为学习高手】学习是有方法的,按照正确的方法练习,每个人都可以成为学霸
  4. 智慧配煤解决方案,焦化行业产能提升解决方案
  5. PopCap的盈利秘诀:《宝石迷阵》的成功运营公式
  6. hdu 5620 KK's Steel(推理)
  7. Y450安装10.9MAC系统Mavericks记录
  8. 全能巨声麦克风音响一体,周末宅家欢乐多
  9. 黑莓手机的一些小技巧
  10. HTML5 DIV+CSS综合运用