OCI和CNI个人笔记
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个人笔记相关推荐
- docker和k8s发展史--理解oci/cri/cni/docker swarm/containerd/runc/dockershim
1. docker和k8s的爱恨情仇 1.1 PaaS的普及和难点 2013年,伴随着 PaaS 概念的逐步普及,以 Cloud Foundry 为代表的经典 PaaS 项目,开始进入基础设施领域的视 ...
- CNCF CNI 学习笔记
如何使用 CNI 1 首先在每个结点上配置 CNI 配置文件(/etc/cni/net.d/xxnet.conf),其中 xxnet.conf 是某一个网络配置文件的名称: 2 安装 CNI 配置文件 ...
- Ubuntu 20.04 离线安装podman
由于本人是linux小白,所以安装过程遇到一些命令,不明白就会查询记录下来.写了1~6步.您可以直接看7,8,9步. 1. deb是什么 deb是debian linus的安装格式,跟red hat的 ...
- Kata Containers介绍
美国东部时间12月5日早上8点,OpenStack基金会于KubeCon峰会正式发布基于Apache 2.0协议的容器技术Kata Containers项目(https://katacontainer ...
- Kubernetes学习笔记之Calico CNI Plugin源码解析(二)
女主宣言 今天小编继续为大家分享Kubernetes Calico CNI Plugin学习笔记,希望能对大家有所帮助. PS:丰富的一线技术.多元化的表现形式,尽在"360云计算" ...
- Kubernetes学习笔记之Calico CNI Plugin源码解析(一)
女主宣言 今天小编为大家分享Kubernets Calico CNI Plugin的源码学习笔记,希望对正在学习k8s相关部分的同学有所帮助: PS:丰富的一线技术.多元化的表现形式,尽在" ...
- 关于 kubernetes网络(CNI规范)中Calico,NetworkPolicy(网络策略)方面的一些笔记
写在前面 学习k8s遇到整理笔记 博文内容主要涉及 K8s网络理论体系简述 K8s中Calico网络方案容器跨主机通信过程Demo K8s中Calico的实现方案 K8s中网络策略方式:egress和 ...
- Kubernetes系列-OCI、CRI、CNI、CSI、CRD、CNM介绍
OCI Open Container Initiative,容器开放接口规范,由多家公司共同组成于2015年6月成立的项目(Docker, Google, CoreOS等公司),并由Linux基金会运 ...
- OCI、CRI、CNI、CSI规范在kubernetes项目体系里的关系
OCI.CRI.CNI.CSI.CRD.CNM规范基本概念: (1)OCI(Open Container Initiative):容器开放接口规范,由多家公司共同组成于2015年6月成立的项目(Doc ...
最新文章
- C语言数组类型、数组指针类型、数组指针类型变量
- C/C++ 基本类型注意事项
- gin context和官方context_Go语言gin框架从入门到精通(3)
- python与室内设计_基于树莓派和Python的智能家居系统设计
- ddos应急处理_当遇到DDOS攻击的几种应对措施
- 51. magento 手动创建订单
- 移动平均法又称滑动平均法、滑动平均模型法(Moving average,MA)
- 庄懂技术美术入门课笔记_L13_特效类shader(AlphaBlendAlphaCutoutAdditice)
- java实现影视创作论坛
- 浏览器不能上网,QQ能登录 问题解决方法
- ListView嵌套viewpager 头部图片轮换,listview 进行下拉刷新
- 【基础知识】~ 分频器
- Folium库使用心得(二)
- JDO持久框架——DataNucles
- 从瓶盖挑战事件看企业如何做好新闻事件营销?
- 机器学习实战 —— 决策树(完整代码)
- 图像处理学习 灰度图像与二值图像
- Android应用内换肤
- 计算机主机报警 声,电脑出现报警声怎么办?电脑出现报警声的原因
- TOR BROWSER 洋葱浏览器
热门文章
- 拥抱人工智能,从机器学习开始
- 每日新闻:阿里发布AliOS 2.0;百度与Intel成立联合实验室;微软发布Office 2019;苹果公司收购Shazam...
- 【如何成为学习高手】学习是有方法的,按照正确的方法练习,每个人都可以成为学霸
- 智慧配煤解决方案,焦化行业产能提升解决方案
- PopCap的盈利秘诀:《宝石迷阵》的成功运营公式
- hdu 5620 KK's Steel(推理)
- Y450安装10.9MAC系统Mavericks记录
- 全能巨声麦克风音响一体,周末宅家欢乐多
- 黑莓手机的一些小技巧
- HTML5 DIV+CSS综合运用