如何看待K8s 1.5版本弃用docker? containerd是啥? - 掘金

1.24之前安装k8s时,我们都会先安装docker环境

之前,k8s的container是docker engine维护的:

[](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5910ea77aa2f4b7b8ed64d83f3244516~tplv-k3u1fbpfcp-zoom-in-crop-mark:1512:0:0:0.awebp?)

也就是说,我们执行一个yaml文件,kubelet会帮我们删除、扩容(维护)对应的Pod,Pod里面的container是docker engine维护的

docker盛世,K8s选择docker

在遥远的2013年,Docker发布了第一版,当时的docker以app驱动,参考了lxc,当时十分受欢迎

2014年,K8s是基于Borg容器管理的,有他的一套东西。

当时的人肯定会想:我为了用K8s还要学一遍?

K8s很聪明,他在早期的版本选择了docker作为容器化底层支撑

K8s逐渐壮大,想要不受限于docker

随着各大厂商热捧K8s,越来越多的容器技术想加入K8s,K8s就想了:

  1. 我怎么样融合别的容器技术,更加多元?
  2. 我不能绑定在docker上面,我要主导一些

但是docker也很火!又不能直接剔除,双方都是血亏,又不想受限于docker

于是K8s在2016年的1.5版本就开始计划,官网当年的博客

[](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/7c8444e5d8844d5ea62c1a190ada8994~tplv-k3u1fbpfcp-zoom-in-crop-mark:1512:0:0:0.awebp?)

[](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/19ecf669b8c44de38b07edebffbcea0a~tplv-k3u1fbpfcp-zoom-in-crop-mark:1512:0:0:0.awebp?)

K8s提出了自己的一套接口规范 CRI (Container Runtime Interface)

docker就从亲儿子变成了选择之一