一、背景

由于最近知道了 K8s 新版本(v1.20)确定弃用 Docker 的消息,为了明确是否会对现有系统架构产生响,所以对涉及到的相关技术进行了一定的梳理(索性的是对现有的系统架构基本无影响:>)。

二、K8s(版本 < 1.20) 与 Docker 的关系

首先,通过一张图片来说明 K8s(版本<1.20)与 Docker 之间的关系。为了能够更好的理解下边的图片,要先交代下 K8s 的一个限制条件:

那就是 K8s 只能与 CRI 运行时通信

对于啥是 CRI 运行时?我们暂可以简单的将 Ta 理解为与 Docker 同等的存在(另外一个容器容器运行时)。Ok,下面我们来看图说话吧:

通过上边的图片我们可以看到,K8s 是通过 docker-shim 作为桥接服务,将 CRI 转换为 Docker API,然后与 Dokcer 进行通信的。

三、CRI 是啥?

CRI(Container Runtime Interface)是 K8s 定义的一组与容器运行时进行交互的接口,用于将 K8s 平台与特定的容器实现解耦。在 K8s 早期的版本中,对于容器环境的支持是通过 hard code 方式直接调用 Docker API 的,后来为了支持更多的容器运行时和更精简的容器运行时,K8s 提出了CRI。

CRI 运行时有两个实现方案:

  1. containerd
    containerd 是 Docker 的一部分,提供的 CRI 都是由 Docker 提供的。
  2. CRI-O:
    CRI-O 在本质上属于纯 CRI 运行时,因此不包含除 CRI 之外的任何其他内容。

四、OCI 是啥?

当我们谈论「容器运行时」时,请注意我们到底是在谈论哪种类型的运行时,这里运行时分为两种:

  1. CRI 运行时
  2. OCI 运行时

OCI(Open Container Initiative),可以看做是「容器运行时」的一个标准,Ta 使用 Linux 内核系统调用(例如:cgroups 与命名空间)生成容器,按此标准实现的「容器运行时」有 runC 和 gVisor。

四、CRI、OCI 之间的关系?

还是通过图片来说明下吧:

通过上边的图片,我们可以得出如下结论:

实际对容器的操作最终还是要交给 OCI,CRI 也只是个中转

五、参考资料

  • https://mp.weixin.qq.com/s/GHjvvTJ8ZerIyCqXB1BSUQ
  • https://blog.csdn.net/weixin_40864891/article/details/86655846

K8s、Docker、CRI、OCI 之间的爱恨情仇相关推荐

  1. 深度解析单例与序列化之间的爱恨情仇

    转载自 深度解析单例与序列化之间的爱恨情仇 本文将通过实例+阅读Java源码的方式介绍序列化是如何破坏单例模式的,以及如何避免序列化对单例的破坏. 单例模式,是设计模式中最简单的一种.通过单例模式可以 ...

  2. 一篇讲透Kubernetes与GlusterFS之间的爱恨情仇

    http://rdc.hundsun.com/portal/article/826.html http://rdcqii.hundsun.com/portal/article/827.html 存储是 ...

  3. 图文直播:Pokémon Go真爱粉与“脑残粉”之间的爱恨情仇

    世界上分为两种人,Pokémon Go玩家和普通游戏玩家. 近来,一款由日本电子游戏业巨头任天堂和美国软件开发公司Niantic联合开发的智能手机游戏"口袋妖怪Go",又名&quo ...

  4. Spring发展史! 和那些巨头的爱恨情仇!

    ** 码农的春天----------Spring来了 关于Spring的发展起源要回溯到2002年,当时正是Java EE和EJB大行其道的时候,很多知名公司都是采用此技术方案进行项目开发.这时候有一 ...

  5. 点、线、圆、矩形、抛物线的类定义_点、圆、球和n维球体积之间有怎样的爱恨情仇?让我们一起扒开他们之间鲜为人知,惊为天人的秘密关系!...

    吃瓜群众们,请拿好你们的小板凳,错开坐好,不要挡住后面人的视线,不要把西瓜仔西瓜皮乱吐乱丢.我们要开始了. 恩,让我想想,从何说起. 一个点 如左边所示.试想一下,这个点在纸上变大变大变大,就成了圆. ...

  6. 产品经理和程序员的爱恨情仇

    产品经理跪求程序员,程序员跪求程序成功上线! 前几天纯银V在微博上发了一条微博「很多人吐槽"人人都是产品经理"这句话,其实在我看来,这句话的正确理解是"人人都应该学习产品 ...

  7. 『清华ERNIE』 与 『百度ERNIE』 的爱恨情仇

    『清华ERNIE』 与 『百度ERNIE』 的爱恨情仇 FesianXu 20210219 at Baidu intern 前言 最近笔者在查看ERNIE论文的时候,发生了一件很乌龙的事情,本来笔者要 ...

  8. 细数社交巨无霸Facebook与美国媒体的“爱恨情仇”

    前言 "你可以远眺窗外,凝视丹佛的落基山脉.它巍峨壮观的山峰似乎亘古不变,但在风雨的打磨与地壳的碰撞中,实际上山体时时刻刻都在发生变化.新闻行业也一样,商业模式和读者的阅读习惯也在潜移默化重 ...

  9. 【C++】数组和指针的爱恨情仇。。。

    前言   最近研究C++中的数组怎么作为参数传入到函数中,自然而然引出了这篇博客的标题,即数组和指针的爱恨情仇... 1 数组和指针都是啥?   想要知道数组和指针交织在一起会摩擦出怎样的火花,那就先 ...

最新文章

  1. 【转发】什么时候该用委托,为什么要用委托,委托有什么好处
  2. Fedora下配置网卡
  3. 如何修改手机服务器的ip地址,怎么修改手机服务器ip地址
  4. java contions_Java基础---数组总结
  5. CentOS 7.0卸载自带的mariadb
  6. pip国内加载速度慢解决方法
  7. php window.onload,tp_window.onload+相应操作
  8. linux测试网络是否连通ping、telnet命令
  9. leetcode —— 16. 最接近的三数之和
  10. Ubuntu16.04下Nvidia+Cuda8.0+Dynet安装教程
  11. 为什么阿里强制 boolean 类型变量不能使用 is 开头
  12. paip.提升用户体验----- 密码控件的使用
  13. 四川省大学生计算机作品大赛,我院承办2019“新华三杯”四川省大学生计算机作品大赛并获佳绩...
  14. windows操作系统未关闭默认共享
  15. html5新增的标签是什么,HTML5新增标签及含义解释
  16. 抖音小店无货源,怎么操作可以出单?资深电商人在线分享
  17. 【毕业设计】基于树莓派的指纹识别打卡系统 - 单片机 物联网
  18. RecyclerView使用探索1--了解及使用
  19. 最新 UltraEdit 24.20 注册成功经验分享
  20. 国庆 -- 2. 拍婚纱照

热门文章

  1. matlab gui更新结构体,Matlab GUI教程0x5 -handles结构体用法简介
  2. 让人感慨的21个故事
  3. 【STM32H7】第4章 ThreadX FileX文件系统移植到STM32H7(SD卡)
  4. OpenGL实现3D自由变形
  5. html 简繁文件转换器,几行代码轻松搞定网页的简繁转换
  6. C++语法——详细剖析多态与虚函数
  7. c++学习笔记- 自制魔兽显血改键
  8. 通信原理及系统系列29——基于Matlab自动增益控制(AGC)算法分析1
  9. 磊科路由器信号按键_磊科无线路由器设置方法图解
  10. 怎样才能做好app应用推广?