不必惊慌:聊聊Kubernetes与Docker

不必惊慌:聊聊Kubernetes与Docker

作者:尼古拉斯 2020-12-04 14:19:08

云计算 在1.20版本之后,Kubernetes将不再支持把Docker作为容器运行时使用。不必惊慌,实际上没多大影响。

在1.20版本之后,Kubernetes将不再支持把Docker作为容器运行时使用。

不必惊慌,实际上没多大影响。

[[355749]]

摘要:这里只是不建议将Docker作为底层运行时,你仍然可以使用专为Kubernetes创建的容器运行时接口(CRI)一如既往地在集群中运行Docker镜像。

对于Kubernetes最终用户,此次调整同样不会有太大影响。Docker不会就此消亡,你也仍然可以继续将Docker作为开发工具使用。Docker会继续构建起不计其数的容器,而运行docker build命令所生成的镜像仍可在Kubernetes集群内正常运行。

如果你使用的是GKE或者EKS等托管Kubernetes服务,则需要确保在未来的Kubernetes版本彻底去除Docker支持之前,为你的工作节点引入受支持的容器运行时。如果节点中包含自定义项,你可能需要根据当前环境及运行时要求做出更新。请与服务供应商合作,确保正确完成升级测试及规划。

如果你的集群一直在滚动扩展,则需要配合变量以避免服务中断。在1.20版本中,你将收到Docker弃用警告。而在未来的Kubernets版本(计划在2021年下半年发布的1.23版本)中,Docker运行时将被彻底移除、不再受到支持,届时您必须切换至其他兼容的容器运行时,例如containerd或者CRI-O。只需要保证你所选定的运行时,能够支持当前使用的Docker守护程序配置即可(例如日志记录)。

既然问题不大,人们在慌什么?在怕什么?

这里我们需要探讨两种不同的环境,而这也是恐慌情绪的根源。首先,在Kubernetes集群内部存在一种叫作容器运行时的东西,负责提取并运行容器镜像。Docker是目前最流行的运行时选项(其他常见选项还包括containerd与CRI-O)。但Docker在设计上并未考虑到被嵌入Kubernetes这种用法,所以可能引发问题。

很明显,这里我们提到的“Docker”并不是同一种东西——它代表着一整套技术栈,而containerd高级容器运行时则是Docker中的一部分。Docker很酷、实用性极强,提供多种用户体验增强功能,让我们能够在开发过程中轻松完成协同交互。但是,用户体验增强功能对Kubernetes来说并非必需,因为Kubernetes并不是什么人类协作方。

结果就是,要想让containerd这个人类友好型抽象层发挥作用,Kubernetes集群就必须引入另一款名为Dockershimi的工具。但这款工具的介入又引发了新的问题,因为我们必须额外加以维护,否则就可能引发安全问题。事实上,Dockershim早在Kubelet 1.23版本时就已经被移除,或者说Kubelet很早就取消了将Docker作为容器运行时的功能。这时候很多朋友可能要问,既然Docker栈中已经包含containerd,Kubernetes为什么还要画蛇添足地搞出个Dockershim?

这是因为Docker与CRI(即容器运行时接口)并不相容。正是因为不相容,所以我们才需要Dockershim来缓冲一下。但这不是什么大问题,各位没必要惊慌——这件事的本质,就是把容器运行时从Docker转换为另一种受支持的选项。

这里需要注意的是:如果大家将底层Docker套接字(/var/run/docker.sock)设定为集群工作流中的一部分,那么转换至其他运行时会破坏掉当前业务的正常运行。这种模式在Docker中就被称为Docker,好在我们可以使用多种选项解决这个特定用例,包括Kaniko、Img以及Buildah等等。

但这种变化对开发者意味着什么?我们还需要编写Dockerfiles吗?未来还应不应该继续使用Docker?

请注意,本次变更所影响到的环境,其实跟大多数人用于进行Docker交互的环境并不是一回事。你在开发中使用的Docker安装,与Kubernetes集群中的Docker运行时毫无关系。我知道,这事听起来让人有点犯迷糊。总之,对于开发人员,Docker在公布此次更改之前提供的所有方案都仍然适用。Docker生成的镜像实际上并不特定于Docker,更准确地说它应该属于OCI(开放容器倡议)镜像。任何与OCI相兼容的镜像,无论使用哪种工具构建而成,对于Kubernetes来说都是一样的。Containerd与CRI-O都能识别这些镜像并正常运行,这也是我们建立一套统一容器标准的意义所在。

因此,虽然变化即将到来,虽然会给部分用户带来麻烦,但影响并不算大。而且从长远角度看,这其实是件好事。总而言之,希望大家放下抵触和恐慌情绪,坦然接受这个变化。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/307323.html<

(0)
运维的头像运维
上一篇2025-05-27 01:56
下一篇 2025-05-27 01:57

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注