K8s为什么要放弃Docker

这篇具有很好参考价值的文章主要介绍了K8s为什么要放弃Docker。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

公司定期分享整理的资料

放弃始由

K8s为什么要放弃Docker
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);

K8s为什么要放弃Docker
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 等)
● 将运行容器的节点连接到一个公共网络中
● 提供服务发现
K8s为什么要放弃Docker

什么是CRI?

Container Runtime Interface (CRI)

CRI(容器运行时接口)是 Kubernetes 用来控制创建和管理容器的不同运行时的 API,它使 Kubernetes 更容易使用不同的容器运行时。它一个插件接口,这意味着任何符合该标准实现的容器运行时都可以被 Kubernetes 所使用。
K8s为什么要放弃Docker

放弃Docker对K8s有什么好处?

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

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

K8s为什么要放弃Docker

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文章来源地址https://www.toymoban.com/news/detail-460990.html

到了这里,关于K8s为什么要放弃Docker的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Kubernetes】神乎其技的K8s到底是什么,为什么被越来越多人使用

    🚀欢迎来到本文🚀 🍉个人简介:陈童学哦,目前学习C/C++、算法、Python、Java等方向,一个正在慢慢前行的普通人。 🏀系列专栏:陈童学的日记 💡其他专栏:C++STL,感兴趣的小伙伴可以看看。 🎁希望各位→点赞👍 + 收藏⭐️ + 留言📝 ​ ⛱️万物从心起,心动则万物动🏄

    2024年02月13日
    浏览(39)
  • 部署Kubernetes(k8s)时,为什么要关闭swap、selinux、firewall 防火墙?

     关于防火墙的原因(nftables后端兼容性问题,产生重复的防火墙规则) The ip tables tooling can act as a compatibility layer, behaving like iptables but actually configuring nftables. This nftables backend is not compatible with the current kubeadm packages: it causes duplicated firewall rules and breaks kube-proxy . 大概意思就是

    2024年02月02日
    浏览(53)
  • 定期为什么不建议自动转存

    自动转存是银行一种资金周转方式,一般是指用户的定期存款到期之后,银行可自动将到期的存款本息按相同存期一并转存的行为,在存款过程中,一般不建议投资者自动转存,其主要原因如下: 1、资金支配受到限制 如果是三年期存款,投资者选择存款时自动转存,则在存

    2024年02月12日
    浏览(42)
  • 网络审计:为什么定期检查您的网络很重要

    本文分享自天翼云开发者社区《网络审计:为什么定期检查您的网络很重要》,作者:易乾 在数字化时代,网络安全成为组织和个人必须面对的重要挑战。网络审计是一种关键的安全措施,通过定期检查和评估网络系统的安全性,帮助发现潜在的安全漏洞和弱点,从而防止数

    2024年04月17日
    浏览(43)
  • 站长为什么都说WordPress太复杂不会用要放弃?

    网络上经常看到有站长说要放弃WordPress,理由各有不同,比如有些说WordPress太复杂不会用;有些说WordPress是国外建站系统,在国内用来搭建访问速度太慢;也有些说WordPress是针对谷歌优化的,不适合国内的搜索引擎等等。 boke112百科一直都是使用WordPress建站,也一直都推荐大

    2024年01月21日
    浏览(50)
  • 公司为什么选择云数据库?它的魅力到底是什么!

    亚马逊云科技提供了100余种产品免费套餐。其中,计算资源Amazon EC2首年12个月免费,750小时/月;存储资源 Amazon S3 首年12个月免费,5GB标准存储容量;数据库资源 Amazon RDS 首年12个月免费,750小时;Amazon Dynamo DB 25GB存储容量 永久免费。) 谈到数据库想必我们都不陌生,其中主流

    2024年02月04日
    浏览(53)
  • 为什么越来越多公司开始用低代码开发?

    时代洪流的走向,我们无法左右,能够把握的,只有做好自己。如何在寒冬来之不易的机会中,生存并且壮大。 不知道大家有没有发现,今年的低代码赛道异常火热,但火热的背后才值得思考,市场需求持续被挖掘,是什么造就了目前诸多低代码平台的井喷? 在低代码应用

    2024年02月04日
    浏览(63)
  • 为什么越来越多的企业选择云数据存储而放弃本地数据存储?

    随着企业的发展,它们会产生大量数据。企业已经意识到,利用他们的数据做出数据驱动的决策对于创新和保持竞争优势至关重要。 本文将会探讨企业在收集和分析大数据时可能面临的主要挑战,以及将企业数据仓库部署到本地或云数据存储的选择。我们将根据安全性、成本

    2024年02月08日
    浏览(45)
  • 【K8S】docker和K8S(kubernetes)理解?docker是什么?K8S架构、Master节点 Node节点 K8S架构图

    一、docker的问世         在LXC(Linux container)Linux容器虚拟技术出现之前,业界网红是虚拟机。虚拟机技术的代表,是VMWare和OpenStack。 虚拟机是什么?         虚拟机其实就是 在你的操作系统里面,装一个软件,然后通过这个软件,再模拟一台甚至多台“子电脑”出来。

    2024年03月26日
    浏览(66)
  • 为什么越来越多的开发者放弃使用Postman,而选择Apifox

    1、Postman + Swagger + Mock + JMeter 作为一个后端开发,我做的大部分项目一般都是基于 Swagger 来管理 API 文档,基于 Postman 来做接口调试,基于 JMeter 来做接口性能测试,基于 RAP 等工具 Mock API 数据。 2、存在的问题 (1)多系统数据不互通 API设计者、前端开发、后端开发、测试人

    2024年01月20日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包