行业数字化转型如火如荼,企业正在全面转向云原生平台,并由此引发了架构方案、生产方式、思维模式、商业模式等一系列的变革。Gartner 的预测显示,到 2025 年,95% 以上的数字化转型方案将选择云原生平台作为基础,而在 2021 年这一比例只有不到 40%。
与此同时,以容器为代表的云原生技术也在持续演进,尤其在 Kubernetes 成为云原生体系的技术核心以后。容器技术已经进入 Kubernetes 时代,原来的技术体系正在悄然改变。早在 2020 年 12 月,Kubernetes 就宣布将弃用 dockershim,从那时起,业界就在寻求移除 dockershim 的替代方案。
经过过去一年的过渡,日前,Kubernetes 宣布,将在 Kubernetes 1.24 版本中删除 dockershim,该版本定于今年 4 月左右发布。对此,SUSE Rancher 作为一个开源的企业级 Kubernetes 管理平台,早已给出了应对之道。
在日前的相关主题直播中(https://www.bilibili.com/video/BV1Xa411C78k?spm_id_from=333.999.0.),SUSE Rancher 大中华区研发总监张智博表示,针对习惯于使用 docker 的用户,SUSE Rancher 将继续为客户提供 Kubernetes+Docker 相关技术产品;对于那些希望跟随 Kubernetes 上游发展的用户,SUSE Rancher 则通过提供 Kubernetes+Containerd 相关技术产品帮助企业拥抱容器、拥抱云原生。
Kubernetes 崛起,弃用 Dockershim 是技术发展的必然
要弄清楚 Kubernetes 为何会弃用 dockershim,还要从容器技术的发展说起。在容器技术崛起之前,业界最热门的技术是虚拟化平台,如 VMWare、OpenStack 等。尽管虚拟机可以“虚拟”出很多子系统,但存在占用空间大、启动慢、资源占用高等问题。
像 Docker 这样的容器技术,属于轻量级的“虚拟化”,它不需要“虚拟”出整个操作系统,只需要“虚拟”一个小规模的环境(类似“沙箱”),从而成功规避了虚拟机的缺点,受到业界的热烈欢迎和追捧。
不过,在 2013 年 Docker 开源以后,新的问题出现了:Docker 只是创建容器的工具,是应用容器引擎,它本身并不是容器;如果想将 Docker 应用于具体的业务层面,还需要对其进行编排、管理和调度。2014 年,Kubernetes 横空出世并默认使用 Docker 作为容器运行,实现了对容器的编排、管理和调度。
随后,Kubernetes 的代码当中包含了很多与 Docker 相关的操作逻辑,为了能够做解耦,兼容更多的容器运行时,Kubernetes 将操作 Docker 的相关逻辑独立出来,组成了 dockershim。因此,dockershim 可以看作是 Kubernetes 的一个组件,主要目的是为了通过 CRI (容器运行时接口)操作 Docker;也就是说,dockershim 相当于 Kubernetes 和 Docker 的一个中转站或者枢纽。
这样一来,Kubernetes 或 Docker 有任何的功能变动,dockershim 代码都必须随之改动,以支持变更。但 Docker 的底层运行时是 containerd,而 containerd 也支持 CRI, Kubernetes 完全可以绕过 dockershim 这一中转站直接通过 CRI 与 containerd 进行交互;此外,随着容器技术的演进,容器运行时也变得多种多样,Kubernetes 通过 CRI 即可与它们进行交互,dockershim 因此变得可有可无。
面对变革,SUSE Rancher 的建议和应对之道
尽管 Kubernetes 即将弃用 dockershim,但这并不意味着 Docker 已经过时;相反,Docker 的性能久经考验,技术也更为成熟,不仅拥有庞大的用户群体,也是相当长一段时间里,企业开展容器技术应用的重要切入点。
在 Apache APISIX PMC 张晋涛看来,Docker 的发展之所以显现疲态,与其开源之后一直没有找到合适的商业化路线有关。未来,Docker 最核心的动作就是 Kubernetes 给开发者提供好用的容器技术,它的定位依然是容器平台,而不是底层的容器运行时。
未来的容器运行时将是 containerd 的天下,张智博认为,弃用 dockershim 为containerd 的快速普及带来了新的机遇,这一点在 2021年 CNCF Survey 上有很明显的展示,大多数用户均选择 containerd 替换 Docker 的方案。不过,底层技术的变革并不会对企业用户带来多大影响,公有云和其他商业厂商以及开源社区会有足够多的技术路线来规避风险。
正如张晋涛所说,采用云服务的企业对容器运行时的切换其实是无感知的。即便企业采用的不是云上托管而是自建云的模式,终端用户也无需关注这一点,只有企业中负责 Kubernetes 维护管理的运维人员才会在意。因此,张智博建议,企业要以不变应万变,业务稳定性永远是第一考量,而非技术架构的先进性。
不论是 Kubernetes 的突飞猛进、Docker 的日渐式微,还是 containerd 的大势所趋,企业短期内都无需过分关注。对于那些构建在公有云上的业务,云厂商已经帮助企业客户解决了底层技术架构升级的问题;而对于构建了私有云的企业客户来说,他们也不必破坏传统技术架构的稳定性和持久性,只需要在建立新的集群时逐步完成 containerd 的逐步替代和切换。
面对这一技术变革,SUSE Rancher 采用了商业厂商面向开源社区推动的 cri-dockerd 方案,确保 RKE 集群可以继续利用 Docker 作为其容器运行时;而对于希望跟随上游发展而移除 Docker 的用户,SUSE Rancher 的 K3s/RKE2 等开源产品均使用 containerd 作为默认运行时,K3s 可以面向本地开发以及边缘环境,RKE2 则可以面向数据中心使用场景。
也就是说,尽管 SUSE Rancher 是开源厂商,但非常重视开源的商业化。虽然技术的发展趋向于 containerd,SUSE Rancher 并不会强制客户去 Docker,如果企业客户依然在使用 Docker,SUSE Rancher 也会继续维护这类项目。
加速技术迭代,SUSE 激活企业无限创新潜力
在云原生领域,Kubernetes 弃用 Dockershim 只是容器技术演进过程中的一个小插曲;当前,各行各业数字化转型持续深入,企业客户正在向云计算技术提出越来越多的新要求。
日前,CNCF 发布的 2021 年度调查报告显示,96% 的企业正在使用或评估Kubernetes,这一数据是自 2016 年开启该项调查以来的历史新高。CNCF 认为,容器和 Kubernetes 的事实地位已经巩固,随着技术的发展,容器和 Kubernetes 将慢慢转向“幕后”工作;与过去相比,企业似乎更密集地使用无服务器和托管服务,开发者也不一定需要了解底层容器技术。
正是预判了这一趋势,SUSE 作为全球最大的独立开源公司,在 2020 年完成了对 Kubernetes 管理领域市场领导者 Rancher Labs 的收购,从而具备了全面覆盖企业级 Linux、容器、Kubernetes 和边缘计算等领域的综合实力,可以帮助企业客户在数据中心、云端、边缘侧等任意场景创新。
2021年底,SUSE 通过 Kubernetes 构建的超融合基础架构(HCI)开源软件Harvester 正式 GA,自此 SUSE 的产品阵容已经扩展到超融合基础设施领域。不久前,SUSE 又正式发布了容器桌面管理工具 Rancher Desktop 1.0.0,可以帮助企业客户在 Mac、Windows 和 Linux 系统中以桌面形式管理 Kubernetes 和容器。
从容器到 Kubernetes,从企业级 Linux 到边缘计算,从开源到开放,SUSE 正在走向比云计算更广阔的数字化星辰大海。