Kubernetes(K8s)被描述为一个“便携式、可扩展的管理容器化负载和服务的开源平台,它可以方便的使用声明式配置和自动化。它有一个很大而且快速发展的生态系统。Kubernetes服务、支持和工具随处可见。2014年谷歌开源了Kubernetes项目”。

然而,当Rancher实验室首席执行官梁胜解释说“现有Kubernetes版本往往是内存密集型和对于边缘计算环境过于复杂”。因此,公司开发并推出了K3s,一个轻量级Kubernetes版本,旨在为开发者和运营商寻找一种可以在资源受限常见硬件平台(x86、arm64-v8a、armeabi-v7a)运行Kubernetes的方法,而不是云上运行。
image

Rancher实验室设法减少Kubernetes资源占用,并主要通过以下四个主要步骤来更好的适应入门级硬件:

  • 删除旧的、非必须的代码:K3s不包括任何默认禁用的Alpha功能或者所有非默认许可控制器,in-tree云提供商和存储驱动程序也被默认禁用,但允许用户添加任何他们需要的驱动程序。
  • 整合正在运行进程的打包:为了节省RAM,通常在Kubernetes管理服务器上运行的多个进程合并为单个进程,包括的kubelet、kubeproxy和flannel代理进程。
  • 使用containerd代替Docker作为运行时的容器引擎:切换到containderd,删除libnetwork、swarm、Docker存储驱动程序和其他插件等功能,Rancher大大降低了资源占用。
  • 引入SQLite作为可选的数据库:Rancher在K3s中添加了SQLite作为可选的数据库,作为etcd的一个轻量级的替代方案。

这个使得很容易安装轻量级Kubernetes版本,不到40MB的二进制档案,只需要512MB的RAM来运行服务器,每个节点运行需要75MB的RAM,基于Linux 3.10或更高版本。

一个公司的使用案例是:管理30000多个风力涡轮机的金风科技智能能源,利用K3s使得他们在成千上万的边缘设备上部署Kubernetes集群。

在树莓派上安装K3s的指令可以在Medium找到,基本上如果你已经有一个为板子配置好镜像,你所要做的是运行:

curl -sfL https://get.k3s.io | sh -

这将自动根据你的架构平台安装K3s架构(arm64、armhf),更多细节可以访问官方网站K3s github repo.

运行服务器:

sudo k3s server &
sudo k3s kubectl get node

和一个代理:

sudo k3s agent --server https://myserver:6443 --token ${NODE_TOKEN}1

NODE_TOKEN来自服务器的

/var/lib/rancher/k3s/server/node-token

作为“CI/CD for embedded development with an ESP8266, Arduino-cli, Gitlab-ci, Raspberry Pi, and Kubernetes”讨论的一部分,K3s在FOSDEM 2019也有介绍。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐