摘要
边缘计算带来的新「容器」生意。
2 月 26 日,由容器管理软件提供商 Rancher Labs(以下简称 Rancher)发布的轻量级 Kubernetes 发行版 K3s 在 GitHub 上悄然上线,一周后,这款产品收获了 5000 颗星,在 master 上,44 个文件已经改变,并且有 630 个添加和 332 个删除。
对于大多数读者而言,被戏称为全球最大男性交友网站的 GitHub 并不陌生,3100 万名程序员活跃在这个项目托管平台,分享开源代码。但要理解 K3s 这个具体项目,还需要明确两个其中的核心概念:容器和 Kubernetes。
容器就是一种软件封装的方法,用一种标准的方式将软件和应用打包在一起〡视觉中国
Rancher 联合创始人及 CEO 梁胜对极客公园解释道:「容器就是一种软件封装的方法。以前没有封装方法的时候,就没有什么统一的标准。不同的厂商,不同的云计算提供商的接口都不一样,有不同的操作系统,还有不同的云计算平台。」而现在用一种标准的方式将软件和应用打包在一起,容器可以不仅可以提升软件的迭代速度,还可以减少在研发、运维、检测过程中不同标准带来的错误。
而 Kubernetes(简称 K8s,是用 8 代替 8 个字符「ubernete」而成的缩写),是一个开源的、用于管理云平台中多个主机上的容器化的应用。Kubernetes 提供了应用部署、规划、更新、维护的一种机制。
如果说容器让软件的部署、应用变得简单,那么 Kubernetes 则能让容器的使用、管理变得简单。
此次发布的 K3s 项目则在 K8s 上做了精简使其更适用于边缘计算、嵌入式设备和 CI 环境,正如其发布时提出的口号「k3s - 5 less than k8s」。据 Rancher 方面介绍,K3s 将满足在边缘计算环境中运行在 x86、ARM64 和 ARMv7 处理器上的小型、易于管理的 Kubernetes 集群不断出现的新需求。
Rancher 的核心业务一直聚焦于云端管理容器,这次向边缘延伸还是客户「倒逼」,向梁胜提出了新需求。
在空旷见风的地方,上百台白色涡轮昼夜不停地旋转,向外不断输送着每年以万亿瓦时为统计单位的电力。这一看似随风转动的被动动作之外,实际存在着更为主动的实时数据运算:风速、温度,这些对风力发电产生影响的数据都需要被处理。
Rancher 的应用场景之一——风力发电机〡视觉中国
在一般专线带宽只有 2MB 的山坡,对这些数据处理的最理想状态则是运用高性能的人工智能数据处理软件在「当地」完成工作。世界第二大风力发电机制造商金风慧能就选择把这些软件发布在 K8s 上,在边缘环境中部署 K8s。
但这一举动并不经济实惠。「K8S 要消耗掉 4G 的内存,虽然 4G 的内存在数据中心不算什么,现在买一台服务器,你可以配置 512G、256G 或者一个 T 的内存,所以 4G 不算大。但是在边缘它有的时候一个节点总共就只有 8G 或者 16G,所以很多客户会觉得如果把内存放在 K8S 里面,开销就有点太大了。」梁胜,这位曾经领导开发 Java 语言的 JVM(Java 虚拟机)的博士算了一笔账。
在过去一年时间,除了金风慧能外,还有数十个客户向梁胜表达,虽然 Kubernetes 是管理边缘基础设施的理想平台,但他们不愿意在他们的边缘设备中投入大量资源来运行一个成熟的 Kubernetes 平台,用于数据中心和云计算场景的 Kubernetes 需要向边缘「延展」。
半年时间里,Rancher 的开发团队对 K8s 做了四个方面的精简,带回了全新的 K3s。
第一,删除 K8s 中旧的、非必须的代码:K3s 不包括任何默认禁用的 Alpha 功能或者过时的功能,原有的 API 组件目前仍运行于标准部署当中。除此之外,还删除了所有非默认许可控制器,in- tree 云提供商和存储驱动程序。
第二,整合正在运行的打包进程:为了节省 RAM,通常在 Kubernetes 管理服务器上运行的多流程被合并为单个流程。Rancher 还将在工作节点上运行的 kubelet、kubeproxy 和 flannel 代理进程组合成一个进程。
第三,使用 containerd 代替 Docker 作为运行时的容器引擎:通过用 containderd 替换 Docker,Rancher 能够显著减少运行时占用空间,删除 libnetwork、swarm、Docker 存储驱动程序和其他插件等功能。
最后,除了 etcd 之外,引入 SQLite 作为可选的数据存储:Rancher 在 k3s 中添加了 SQLite 作为可选的数据存储,从而为 etcd 提供了一个轻量级的替代方案。
经过这样的「适配」后,梁胜说,K3s 目前已经可以 run 在一个 512MB 的节点上。
作为 Rancher 的客户之一,世界第二大风力发电机制造商金风慧能技术副总经理张伟非常期待 K3s 的运用:我们有着超过 30,000 个风力发电机在投产使用中,K3s 的出现意味着我们将可以在成千上万个边缘计算的位置部署 Kubernetes 集群。
相同的需求还大量存在 Rancher 目前服务的金融、医疗、制造业等 4000 多家企业用户中。梁胜相信随着边缘部署、物联网的发展,容器市场将出现新的增长需求。
近年来,容器技术发展的态势如火如荼。2013 年 3 月,Docker 公司发布了第一代 Docker Hub——发布和使用 Docker 容器镜像的官方平台;2014 年 6 月,Docker 1.0 正式发布;而今天,Docker 容器镜像拉取数已超 20 亿次。
但同时,容器技术也面临着包容性过广却无法被真正利用的问题。「容器还未取得当年基础设施云的采纳程度,在整体的计算机环境下的占比还比较小。容器技术还处于上升的阶段,不过容器的开发利用,也就三四年的时间。在美国,也只有 1%、2% 的资源在运行容器。一个技术一直稳步成长也不行,至少要到 10%、20%。所以我觉得从今年的 1%、2% 到未来,成长空间其实还很大的。」梁胜对未来充满信心。
采取海外常见订阅模式收费的 Rancher 目前已获得两轮累计超过 2 亿元人民币的融资:研发出开源平台、开源技术后进行推广,吸纳足够多用户,Rancher 再提供付费的技术支持,售卖客户订阅,在使用的过程中,如果出现了任何问题,能第一时间接受 Rancher 的技术支持。
梁胜认为,「边缘」真正的想象力不在于一支温度计或者用了单片机的智能垃圾桶,而是更大的场景:「比如一个火车站,这种地方不大可能所有的计算都是远程的,万一出点事情,整个系统都会崩溃掉。比如说风一刮把电线刮断了,导致整个车站停止运营,就不太好处理。这种时候就需要边缘计算的能力。」
而需求的涌现必将会为容器市场带来一个不容小觑的机会。
领取专属 10元无门槛券
私享最新 技术干货