多年间,Docker、Kubernetes 被视为云计算时代下开发者的左膀右臂。

  • Docker 作为一种开源的应用容器引擎,开发者可以打包他们的应用及依赖到一个可移植的容器中,发布到流行的 Linux 机器上,也可实现虚拟化。
  • Kubernetes,被称之为为 Docker 而生。同样作为开源容器集群管理系统,被用于管理云平台中多个主机上的容器化的应用。

不过,近日,Kubernetes 官方突然发文宣布,在 K8S v1.2 版本之后,将弃用 Docker,转而使用其他容器运行时。

那么,这是否意味着 Docker 将不能再使用?而这究竟又是怎么一回事?

Kubernetes 官方:不必恐慌

对此,Kubernetes 在官方博客中表示,用户无须惊慌,这则消息并没有听起来那么吓人。

Docker 作为基础运行时正在被弃用, 用户可以使用为 Kubernetes 创建的容器运行时接口 (CRI)。不过,Docker 仍然是构建容器的利器,其生成的映像将一如既往地在集群中与所有容器运行时继续工作。

不过,该篇博客也指出,如果你是 Kubernetes 的终端用户,那么这一改变不会给你带来太大的影响。它并不意味着 Docker 的消亡,也并不意味着你不能再将 Docker 用作开发工具。

不过,如果你使用的是 GKE 或 EKS 之类的托管 Kubernetes 服务,那么需要确保在将来删除 Docker 支持的 Kubernetes 版本中,确保辅助节点使用受支持的容器运行时。如果其中的节点有自定义项,则可能需要根据用户的环境和运行时要求进行相应的更新。

在 v1.20 版本中,你将收到 Kubernetes 针对 Docker 弃用的警告。在将来的 Kubernetes 版本(目前预估在 2021 年下半年 v1.23 版本)中删除 Docker 运行时支持时。

“此 Docker 非彼 Docker”

为了进一步解释,Kubernetes 官方表示,在 Kubernetes 集群中,有一个称为容器运行时的东西,负责提取和运行容器映像。Docker 是该运行时的热门选择(其他常见选项包括容器和 CRI-O),但是 Docker 的设计并非旨在嵌入 Kubernetes 中。

而站在更广泛的角度来看,我们日常称之为"Docker"的技术实际上是一个完整的容器技术堆栈,它本身就是一个高级容器运行时。此外,Docker 还包含了许多 UX 增强功能,使得我们在进行开发工作时很容易与之交互,但这些 UX 增强功能对于 Kubernetes 来说并不是必需的。

在常规应用中,Docker 不符合 CRI(容器运行时接口),用户使用 Kubernetes 集群必须借助另一个名为 Dockershim 的中间件工具来获取其真正需要的内容,该工具已被容器化。这意味着,官方必须要在 Docker 和 Kubernetes 之间再多走一步,这无疑增加了复杂性与成本。

实际上,Kubernete 早在 v1.23 发行版中就已将 Dockershim 从 Kubelet 中删除,从而删除了对 Docker 作为容器运行时的支持。

因此,作为用户,接下来,只需要将容器运行时从 Docker 更改为另一个受支持的容器运行时即可。

开发者还能继续使用 Docker 构建应用吗?

值得注意的是,开发者在开发中使用的 Docker 安装与 Kubernetes 集群中的 Docker 运行时无关。

或许这样说,依旧让很多人感到困惑。

简而言之,Docker 在宣布此更改之前的所有方式仍然对开发者有用。Docker 生成的镜像实际上是一个 OCI 镜像。

任何与 OCI 兼容的镜像,对于 Kubernetes 而言,都是一样的。除了 Docker 之外,containerd 和 CRI-O 都可以提取这些镜像并运行它们。

对于这一事件,Kubernetes 评价道,弃用 Docker ,这一变化即将到来,虽然会为部分用户带来不便,但带来的影响并不是灾难性的,相反,它倒是一件好事。从长远来看,它会让事情变得更加简单。

更多内容参考: https://kubernetes.io/blog/2020/12/02/dont-panic-kubernetes-and-docker/

Kubernetes 弃用 Docker !相关推荐

  1. Kubernetes弃用Docker?关于Kubernetes、Docker和containerd的那些事

    00 前情提要 作为后端研发工程师,之前的工作中还是涉及到一部分K8S的工作.在当时的工作场景下,我们通过使用Kubernetes(简称k8s)+docker编排部署的架构方案来提供云原生的在线服务. ...

  2. Kubernetes弃用Docker后怎么办?

    本文转自Rancher Labs 近期,Kubernetes在其最新的Changelog中宣布,自Kubernetes 1.20之后将弃用Docker作为容器运行时.这一消息在云原生领域激起了不小的水 ...

  3. 不讲武德,Kubernetes 弃用 Docker刷爆了网络,我们公司也慌了!

    点击上方"芋道源码",选择"设为星标" 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 8:55 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | J ...

  4. 重磅,Kubernetes 决定弃用 Docker!

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:硬刚一周,3W字总结,一年的经验告诉你如何准备校招! 个人原创100W+访问量博客:点击前往,查看更多 作者 | ...

  5. Kubernetes中部署Docker registry2.7.1并通过containerd实现拉取镜像到应用Pod的部署

    这里主要介绍一下私有仓库(HTTPS)在Kubernetes中部署的问题,由于Kubernetes将弃用docker,因此这里主要介绍以下使用containerd替换docker后如何从私有仓库拉取镜 ...

  6. K8s 为什么要弃用 Docker?

    在写"K8s"系列文章的过程中,很多读者留言询问 K8s 弃用 Docker 的事,担心现在学习 Docker 是否还值得,是不是该切换到 containerd 或其他运行时. 这 ...

  7. K8S Runtime CRI OCI contained dockershim 理解 1.23弃用docker - 含docker containerd通用工具 nerdctl

    一 实践 contained实用管理工具 http://www.ciscoedu.com.cn/details/id/252.html containerd的默认命令行工具(crictl)也不是很好用 ...

  8. 容器编排技术 -- Kubernetes kubectl 与 Docker 命令关系

    容器编排技术 -- Kubernetes kubectl 与 Docker 命令关系 1 docker run 2 docker ps 3 docker attach 4 docker exec 5  ...

  9. 为什么 Kubernetes 要替换 Docker

    为什么这么设计(Why's THE Design)是一系列关于计算机领域中程序设计决策的文章,我们在这个系列的每一篇文章中都会提出一个具体的问题并从不同的角度讨论这种设计的优缺点.对具体实现造成的影响 ...

最新文章

  1. 实验四 JSP数据库编程基础
  2. 高压缩比 压缩软件 linux,Linux下压缩软件对比
  3. Oracle 9i 从9.2.0.1升级到 9.2.0.6 步骤
  4. python四大软件-传智播客解析Python之移动端页面适配四大方式
  5. ZZULIOJ 1095: 时间间隔(多实例测试)
  6. Scala里Map()集合
  7. [转载]年末致富有新招,写个程序抓红包
  8. 菜鸟驿站是什么快递_菜鸟驿站是什么快递
  9. 无座火车票为什么不能半价?
  10. 【GLSL教程】(七)逐像素的光照
  11. 【数据库基础】数据库的数据查询
  12. python取出数组大于某值_计算矩阵中大于某个值的所有值
  13. PyTorch学习笔记(20) ——激活函数
  14. 且行且走(8月22日,23日)
  15. 怀揣梦想和责任,天空卫士让国人在UCS领域掌握核心科技
  16. Linux: 查看文件和文件夹大小的df和du命令
  17. Java基础篇-基本类型
  18. Jeesite引用fullcalendar实现日程排班
  19. 数字图像处理 实验二:图像的平滑滤波
  20. 【备忘】无限互联IOS全套视频教程下载

热门文章

  1. Python:获取文件夹内 文件夹 和 文件数量
  2. Visual Studio C++6.0下载地址
  3. 给网站插入一个百度地图API
  4. SQLite学习笔记(十二)虚拟机指令
  5. Java——动态绑定和多态
  6. 小菜鸟一步步打造图书馆外挂之十三:用户编辑界面的实现
  7. PaddlePaddle中内置数据集分析
  8. [Git] 删除远程仓库的文件
  9. [hashmap|空间换时间] leetcode 1 两数之和
  10. fseek linux 大文件_上传大文件