AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

Kubernetes 弃用 Docker 后怎么办?

  • 2020-12-07
  • 本文字数:1873 字

    阅读完需:约 6 分钟

Kubernetes弃用Docker后怎么办?

近两天,Kubernetes 在其最新的 Changelog 中宣布,自 Kubernetes 1.20 之后将弃用 Docker 作为容器运行时。这一消息在云原生领域激起了不小的水花,在 Rancher 技术社区里许多小伙伴也对此进行了激烈的讨论。


Kubernetes 为什么选择弃用 Docker 呢?我们需要先简单了解 Dockershim。它是一个桥接服务,帮助 Kubernetes 与 Docker 进行通信,Kubelet 之前使用 dockershim 实现对 Docker 的 CRI 支持(Docker 本身目前尚未实现 CRI)。但时至今日,维护 Dockershim 已成为运维/开发人员的沉重负担。因此 Kubernetes 社区建议大家考虑使用包含 CRI 完整实现(兼容 v1alpha1 或 v1)的可用容器运行时。从而取消了对 Docker 作为容器运行时的支持。


不过大家不必过分担心,近期从 Rancher 社区里面搜集了一些大家比较关注的问题,下面一一为大家解答:


1、Kubernetes Kubelet 弃用了 Docker 作为容器运行时,有代替方案吗?


在 Kubernetes 集群中,容器运行时负责提取和运行容器镜像。Docker 只是被普遍使用的容器运行时,在 Docker 被弃用之后,我们还有两个常见的选项:containerdCRI-O


Containerd 是一个工业级标准的容器运行时,它极为简单、健壮并且具备可移植性。Containerd 可以在宿主机中管理完整的容器生命周期。这是一个 100%开源的软件,已于去年2月份从CNCF毕业。


去年年初,Rancher 推出的轻量级Kubernetes发行版K3s已经使用 containerd 作为默认容器运行时。


containerd:https://github.com/containerd/containerd/


CRI-O 是由 Red Hat 推出的一款容器运行时,旨在提供一种在 OCI 一致的运行时和 Kubelet 之间的集成方式。在文章后半部分我们将会进一步对比 containerd 和 CRI-O 的性能,为您在选择容器运行时的时候提供参考。


CRI-O:https://github.com/cri-o/cri-o


2、我仍然可以在 Kubernetes 1.20 中使用 Docker 吗?


是的,如果使用 Docker 作为运行时,在 1.20 中只会在 Kubelet 启动时打印一个警告日志。Kubernetes 最早将在 2021 年末发布 1.23 版本中将 dockershim 移除。


3、我现有的 Docker 镜像仍然可以使用吗?


仍然可以使用。Docker 生成的镜像实际上并不是特定于 Docker 的镜像,而是 OCI(Open Container Initiative)镜像。无论你使用什么工具构建镜像,任何符合 OCI 标准的镜像在 Kubernetes 看来都是一样的。containerd 和 CRI-O 都能够提取这些镜像并运行它们。所以您可以仍然使用 Docker 来构建容器镜像,并且可以继续在 containerd 和 CRI-O 上使用。


4、我应该使用哪个 CRI 实现?


这是一个比较复杂的问题,它取决于许多因素。如果您之前熟练使用 Docker,那么迁移到 containerd 应该是一个相对容易的选择,并且 containerd 具有更好的性能和更低的成本。当然,您也可以探索 CNCF 领域中的其他项目,来选择更适合您的环境。


来源:https://kubernetes.io/blog/2020/12/02/dockershim-faq/#which-cri-implementation-should-i-use


eBay 对 containerd 和 CRI-O 进行了一组性能测试,包括创建、启动、停止和删除容器,以比较它们所耗的时间。如图所示,containerd 在各个方面都表现良好,除了启动容器这项。从总用时来看,containerd 的用时比 cri-o 要短。


以下数据来自eBay的分享



containerd 和 cri-o 的性能比较



containerd 和 cri-o 的综合比较


Rancher,阿里云,AWS, Google,IBM 和 Microsoft 作为初始成员(https://github.com/containerd/containerd/blob/master/ADOPTERS.md),共同建设 containerd 社区。2017 年 3 月,Docker 将 containerd 捐献给 CNCF(云原生计算基金会)。containerd 得到了快速的发展和广泛的支持。Docker 引擎已经将 containerd 作为容器生命周期管理的基础,Kubernetes 也在 2018 年 5 月,正式支持 containerd 作为容器运行时管理器。2019 年 2 月,CNCF宣布containerd毕业,成为生产可用的项目,更加稳定。


5、Rancher 对 Containerd 的支持


Rancher 在轻量级 Kubernetes 发行版 K3s 和 RKE2(2020 年 10 月推出)中早已将 containerd 作为默认的容器运行时。相信在 Rancher 2.x 支持 Kubernetes 1.20+ 之后会将这些宝贵经验运用到新版本的 Rancher 2.x 迭代中。


其实 Kubernetes 弃用 Docker 这一决定已经酝酿很长时间了,可能对于没有密切关注这个方面的工程师来说有些措手不及。但其实无需特别担心:如果你是 Kubernetes 的终端用户,这仅仅是一个后端容器运行时的更改,从使用方面来说几乎感觉不到区别;如果你是一名开发/运维人员,你依旧可以继续使用 Docker 来构建镜像,以相同的方式将镜像推送到 Registry,并且将这些镜像部署到你的 Kubernetes 中;如果你是运行和操作集群的用户,你只需要将 Docker 切换成你需要的容器运行时即可。


本文转载自:RancherLabs(ID:RancherLabs)

原文链接:Kubernetes弃用Docker后怎么办?


2020-12-07 08:0017352

评论 1 条评论

发布
用户头像
Docker 紧张了,输掉服务编排,容器也要输了。
2020-12-22 16:52
回复
没有更多了
发现更多内容

MobPush智能消息推送能力大集结,国内外消息触达通道来了!

MobTech袤博科技

mobpush 消息推送系统

4月用友BIP行动地图发布!

用友智能财务

AI 财务 会计

Web3项目的上线流程

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

以智能运维一体化平台破局数字化转型深层挑战,湖北数产集团X嘉为蓝鲸

嘉为蓝鲸

数字化转型 AIOPS 一体化运维

嘉为蓝鲸IT服务管理中心V4.0:灵活扩展+敏捷交付,IT服务管理全链路高效协同

嘉为蓝鲸

AIOPS ITSM 智能运维 IT服务管理中心

可观测性+AI双轮驱动!嘉为蓝鲸应用发布中心V6.0打造下一代智能发布操作系统

嘉为蓝鲸

AIOPS 智能运维 应用发布中心

ArkTS编程语法基础,让你成为HarmonyOS开发高手

肥晨

京东API接口最新指南:店铺所有商品接口的接入与使用

tbapi

京东API 京东店铺所有商品接口 京东店铺所有商品采集

双引擎驱动!WeOps存储监控的全插件支持与自定义开发指南

嘉为蓝鲸

智能运维 #WeOps 监控管理

去中心化云算力的3个发展阶段,走向自治和高效

PowerVerse

发展 去中心化 算力 web3

【FAQ】HarmonyOS SDK 闭源开放能力 —Push Kit(12)

HarmonyOS SDK

harmoyos

千万级数据秒级响应!碧桂园服务技术引擎重构智慧社区新标杆

智在碧得

MobTech秒验支持H5场景,本机一键登录验证更便捷

MobTech袤博科技

秒验

智能运维新标杆:OpsPilot V3.3通过MCP实现多源运维知识融合

嘉为蓝鲸

智能运维 #WeOps MCP协议

鸿蒙开发|鸿蒙系统的介绍(为什么要学习鸿蒙开发|鸿蒙系统的官方定义|鸿蒙和安卓、ios的对比)

肥晨

怎么用最小的投入通过等保测评?一站式服务

黑龙江陆陆信息测评部

智慧园区管理系统(源码+文档+讲解+演示)

深圳亥时科技

故障定位系列-2-共享连接池故障

乒乓狂魔

故障定位 AIOPS 可观测

DataWorks数据集成同步至Hologres能力介绍

阿里云大数据AI技术

大数据 Serverless 数据集成 hologres Dataworks

鸿蒙开发|鸿蒙系统项目开发前的准备工作

肥晨

鸿蒙开发|开启鸿蒙开发之旅-发工具下载安装、项目创建和预览

肥晨

AI背单词APP的线上运营

北京木奇移动技术有限公司

软件外包公司 AI英语学习 AI背单词

秒哒首发即爆发!上线首日吸引2万用户,打造3万应用!

百度Geek说

百度

AI加剧GPU短缺,解决之道在哪里?

PowerVerse

趋势 AI‘’ gpu 算力

分布式数据一致性场景与方案处理分析|得物技术

得物技术

分布式 事务消息 分布式一致性 业务场景分析

内核探究|Apache Cloudberry 并行查询技术解析

酷克数据HashData

实验室管理系统(源码+文档+讲解+演示)

深圳亥时科技

WebGL软件系统的性能优化方法

北京木奇移动技术有限公司

软件外包公司 webgl开发 three.js开发

不愧是高级Java开发岗,确实有点难~

王中阳Go

Java 面试 Java高级开发工程师

运维人员如何抓住 AI 机遇?DeepSeek 给出的转型路线图

嘉为蓝鲸

AIOPS 智能运维 DeepSeek

室内LED显示屏:如何避免伤害眼睛的眩光问题

Dylan

数字 LED显示屏 全彩LED显示屏 led显示屏厂家 户内led显示屏

Kubernetes弃用Docker后怎么办?_语言 & 开发_Rancher_InfoQ精选文章