• <dl id="gkssh"><menu id="gkssh"></menu></dl><menuitem id="gkssh"></menuitem>
  • <optgroup id="gkssh"><address id="gkssh"></address></optgroup>
  • <optgroup id="gkssh"><thead id="gkssh"></thead></optgroup>
  • 如何一周内在 GitHub 收获 5000 颗星?

    摘要

    边缘计算带来的新「容器」生意。

    2 月 26 日,由容器管理软件提供商 Rancher Labs(以?#24405;?#31216; Rancher)发布的轻量级 Kubernetes 发行版 K3s 在 GitHub 上悄然上线,一周后,这款产品收获了 5000 颗星,在 master 上,44 个文件已经改变,并且有 630 个添加和 332 个删除。

    对于大多数读者而言,被戏称为全球最大?#34892;?#20132;友网站的 GitHub 并不陌生,3100 万名程序员活跃在这个项?#23458;?#31649;平台,分享开源代码。但要理解 K3s 这个具体项目,还需要明确两个其中的核心概念:容器和 Kubernetes。


    容器就是一种软件封装的方法,用一种标准的方式将软件和应用打包在一起〡视觉中国

    Rancher 联合创始人及 CEO 梁胜对极客公园解释道:「容器就是一种软件封装的方法。以前没有封装方法的时候,就没有什么统一的标准。不同的厂商,不同的云计算提供商的接口都不一样,有不同的操作系统,还有不同的云计算平台。」而现在用一种标准的方式将软件和应用打包在一起,容器可以不仅可以提升软件的迭代速度,还可以减少在研发、运维、检测过程中不同标准带来的错误。

    而 Kubernetes(简称 K8s,是用 8 代替 8 个字符「ubernete」而成的缩写),是一个开源的、用于管理云平台中多个主机上的容器化的应用。Kubernetes 提供了应用部署、规划、更新、维护的一种机制。

    如果说容器让软件的部署、应用变得简单,那么 Kubernetes 则能让容器的使用、管理变得简单。

    此次发布的 K3s 项目则在 K8s 上做了精简使其更适用于边缘计算、?#24230;?#24335;设备和 CI 环境,正如其发布时提出的口号「k3s - 5 less than k8s」。据 Rancher 方面介绍,K3s 将满足在边缘计算环境中运行在 x86、ARM64 和 ARMv7 处理器上的小型、易于管理的 Kubernetes 集群不断出现的新需求。

    Rancher 的核心业务一直聚焦于云端管理容器,这次向边缘?#30001;?#36824;是客户「倒逼」,向梁胜提出了新需求。


    新场景新需求

    在空旷见风的地方,上百台白色?#26032;种?#22812;不停地旋转,向外不断输送着每年以万亿瓦时为统计单位的电力。这一?#27492;?#38543;风转动的被动动作之外,实际存在着更为主动的实时数据运算:风速、温度,这些对风力发电产生影响的数据都需要被处理。

    Rancher 的应用场景之一——风力发电机〡视觉中国

    在一般专线带宽只有 2MB 的山坡,对这些数据处理的最理想状态则是运用高性能的人工?#24708;?#25968;据处理软件在「当地」完成工作。世界第二大风力发电机制造商金风慧能就选择把这些软件发布在 K8s 上,在边缘环境中部署 K8s。

    但这一举动并不经济实惠。「K8S 要消耗掉 4G 的内存,虽然 4G 的内存在数据中心不算什么,现在买一台服务器,你可以配置 512G、256G 或者一个 T 的内存,所以 4G 不算大。但是在边缘它有的时候一个节点总共就只有 8G 或者 16G,所以很多客户会觉得如果把内存放在 K8S 里面,开销就有点太大了。」梁胜,这位曾经领导开发 Java 语?#32536;?JVM(Java 虚拟机)的博士算了一?#25910;恕?/p>

    在过去一年时间,除了金风慧能外,还有数十个客户向梁胜表达,虽然 Kubernetes 是管理边缘基础设施的理想平台,但他们不愿意在他们的边缘设备中?#24230;?#22823;量资源来运行一个成熟的 Kubernetes 平台,用于数据中心和云计算场景的 Kubernetes 需要向边缘「延展」。

    半年时间里,Rancher 的开发团队对 K8s 做了四个方面的精简,带回了全新的 K3s。

    第一,删除 K8s 中旧的、非必须的代码:K3s 不包括任何默认禁用的 Alpha 功能或者过时的功能,原有的 API 组件目前仍运行于标准部署当中。除此之外,还删除了所有?#24708;?#35748;许可控制器,in- tree 云提供商和存储驱动程序。

    第二,整合正在运行的打包进程?#20309;?#20102;节省 RAM,通常在 Kubernetes 管理服务器上运行的多流程被合并为单个流程。Rancher 还将在工作节点上运行的 kubelet、kubeproxy 和 flannel 代理进程组合成一个进程。

    第三,使用 containerd 代替 Docker 作为运行时的容器引擎?#21644;?#36807;用 containderd 替换 Docker,Rancher 能够显著减少运行时?#21152;?#31354;间,删除 libnetwork、swarm、Docker 存储驱动程序和其他插件等功能。

    最后,除了 etcd 之外,引入 SQLite 作为可选的数据存储:Rancher 在 k3s 中添加了 SQLite 作为可选的数据存储,从而为 etcd 提供了一个轻量级的替代方案。

    经过这样的「适配」后,梁胜说,K3s 目前已经可以 run 在一个 512MB 的节点上。


    从云到边的容器生意

    作为 Rancher 的客户之一,世界第二大风力发电机制造商金风慧能?#38469;?#21103;总经理张伟非常期待 K3s 的运用?#20309;?#20204;有着超过 30,000 个风力发电机在投产使用中,K3s 的出现意味着我们将可以在成千上万个边缘计算的位置部署 Kubernetes 集群。

    相同的需求还大量存在 Rancher 目前服务的金融、医疗、制造业等 4000 多家企业用户中。梁胜相信随着边缘部署、物联网的发展,容器市场将出现新的增长需求。

    近年来,容器?#38469;?#21457;展的态势如火如荼。2013 年 3 月,Docker 公司发布了第一代 Docker Hub——发布和使用 Docker 容器镜像的官方平台;2014 年 6 月,Docker 1.0 正式发布;而今天,Docker 容器镜像拉取数已超 20 亿次。

    但同时,容器?#38469;?#20063;面临着包容性过广?#27425;?#27861;被真正利用的问题。「容器还未取得当年基础设施云的采纳程度,在整体的计算机环境下的占?#28982;?#27604;较小。容器?#38469;?#36824;处于上升的阶段,不过容器的开发利用,也就三四年的时间。在美国,也只有 1%、2% 的资源在运行容器。一个?#38469;?#19968;直稳步成长也不行,至少要到 10%、20%。所以我觉?#20040;?#20170;年的 1%、2% 到未来,成长空间其实还很大的。」梁胜对未来充满信心。

    采取海外常见订阅模式收费的 Rancher 目前已获得两轮累计超过 2 亿元人民币的融资:研发出开源平台、开源?#38469;?#21518;进行推广,吸纳足够多用户,Rancher 再提供付费的?#38469;?#25903;持,售卖客户订阅,在使用的过程中,如果出现了任何问题,能第一时间接受 Rancher 的?#38469;?#25903;持。

    梁胜认为,「边缘」真正的想象力不在于一支温度计或者用了单片机的?#24708;?#22403;圾桶,而是更大的场景:?#21103;?#22914;一个火车站,这种地方不大可能所有的计算都是远程的,万一出点事情,整个系统都会崩溃掉。比如说风一刮把电线刮断了,导致整个车站停止运营,就不太?#20040;?#29702;。这种时候?#25176;?#35201;边缘计算的能力。」

    而需求的涌现必将会为容器市场带来一个不容小觑的机会。

    最新文章

    极客公园

    用极客视角,追踪你最不可错过的科技圈。

    极客之选

    新?#30465;?#26377;趣的硬件产品,第一时间为你呈现。

    顶楼

    关注前沿科技,发表最具科技的商业洞见。

    黑龙江体育彩票官网
  • <dl id="gkssh"><menu id="gkssh"></menu></dl><menuitem id="gkssh"></menuitem>
  • <optgroup id="gkssh"><address id="gkssh"></address></optgroup>
  • <optgroup id="gkssh"><thead id="gkssh"></thead></optgroup>
  • <dl id="gkssh"><menu id="gkssh"></menu></dl><menuitem id="gkssh"></menuitem>
  • <optgroup id="gkssh"><address id="gkssh"></address></optgroup>
  • <optgroup id="gkssh"><thead id="gkssh"></thead></optgroup>