近日,Kubernetes 在1.20版本中 的 ChangeLog 提到,将废弃 Docker 作为容器运行时。
kubelet 中的 Docker 支持功能现已弃用,并将在之后的版本中被删除。Kubelet 之前使用的是一个名为 dockershim 的模块,用以实现对 Docker 的 CRI 支持。但 Kubernetes 社区发现了与之相关的维护问题,因此建议大家考虑使用包含 CRI 完整实现的可用容器运行时。
虽然这一问题在行业内引起了关注与讨论,但其实用户并不需要感到太惊慌。具体可以参考《(闲聊)听说 K8s 要甩了 Docker 了》这篇文章中的解释,以及CNCF 公众号发布的《不要惊慌:kubernetes 和 Docker 》。
kubernetes 真的弃用 docker 了吗?
Kubernetes 1.20 版本提到的不再维护 dockershim 垫片,并逐渐在后续版本中移除该垫片,这意味着在未来的 Kubernetes 环境中,docker 的占比将逐渐下降。简而言之,Docker 作为底层运行时的确正在被弃用,但用户不必惊慌,Docker 生成的镜像将继续在用户的集群中与所有运行时一起工作。
Docker 项目自2013年开源以来,引领了容器技术浪潮,至今仍然是众多容器环境下的首选,与 kubernetes 集成的成熟度高,最为稳定。Docker 技术本身在用户体验、容器构建等多方面的优秀表现,也会在开发环境、镜像构建等方面继续活跃。
其次,Docker 项目在最近几年的进化中,已经拆分成了多个小项目,例如 containerd / runc 等,这些新生项目也会在未来的 kubernetes 环境中继续发光发热。
对已使用k8s+docker的用户是否有影响?
作为为企业用户提供容器云产品与服务的提供商,博云也注意到了这一事件,同时我们也收到部分客户对这一问题的疑虑。
博云基于 kubernetes 自主研发的容器云产品是博云的核心产品之一。因此,博云一直深耕容器云底层核心技术的改进与增强,并积极参与开源社区贡献,对 kubernetes 不断增强的趋势一直持续关注和研究。为使企业客户避免单一技术绑定带来的风险,博云容器云平台已经实现提供除 docker 以外的其他多种容器运行时的支持。
目前,博云容器云平台默认使用 Docker 作为 kubernetes 环境下的容器运行时,但同时也支持任何兼容 CRI 接口的具体实现,例如CRI-O、containerd等,并在实践项目中进行了实际部署,在技术掌控力、落地实践等方面有大量经验。
对于已经使用 kubernetes+docker 的用户来说,这一更改对用户已有系统的运行不会有任何影响。对于正在建设的项目,这一更改也不会对进行中项目建设产生影响,用户可以自愿选择继续使用稳定性已被验证的 kubernetes+docker,或是选择社区推荐的containerd、CRI-O 等新运行时。
博云将为客户提供系统升级服务选项,供客户自愿选择:1. 如果您需要实现已有应用迁移到新运行时,可以考虑利用多集群管理能力,逐渐将应用进行迁移。2. 如果是新环境,您可以在新环境中直接考虑使用博云容器云平台支持的containerd、CRI-O 等新运行时。
如有更多疑问,欢迎您向博云咨询。
标签:容器,弃用,Kubernetes,kubernetes,docker,Docker,CRI,博云 From: https://blog.51cto.com/u_11976981/5900721