容器 | K8s宣布不再支持Docker了?

Posted EdisonTalk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了容器 | K8s宣布不再支持Docker了?相关的知识,希望对你有一定的参考价值。

【Kubernetes| K8s官网

Kubernetes在v1.20版本之后将不再使用Docker作为容器运行时,嗯,你没有听错,别慌!本文来源于K8s官网,由K8s技术圈翻译。

1废弃Docker但别慌!

Docker 作为底层运行时被废弃,转而使用为 Kubernetes 创建的 Container Runtime Interface(CRI) 的运行时,Docker 生成的镜像将继续在你的集群中与所有运行时一起工作。

如果你是 Kubernetes 的终端用户,对你来说不会有太大的改变,这并不意味着 Docker 的死亡,也不意味着你不能或者不应该再使用 Docker 作为开发工具。Docker 仍然是一个非常有用的构建容器的工具,docker build 产生的镜像仍然可以在你的 Kubernetes 集群中运行。

如果你使用的是像 GKE 或 EKS 这样的托管 Kubernetes 服务,在未来的 Kubernetes 版本中删除 Docker 支持之前,你需要确保你的 worker 节点使用的是支持的容器运行时,如果你有节点定制的需求,那么你可能需要根据你的环境和运行时需求来更新它们。请与你的云服务商合作,以确保适当的升级测试和规划。

如果你要升级自己的集群,那么你还需要进行一些更改来避免集群崩溃。在 v1.20 时,你会收到 Docker 的废弃警告。当 Docker 运行时支持在 Kubernetes 的未来版本(目前计划在2021年底发布1.23版本)中被移除时,它将不再被支持,你需要切换到其他符合标准的容器运行时,如 containerd 或 CRI-O。只需确保你选择的容器运行时支持当前使用的 docker 守护程序配置即可(例如日志)。

2为何大家会感到困惑?

其实我们这里谈论的是两种不同的环境,这可能造成了大家的困惑。在你的 Kubernetes 集群内部,有一个叫做容器运行时的东西,负责拉取和运行你的容器镜像。Docker 是该运行时的一个流行选择(其他常见的选项包括 containerd 和 CRI-O),但 Docker 并没有被设计成嵌入 Kubernetes 内部,这就造成了一个问题。

你会看到,我们称之为 Docker 的东西实际上并不是同一件事情,它是一个完整的技术栈,而其中包含一个叫 containerd 的东西,这个本身就是一个高级容器运行时。Docker 非常酷也非常有用,因为它具有许多 UX 增强功能,当我们在进行开发工作的时候操作非常方便,但是 UX 增强的功能并不是 Kubernetes 所必须的,因为 Kubernetes 并不是人。

由于这个对人类友好的抽象层,你的 Kubernetes 集群必须使用另一个叫做 Dockershim 的垫片工具来间接获取它真正需要的数据。这并不是很好的一种方式,因为我们还必须去多维护一套东西,增加了复杂性。Dockershim 将在 v1.23 版本时被从 Kubelet 中移除,这也因此移除了对 Docker 作为容器运行时的支持。你可能会想,containerd 包含在 Docker 栈中,为什么 Kubernetes 还是需要一个 Dockershim 呢?

这是因为 Docker 并不符合CRI,即容器运行时接口,如果符合的话,我们就不需要这个 shim 了,也就不会发生今天这个事情了。但这并不是世界末日,你不需要惊慌--你只需要把你的容器运行时从 Docker 换成其他支持的容器运行时即可。

3对开发者来说意味着什么?

作为一个开发者,Docker 对你来说仍然是有用的,在宣布这个变化之前它的所有方式都是有用的。Docker 产生的镜像并不是真正的 Docker 专用的镜像,它是一个 OCI(Open Container Initiative)镜像。任何符合 OCI 的镜像,无论你用什么工具来构建它,对 Kubernetes 来说都是一样的,containerd 和 CRI-O 都知道如何拉取这些镜像并运行它们。这就是为什么我们有一个关于容器应该是什么样子的标准。

所以即将到来的这个变化,它会给一些人带来部分问题,但这并不是灾难性的问题,从长远来看,以后会变得更简单。如果这仍然让你感到困惑,也没太大关系 - Kubernetes 中有非常多的组件要做,没有人是100%的专家。我们的目标是确保每个人都能了解 Kubernetes,对即将发生的变化有更多的了解,希望这能解答你的大部分疑问,并安抚了一些焦虑的情绪!


原文来源:Kubernetes官网,https://kubernetes.io/blog/2020/12/02/dont-panic-kubernetes-and-docker

译文来源K8s技术圈,https://mp.weixin.qq.com/s/MVSIRRzEvU9TxTe2MH0pAA

- END -

以上是关于容器 | K8s宣布不再支持Docker了?的主要内容,如果未能解决你的问题,请参考以下文章

Docker拥抱k8s早有预兆,Docker现何去何从?

周一见 | GitHub 推出容器 Registry 服务CNCF 宣布 TiKV 毕业K8s 5 年 5 大改变

K8S 1.20 弃用 Docker 评估之 Docker 和 OCI 镜像格式的差别

Oracle 和 Docker 宣布合作|航海日志 Vol.11

Steam VR宣布不再支持macOS平台

Nvidia宣布支持Kubernetes容器的GPU加速