K8s 弃用 Docker? 看看 K8s 开发者怎么说?

这几天 K8s 将弃用的 docker 各种刷屏

包括本拐也很疑惑,类似的文章有:

重磅!Kubernetes 将弃用 Docker!

Kubernetes 要弃用docker了,我们该怎么办?

恰巧最近翻看 K8s 的官网比较多,看到了官方对于这一改动的详尽解释,于是搬一下.

也是本拐的处女译! 哈哈

Don't Panic: Kubernetes and Docker

本文译自:

https://kubernetes.io/blog/2020/12/02/dont-panic-kubernetes-and-docker/

原作:

 Jorge Castro, Duffie Cooley, Kat Cosgrove, Justin Garrison, Noah Kantrowitz, Bob Killen, Rey Lejano, Dan “POP” Papandrea, Jeffrey Sica, Davanum “Dims” Srinivas

在v1.20后,Kubernetes将弃用 docker 作为容器的运行时.

不用害怕,不要慌张

Kubneretes 将只支持实现了CRI( Container Runtime Interface)接口的容器运行时,而docker 作为低层的容器运行时,将被弃用.当然,用 docker 构建的镜像仍然可以在 K8S 的集群中使用.

如果你是 K8S的终端用户,这个改动对你没有太大的影响. 这并不意味着 docker 将死,也不是说 docker 作为一个开发工具将被弃用.它仍然是一个强大运行容器,而且通过docker build 构建的镜像仍然可以运行在你的 K8S 集群中.

如果你是K8s 集群服务(比如GKE,EKS 或AKS)的使用者,在docker 运行的支持被移除前,你要保证你的节点已经具备了K8s支持的运行时. 如果你对节点进行了定制,升级前要与运营厂商确认已在现有的环境上进行了升级,并已经做了充足的测试和预案.

如果你在运维着自建集群,要做好准备以避免升级导致集群 down 掉.在1.20时,你会收到不建议使用 docker 的警告.在 K8s 的下一个版本(初步计划为2021年尾的1.21)时docker 作为运行时将被移除.你需要将其迁移到其他的的容器技术,比如 containered 或 CRI-O.只要确保能支持你当前 docker守护程序的配置即可(比如日志相关等).

所以为什么会担忧?在担忧什么呢?

我们其实说的是两种不同的情况(Docker 作为开发工具和 Docker 作为运行时),这两种情况混为一谈导致了你的困惑.在K8s 中,作为一种容器技术的 Docker,负责了镜像的拉取和运行.Docker 作为一种容器运行时确实有广泛的应用(对比 containerd 和 CRI-O),但问题在于,Docker 并不是为集成在 K8s 中而产生的.

事实上,我们称之为 Docker 的并不是并某一种特定技术,它是一套完整的技术栈,其中由它实现的一套高度抽象的容器运行时,我们称之为"containerd".除此之外,Docker 有一整套人机交互的工具,这些工具极大的提高了人们的开发效率,使它很酷,也很实用.但是,这些工具对 K8s 并没有用,因为 K8s 是一个系统,而不是一个人.

反而正是这些人机友好的交互工具,导致 K8s 需要额外的一个称之为Dockershim的工具来实现其真正的需求,即调度使用 docker 的"containerd"运行. 这并不完美,它引入了额外的成本,同时增加了系统的不稳定性.我们真正要做的是在 v1.23之前移除Dockershim,导致的表层结果,就是不再采用 docker 作为运行时.那么,即然 Docker 已经有了containerd这种运行时,为什么 K8s 需要额外的Dockershim?

问题在于,Docker 与 CRI(Container Runtime Interface)规范并不兼容,如果没有 shim,那么 Docker就无法在 K8s 上工作.然而你也没必要因此难过,更不是世界末日----你所有要做的只是换一个运行时而已.

注意的一点是,如果你的集群工作流中某一部分依赖于 docker  socket(/var/run/docker.sock), 那么迁移到其他运行时会导致这部分不可用.这种模式称之为 docker in docker . 实现这个特性有很多其他选项,比如 kaniko,img和 buildah.

开发者应该如何?继续 dockerfile 和 docker build 么?

所以,这次更改(移除 K8s中的 docker 运行时支持)并不是大多数人使用 docker 的场景.你的 docker 开发环境与 K8s 里的 Docker 运行时是无关的. 我知道这么说会让人困惑.作为开发者,这次改动对你的 docker 的使用没有影响.要知道,docker build 生成的image不是 docker 专用的 image ,而是一个 OCI image. 即,只要是 OCI 兼容的 image,不管你用什么方式构建,对 K8s 都是一样的,Containered和 CRI-O 都可以拉取和运行. 这也是为什么说容器是一种标准技术.

所以,这个更改只会给很少的人带来问题.它并不是灾难性的,事实上喧是一件好事. 根据使用 K8s 方式的不同,它对你几乎无影响,或只有很少的工作.长期看来,这个改动使事情更加简单(少了 dockershim).如果你还是表示担忧,那么也没毛病,因为事情不是一直不变,K8s 也是一样,没有人敢说自己百分之百的精通它.

我们期待与大家沟通任何问题,无论这些问题的复杂与否.我们的目标是让每个人尽可能多的了解可能的变化(少于3个),希望这篇文章解答了你的困惑,缓解了你的焦虑.

更多问题请参考   Dockershim Deprecation FAQ. 

https://kubernetes.io/blog/2020/12/02/dockershim-faq/

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
### 回答1: k8s和Docker是两个非常流行且广泛使用的容器技术。下面是关于k8s和Docker指南下载的回答。 首先,在下载Kubernetes(k8s)指南之前,我们需要明确一点,k8s是一个用于自动化部署、扩展和管理容器化应用程序的开源平台。在使用k8s之前,我们通常需要具备一定的容器化应用程序开发和部署经验。因此,如果你已经掌握了k8s的基础知识并准备部署和管理容器化应用程序,那么下面是一些关于k8s指南的下载资源。 - Kubernetes官方网站:Kubernetes官方网站是获取最新版k8s指南的主要来源。你可以在官方文档部分找到完整的k8s指南,包含了从安装到使用的详细教程和例子。你可以访问https://kubernetes.io/获取官方文档的最新版本。 - Kubernetes Github仓库:Kubernetes的源代码托管在Github上,你可以在该仓库中找到完整的k8s文档和指南。你可以访问https://github.com/kubernetes/kubernetes浏览并下载最新的k8s指南。 - Kubernetes相关博客和社区论坛:除了官方文档,一些热心的开发者和社区会在自己的博客或者社区论坛上分享关于k8s的指南和教程。你可以通过搜索引擎或者参与相关的技术讨论来寻找和下载这些指南。 相对于k8s,Docker的指南下载更为简单。Docker是一个开源的容器化平台,让开发者和系统管理员可以更方便地构建、部署和运行应用程序。以下是一些下载Docker指南的资源。 - Docker官方网站:Docker官方网站上有关于Docker的完整指南和教程。你可以在https://www.docker.com/上找到并下载最新的Docker指南。 - Docker Github仓库:Docker源代码也托管在Github上,你可以访问https://github.com/docker/docker该仓库获取Docker指南的最新版本。 - Docker相关社区和博客:和k8s一样,一些Docker开发者和社区也会在他们的博客或者社区论坛上分享关于Docker的指南和教程。你可以通过搜索引擎或者参与相关的技术讨论来寻找和下载这些指南。 总之,k8s和Docker指南的下载可以通过官方网站、Github仓库以及相关社区和博客来实现。这些指南将帮助你更好地了解和使用k8s和Docker这两个强大的容器化技术。 ### 回答2: 要下载Kubernetes(K8s)和Docker相关的指南,可以遵循以下步骤: 1. 打开你的浏览器,访问Kubernetes官方网站,网址为"kubernetes.io"。 2. 在网站顶部的搜索框中输入"Kubernetes Docker指南"并按下回车键。 3. 在搜索结果中,选择适合你的需求的指南,通常会有多个版本和不同的指南可供选择。可以根据自己的操作系统和技术水平选择适合的版本。 4. 点击选中的指南链接,进入指南页面。 5. 在指南页面,你可以找到有关下载和安装Kubernetes和Docker的详细明。这些明通常包括相关软件的下载链接、安装步骤、配置文件示例和一些常见问题解答等等。 6. 按照指南中给出的步骤,下载并安装Kubernetes和Docker所需的软件。 7. 阅读指南中的配置部分,认真配置Kubernetes和Docker以满足你的需求。 8. 如果下载过程中遇到任何问题,可以在指南页面的评论区留言,或者在Kubernetes社区的论坛上提问,寻求帮助和解答。 下载Kubernetes和Docker的指南是很重要的,它们将指导你正确安装和配置这些工具,使你能够更加高效地使用和管理容器化应用程序。记得定期查看官方网站,以获取最新版本、更新和指南。 ### 回答3: k8s是一种开源的容器编排平台,而Docker是一种开源的容器化平台。首先,我们需要下载和安装Docker,然后再下载和安装k8s。下面是具体步骤: 1. 首先,打开Docker官方网站(https://www.docker.com/),在上方的菜单中找到并点击“Get Docker”(获取Docker)。 2. 在弹出的页面上,根据你的操作系统选择合适的版本,比如Windows、macOS或Linux,并点击相关的链接。 3. 在新的页面上,按照指导下载Docker的安装包。一旦下载完成,双击安装包并按照指示完成安装过程。 4. 安装完成后,打开终端或命令提示符窗口,输入命令“docker --version”来验证安装是否成功。如果成功安装,将显示Docker的版本号。 5. 下载k8s的方式有多种,推荐使用官方提供的kubeadm工具来安装和管理k8s集群。 6. 打开k8s官方文档(https://kubernetes.io/),找到并点击“Getting Started”(入门指南)。 7. 在新页面上,选择合适的教程,根据自己的操作系统和需求进行下载和安装。比如,如果你使用的是Linux系统,可以选择“Creating a single control-plane cluster with kubeadm”(使用kubeadm创建单个控制平面集群)的教程。 8. 按照指导进行下载和安装kubeadm,并按照教程中的步骤一步一步地配置和设置k8s集群。 9. 完成安装后,使用命令“kubectl version”来验证k8s是否成功安装。如果成功安装,将显示k8s的版本信息。 通过按照以上步骤,你可以成功下载和安装k8s和Docker,然后开始使用它们来完成容器编排和管理。记得查阅官方文档和其他相关资源,以获得更多关于k8s和Docker的知识和使用技巧。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值