K8S为什么要弃用Docker?Dockershim将移除
一、背景
由于最近知道了 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 运行时有两个实现方案:
containerd
containerd 是 Docker 的一部分,提供的 CRI 都是由 Docker 提供的。
CRI-O:
CRI-O 在本质上属于纯 CRI 运行时,因此不包含除 CRI 之外的任何其他内容。
四、OCI 是啥?
当我们谈论「容器运行时」时,请注意我们到底是在谈论哪种类型的运行时,这里运行时分为两种:
CRI 运行时
OCI 运行时
OCI(Open Container Initiative),可以看做是「容器运行时」的一个标准,Ta 使用 Linux 内核系统调用(例如:cgroups 与命名空间)生成容器,按此标准实现的「容器运行时」有 runC 和 gVisor。
四、CRI、OCI 之间的关系?
还是通过图片来说明下吧:

通过上边的图片,我们可以得出如下结论:
实际对容器的操作最终还是要交给 OCI,CRI 也只是个中转
K8S为什么要弃用Docker?Dockershim将移除的更多相关文章
- 系列好文 | Kubernetes 弃用 Docker,我们该何去何从?
作者 | 张攀(豫哲) 来源 | 尔达 Erda 公众号 导读:Erda 作为一站式云原生 PaaS 平台,现已面向广大开发者完成 70w+ 核心代码全部开源!**在 Erda 开源的同时,我们计划编 ...
- Kubernetes将弃用Docker!与 containerd容器引擎
时间戳:2022-06-07 20:32:19 星期二 撰写文档参考:(阿良-腾讯课堂)Kubernetes将弃用Docker 参考博客k8s入坑之路(3)containerd容器 container ...
- Kubernetes弃用Docker后怎么办?
本文转自Rancher Labs 近期,Kubernetes在其最新的Changelog中宣布,自Kubernetes 1.20之后将弃用Docker作为容器运行时.这一消息在云原生领域激起了不小的水 ...
- Kubernetes容器运行时弃用Docker转型Containerd
文章转载自:https://i4t.com/5435.html Kubernetes社区在2020年7月份发布的版本中已经开始了dockershim的移除计划,在1.20版本中将内置的dockersh ...
- Kubernetes将弃用docker?
1.前言 近日,Kubernetes 官方发布公告,宣布自 v1.20 起放弃对 Docker 的支持,届时用户将收到 Docker 弃用警告,并需要改用其他容器运行时.并在1.23后不再支持dock ...
- [k8s]k8s的控制层kubelet+docker配合调度机制(k8架构)
意外停掉一台node的kubelet,发现调度有问题,研究了下调度的细节 k8s架构 控制层- kubelet(配合节点docker工作) 数据层- kube-proxy 逻辑图: object 参考 ...
- k8s删除pod时,docker服务出现挂载点泄漏问题的解决
k8s更新版本后,老的POD一直出现Terminating,多久都不能删除. 然后,进入具体的节点机器之后,查看日志输出如下类似: ERROR: driver "overlay" ...
- multipass指定virualbox搭建k8s集群(选择docker作为默认容器)
目录 前言 步骤 初始化三台虚拟机 统一安装docker 修改docker镜像源 查看masterIP 安装master节点(重点设置) 查看master的token 安装worker节点 测试 部署 ...
- K8s 终将废弃 docker,TKE 早已支持 containerd
近日 K8s 官方称最早将在 1.23版本弃用 docker 作为容器运行时,并在博客中强调可以使用如 containerd 等 CRI 运行时来代替 docker.本文会做详细解读,并介绍 dock ...
随机推荐
- 【Python】(六)Python数据类型-列表和元组,九浅一深,用得到
您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦. 本文分十个章节介绍数据类型中的列表(list)和元组(tuple),从使用说到底层实现,包您满意 干货满满,建议收藏,需要用到时常看看. 小伙伴们 ...
- 大型情感类技术连续剧-徒手撸一个 uTools(二)
前言 上篇手把手教你实现一个支持插件化的 uTools 工具箱我们介绍过了如何通过 electron 实现 utools 的插件功能体系,并按照 utools 的交互和设计做出了一套可以支持插件化的桌 ...
- 我用段子讲.NET之依赖注入其一
<我用段子讲.NET之依赖注入其一> 1) 西城的某个人工湖畔,湖水清澈见底,湖畔柳树成荫.人工湖往北,坐落着两幢写字楼,水晶大厦靠近地铁站,由于为了与湖面天际线保持一致,楼层只有26层高 ...
- 整合Spring Cloud Stream Binder与GCP Pubsub进行消息发送与接收
我最新最全的文章都在南瓜慢说 www.pkslow.com,欢迎大家来喝茶! 1 前言 之前的文章<整合Spring Cloud Stream Binder与RabbitMQ进行消息发送与接收& ...
- 2021年Wordpress手把手教你做个独立站——部署篇
2021年Woocommerce电商主题的安装部署教程 Woocommerce是一个Wordpress的一个流行的电商插件.完成Wordpress的安装即已完成80%.剩下的便是去寻找一款合适的自己喜 ...
- noi 162 post office dp
大致题意: 有v个村庄,每个村庄有各自的位置,且每个位置互不相同.现在要在村庄上设立P个邮局,使每个村庄到最近的邮局的距离之和最小. 分析: 定义状态d[i][j]表示前i个村庄,在这i个村庄中设立j ...
- 明明是企业管理软件,CRM系统为何被抵触?
小编在昨天的文章<CRM系统为什么没有达到预期效果?>中曾说过,CRM客户管理系统没有达到预期效果的其中一个原因是CRM系统的使用率太低,而根本的原因是员工的抵触.明明是企业管理大师,CR ...
- Docker原理:Cgroup
目录 Cgroup 主要功能 术语 参考 Cgroup 全称Linux Control Group, 是Linux内核的一个功能,用来限制.控制与分离一个进程组群的资源(如CPU.内存.磁盘输入输出等 ...
- Linux_multipath
安装多路径软件 yum功能安装一下软件包 yum -y install device-mapper device-mapper-multipath 修改多路径软件运行等级为开机自启 chkconfig ...
- java基础---类和对象(1)
一. 类和对象 面向对象:以属性和行为的观点去分析现实生活中的事物,将功能封装进对象, 强调具备了功能的对象,以类/对象为最小单位,考虑谁来做 面向过程:强调的是功能行为,以函数为最小单位,考虑怎么做 ...