Docker容器化和Kubernetes容器编排,作为微服务和云原生的核心依赖,这几年已是大红大紫全民皆知。然而近日Kubernetes官方发布公告,宣布自 v1.20 起放弃对 Docker 的支持,惊呆了一众开发者。在这背后,究竟是人性的扭曲,还是道德的沦丧,下面来为大家一一分析解读。
官方声明地址:https://kubernetes.io/blog/2020/12/02/dont-panic-kubernetes-and-docker/
Docker容器化
容器技术,打破了原来用虚拟机部署软件对硬件环境和条件的限制,让软件的逻辑边界获得了更大程度的扩展。只要是一台能够安装Linux的个人PC机、服务器、甚至是小巧玲珑的树莓派,都可以非常轻松的安装容器,实现了硬件资源的最大化利用。这也让微服务技术得以更好的落地,更加便捷、高效的实现企业生产效率的提升。
目前大型互联网公司有腾讯、京东、美团、新浪、大众点评等都在使用。比如说腾讯的盖亚,基于docker部署管理,据说已经有万台规模,用于大数据处理。美团主要是用于持续集成,自动构建方面,另外新浪也做了实践。容器化是一个大趋势,以后这方面的公司会越来越多。
扫码领取
Kubernetes容器编排
就在Docker容器技术被炒得热火朝天之时,大家发现,如果想要将Docker应用于具体的业务实现,在编排、管理和调度等各个方面,都不容易。于是,我们迫切需要一套管理系统,对 Docker 及容器进行更高级更灵活的管理,于是kubernetes应运而生。
Kubernetes 能在实体机或虚拟机集群上调度和运行程序容器,避免人肉运维屏蔽底层细节,当下已经被誉为“云时代的操作系统”,核心地位可见一斑!
Docker+Kubernetes已然成为微服务和云计算的主流,然而突然爆出Kubernetes放弃对Docker的支持,届时用户将收到 Docker 弃用警告,并需要改用其他容器运行时。但 Docker 作为容器镜像构建工具的作用将不受影响,用其构建的容器镜像将一如既往地在集群中与所有容器运行时正常运转。这又发生了什么?
官方说明
官方解释称,Docker 作为一个完整的容器技术堆栈,在其创建之初就不是为了将其嵌入 Kubernetes 而设计的。除了其作为容器运行时本身的作用以外,Docker 还包含了一系列方便用户交互的 UX 更改,而这些额外的功能对于 Kubernetes 来说过于臃肿。
事实上,Docker 并不符合 Kubernetes 的容器运行时接口标准(CRI),官方必须要维护一个名为 Dockershim 的中间件才能够把 Docker 当作 Kubernetes 的容器运行时来使用。因此,官方建议用户使用符合 CRI 的 containerd 或 CRI-O 作为取代 Docker 的容器运行时,并表示最早将于 v1.23 版本把 Dockershim 从 Kubelet 中移除。
不过,Kubernetes 官方表示用户今后依然可以使用 Docker 来构建容器镜像,而 Docker 生成的镜像实际上也是一个 OCI(Open Container Initiative)镜像。无论使用什么工具来构建镜像,任何符合 OCI 标准的镜像在 Kubernetes 看来都是一样的。containerd 和 CRI-O 则可以提取这些镜像并运行它们。
划重点:Docker+Kubernetes这套东西开发者还是可以继续玩的,没问题。但将来会推荐别的容器技术来代替docker的。
画外音:以前Kubernetes支持Docker是没办法,现在准备抛弃换新人了,官方如此多解释无非欲盖弥彰,Docker在容器编排工具竞争的失败,注定了未来的命运。
例行分享
又到了资源分享时刻,这里整理了50+头部互联网公司的架构师内部分享资料,关注容器、关注Kubernetes、关注云原生的小伙伴儿,赶紧扫码领取吧!本内容若有侵权可联系删除。
扫码领取即可领取
添加微信zhaoxiNet007也可