Rancher Labs为边缘应用发布轻量级Kubernetes项目K3s

Rancher Labs推出新的Kubernetes开源项目K3s,这是一个轻量级大小只有40MB,且易于安装的Kubernetes发布版本,专为资源有限和低交互的系统而设计,适用于边缘应用、物联网、持续集成以及ARM等使用场景。 K3s现可用于x86_64、ARMv7和ARM64系统上执行。

K3s最初只是容器解决方案Rio的一个嵌入式组件,Rio需要在Kubernetes上运行,因此Rancher Labs在Rio解决方案中放进了一个完整的Kubernetes集群,但是他们认为Rio占用太多内存,因此开始删除不需要的Kubernetes组件,经过了一段实验探索的阶段,Rancher Labs找到了对Kubernetes真正的需求,因此把K3s从Rio项目中拉出来,成为一个独立的项目,他们提到,之所以能够大幅降低Kubernetes大小,是因为移除Kubernetes老旧以及Alpha测试功能。

K3s被打包成一个40MB的二进制文件,而在这个二进制文件包含了所有运行Kubernetes需要的一切资源,包括容器Runtime,以及iptables、socat、du等重要主机程序,唯一的操作系统相依为Linux核心本身,以及Linux发行版的dev、proc和sysfs挂载。 K3s将Kubernetes的组件捆绑成组合程序,这些程序会以服务器以及代理模型的形式呈现,运行K3s服务器将会启动Kubernetes服务器,并自动地注册本机为代理,而这会创建具有一个节点的Kubernetes集群,当然用户也可以在这个集群中,增加其他节点。

除了核心Kubernetes组件,K3s还加入Containerd、Flannel、CoreDNS、Traefik Ingress控制器以及基于主机链接端口的服务负载均衡器,Rancher Labs提到,利用这些组件,用户可以打造出符合CNCF标准的集群,但不使用这些组件也可以,用户可以依照自己的喜好置换。

虽然最初K3s只专注于Rio上需要的功能,但Rancher Labs希望将其支持范围,扩展到可以完全兼容于Kubernetes集群,因此现在K3s是一个完全认证的Kubernetes发布版本,其内存使用量只有vanilla Kubernetes的四分之一,Rancher Labs提到,Docker单节点Kubernetes 1.13.3集群,使用的内存略超过1GiB,而相等的K3s设置,只使用约260MiB的内存,这还包含了Ingress控制器以及服务负载均衡器。