K8s为什么要放弃Docker

news2024/11/28 22:00:42

公司定期分享整理的资料

放弃始由

在这里插入图片描述
https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.20.md#deprecation

2020 年,k8s 1.20 终于正式向 Docker “宣战”:kubelet将弃用 Docker 支持,并将在未来的版本中完全移除。

但由于 Docker 几乎已经成为容器技术的代名词,而且 K8s 已经使用 Docker 多年,该公告在传播时很快“变味了”,“kubelet 将弃用 Docker 支持”被简化为更吸人眼球的东西 “K8s 将弃用”Docker”。这自然引起了 IT 界的恐慌,“不明真相的群众”纷纷表示震惊:用了这么久的 Docker 突然不能用了。

为什么 K8s 会这样对待 Docker?
现有的大量镜像怎么办?

K8s与Docker之间的关系

什么是Docker?

Docker 于 2013 年发布,解决了开发人员在端到端运行容器时遇到的许多问题。下面是他包含的所有东西:
● 容器镜像格式
● 一种构建容器镜像的方法(Dockerfile/docker build);
● 一种管理容器镜像(docker image、docker rm等);
● 一种管理容器实例的方法(docker ps, docker rm 等);
● 一种共享容器镜像的方法(docker push/pull);
● 一种运行容器的方式(docker run);

在这里插入图片描述
Docker各组件之间通讯时序图
containerd,container-shim 组件本质上是runC 和dockerd 间的中间件

什么是OCI和runc?

OCI (Open Container Initiative)

标准包含 运行时标准 和 镜像标准 两个部分,而 OCI 这个组织则是由 Docker, CoreOS 和其他的一些公司共同发起创建的,致力于将容器运行时和格式标准化。即:凡是遵守此标准的实现,无论是 Docker 还是 rkt 或者其他的运行时实现,均可以通过标准的镜像启动容器。

runc

是在 OCI 成立后,Docker 将其容器运行时 libcontainer 贡献出来后,并加以改造而成的,是Docker按照开放容器格式标准(OCF, Open Container Format)制定的一种具体实现。runc 是一个命令行客户端,用于运行根据 Open Container Initiative (OCI) 格式打包的应用程序,并且是 Open Container Initiative 规范的兼容实现。

什么是K8s?

2014 年Google 推出 Kubernetes是用于自动部署、扩展和管理容器化应用程序的开源系统,它旨在提供跨主机集群的自动部署、扩展以及运行应用程序容器的平台。下面是他包含的所有东西
● 可以使用 containerd、cri-o 或其他 CRI 运行时容器、编配器需要完成很多任务。
● 将容器按照高级原语分组 (Pods、ReplicaSets 等)
● 将运行容器的节点连接到一个公共网络中
● 提供服务发现
在这里插入图片描述

什么是CRI?

Container Runtime Interface (CRI)

CRI(容器运行时接口)是 Kubernetes 用来控制创建和管理容器的不同运行时的 API,它使 Kubernetes 更容易使用不同的容器运行时。它一个插件接口,这意味着任何符合该标准实现的容器运行时都可以被 Kubernetes 所使用。
在这里插入图片描述

放弃Docker对K8s有什么好处?

1.Kubernetes 项目增加了对额外运行时的支持

在 Kubernetes 包括一个名为 dockershim 的组件,使它能够支持 Docker。但 Docker 由于比 Kubernetes 更早,并且没有实现 CRI,所以这就是 dockershim 存在的原因,它对docker的支持被硬编码到 Kubernetes 中。随着容器化成为行业标准,比如CRI,Kubernetes 项目增加了对额外运行时的支持,因此 dockershim 成为了 Kubernetes 项目中的一个异类,对 Docker 和 dockershim 的依赖已经渗透到云原生计算基金会(CNCF)生态系统中的各种工具和项目中,导致代码脆弱。那么移除对dockershim对k8s来说好处是巨大的。

在这里插入图片描述

2.直接调用CRI(containerd等)效率更高

在移除dockershim后,会将conatinerd作为默认容器运行时组件,containerd 1.1 版本已经内置了对 CRI 的实现,比直接使用 Docker 的性能要高很多。并且containerd本身是一个来自 Docker 的高级容器运行时,并实现了 CRI 规范。它是从 Docker 项目中分离出来,之后 containerd 被捐赠给云原生计算基金会(CNCF)为容器社区提供创建新容器解决方案的基础。

放弃Docker原有镜像如何转换?

dockershim 从 Kubernetes 1.24 中完全移除。今后 Kubernetes 将取消对 Docker 的直接支持,而倾向于只使用实现其容器运行时接口的容器运行时。这并不意味着 Kubernetes 将不能运行 Docker 格式的容器。containerd 和 CRI-O 都可以运行 Docker 格式(实际上是 OCI 格式)的镜像,它们只是无需使用 docker 命令或 Docker 守护程序。

K8s1.24后如何构建镜像?Dockerfile?

containerd不能像docker那样可以通过docker commit 容器id或者docker build (dockerfile)这样去直接构建镜像。(本地可以同时存在containerd和docker,但ctr不能在本地直接使用docker的镜像),可以使用buildkit工具进行构建,可以参考下面的文档https://blog.csdn.net/weixin_46015264/article/details/126504718

参考文档

http://k.sina.com.cn/article_1746173800_68147f68019013uo8.html
https://www.51cto.com/article/687502.html
https://www.sohu.com/a/243940957_760387
https://blog.csdn.net/Tongsheng_li/article/details/121650176

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/423135.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux高性能服务器编程|阅读笔记:第1章 - TCP/IP协议族

简介 Hello! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~ ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计算机专业,获得过国家奖学金,有幸在竞赛中拿过一些国奖、省奖…已保研 学习经验:扎实基础 + 多做笔…

CLIMS:弱监督语义分割的跨语言图像匹配

文章目录CLIMS: Cross Language Image Matching for Weakly Supervised Semantic Segmentation摘要方法语言图像匹配框架实验结果CLIMS: Cross Language Image Matching for Weakly Supervised Semantic Segmentation 摘要 存在的问题 CAM(类激活图)通常只激活有区别的对象区…

第二章 数据类型与变量

文章目录1. 字面常量2. 数据类型3. 变量3.1 变量概念3.2 语法格式3.3 整形变量3.3.1 int整型变量(4 个字节)3.3.2 long长整型变量(8 个字节)3.3.3 short短整型变量(2 个字节)3.3.4 byte字节型变量(1个字节)3.4 浮点型变量3.4.1 do…

图片的四个角怎么做成圆弧形,2种方法分享

图片的四个角怎么做成圆弧形?今天来说一说直角和圆弧,小伙伴们可能会疑惑了,怎么今天讲的内容和之前不一样啊,不要着急干货在后面,听我娓娓道来。相信很多小伙伴们都使用过iphone手机,每年的产品发布会都会…

用高中生的思维写一篇MATLAB入门

文章目录一、简介二、MATLAB的工作界面三、基本语句1、if语句2、switch语句3、try语句4、for语句和while语句5、break语句和continus语句四、数值运算1、基本算术运算2、format命令3、关系运算4、逻辑运算5、特殊变量和常数6、数学函数五、二维平面绘图1、关于颜色和数据标记点…

微积分——用积分定义自然对数的动机

第6章 对数函数&#xff0c;指数函数和反三角函数 目录 第6章 对数函数&#xff0c;指数函数和反三角函数 6.1 引言 6.2 用积分定义自然对数的动机 内容来源&#xff1a;<> Tom M. Apostol 6.1 引言 每当有人将他的注意力集中到数量关系的时候&#xff0c;他要么是…

NIFI大数据进阶_实时同步MySql的数据到Hive中去_可增量同步_实时监控MySql数据库变化_操作方法说明_02---大数据之Nifi工作笔记0034

然后我们继续来看,如果需要同步,当然需要先开启mysqlbin log日志了 可以看到开启操作 在windows和linux上开启binlog日志 然后看一下 在windows上开启mysql的binlog的方法

ES X-Pack密码认证与用户管理

用户数据的安全性一直被人诟病且默认没有密码认证&#xff0c;Elasticsearch在6.8之前官方的X-pack安全认证功能都是收费的&#xff0c;所以很多人都采用Search Guard或者ReadOnly REST这些免费的安全插件对Elasticsearch进行安全认证。从Elasticsearch 6.8开始&#xff0c;Sec…

Java集成工作流经典案例(多个项目优化精华版)

前言 activiti工作流引擎项目&#xff0c;企业erp、oa、hr、crm等企事业办公系统轻松落地&#xff0c;请假审批demo从流程绘制到审批结束实例。 一、项目形式 springbootvueactiviti集成了activiti在线编辑器&#xff0c;流行的前后端分离部署开发模式&#xff0c;快速开发平…

爆款来袭!刷屏的Auto-GPT与ChatGPT区别,GPT成为AI领域最受关注的技术,你还在等什么?(狂飙 啊。。。Github 80k star了)

最近全网火爆刷屏的热门词auto-gpt&#xff0c;在全网站频频出现: "ChatGPT 过时了&#xff0c;Auto-GPT才是未来" "它所具备的能力主打的就是一个“自主”&#xff0c;完全不用人类插手的那种&#xff01;" 到底什么是auto-gpt? 1、Auto-GPT和ChatGP…

zabbix创建自定义监控模板之自动注册,代理服务器

目录 第一章zabbix 自动注册&#xff08;对于 agent2 是主动模式&#xff09; 1.1.环境准备 1.2.修改 zabbix-agent2 配置文件 1.3.在 Web 页面配置自动注册 第二章部署 zabbix 代理服务器 2.1.环境部署 2.2.安装 zabbix 所需的数据库yum install -y mariadb-server mar…

ChatGPT应用场景与工具推荐

目录 写在前面 一、关于ChatGPT 二、应用实例 1.写文章 2.入门新的知识 3.解决疑难问题 4.生成预演问题 5.文本改写 6.语言翻译 7.思维导图 8.PDF阅读理解 9.操作格式化的数据 10.模拟场景 11.写代码 三、现存局限 写在前面 本文会简单介绍ChatGPT的特点、局限以…

Baumer工业相机堡盟工业相机如何通过BGAPI SDK获取每张图像的微秒时间和FrameID(C#)

BGAPI SDK获取图像微秒级时间和FrameID Baumer工业相机Baumer工业相机FrameID技术背景一、FrameID是什么&#xff1f;二、使用BGAPI SDK获取图像微秒时间和FrameID步骤 1.获取SDK图像微秒级时间2.获取SDK图像FrameIDBaumer工业相机使用微秒级时间和FrameID保存的用处Baumer工业…

深度理解Vuex的用法及实例讲解

背景&#xff1a; 在项目里面写一个公共的方法&#xff0c;只要有需要的table的column需要变色就直接调用这个方法就好了&#xff0c;不需要在自己的子页面写方法。 如下图&#xff0c;写一个column变色的公共方法。 源代码&#xff1a; 下面的源代码将以上面背景需求为例子…

HTTP协议状态码大全 | 汇总HTTP所有状态码

&#x1f50a; HTTP 状态码 当浏览者访问一个网页时&#xff0c;浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前&#xff0c;此网页所在的服务器会返回一个包含 HTTP 状态码的信息头&#xff08;server header&#xff09;用以响应浏览器的请求。 HTTP…

统计软件与数据分析Lesson8----HTML初识

统计软件与数据分析Lesson8----HTML初识1.什么是 HTML&#xff1f;2.查看HTML源代码3.HTML 标签4.HTML 文档5.编写 HTML6.HTML 标签6.1 HTML 标题6.2 HTML 段落6.3 HTML 链接7.HTML 元素7.1HTML 嵌套元素7.2 HTML空元素8.HTML 属性9. HTML <div> 元素10.其它10.1 HTML 水…

七、网络安全

&#xff08;一&#xff09;网络安全设计 1、网络安全体系设计 &#xff08;1&#xff09;物理安全 通信线路的可靠性、硬软件设备的安全性、设备的备份、防灾害防干扰能力、设备的运行环境、不间断电源 eg机房安全 &#xff08;2&#xff09;系统安全 操作系统本身的缺陷…

MySQL数据库,表的增删改查详细讲解

目录 1.CRUD 2.增加数据 2.1创建数据 2.2插入数据 2.2.1单行插入 2.2.2多行插入 3.查找数据 3.1全列查询 3.2指定列查询 3.3查询字段为表达式 3.3.1表达式不包含字段 3.3.2表达式包含一个字段 3.3.3表达式包含多个字段 3.4起别名 3.5distinct(去重) 3.6order …

如何恢复回收站?数据恢复,这4招就够了!

案例&#xff1a;恢复回收站 【谁能帮帮我这个电脑小白呀&#xff1f;回收站里的文件被删除了还能恢复吗&#xff1f;怎么恢复回收站文件呢&#xff1f;求解答&#xff01;】 电脑的回收站给我们带来了很多的便利&#xff0c;我们可以将删除的数据放入回收站&#xff0c;也可…

OnnxRuntime----Lite-Mono单目深度估计ONNX推理

题目要求&#xff1a;学习了解单目深度估计模型Lite-Mono&#xff0c;根据上篇VSCode配置之OnnxRuntime(CPU) && YOLOv7验证&#xff0c;实现深度估计模型Lite-Mono推理&#xff0c;并集成到现有ONNX系列模型中。 Lite-Mono论文&#xff1a;Lite-Mono:A Lightweight CN…