一文读懂K3s:用于物联网、边缘计算、嵌入式系统等的轻量级 Kubernetes

如果你是一个活跃的科技旅行者,那么可能遇到过这个术语:Kubernetes。

有疑问吗?我来说明一下:简单来说,Kubernetes(K8s)是一个可移植、可扩展的平台,用于管理容器化的工作负载和服务,还可以促进声明式配置和自动化。因为它是完全开源的,并且拥有庞大且快速发展的生态系统以及其工具、服务和支持的广泛可用性,因此且具有巨大优势。

虽然 Kubernetes 在云中管理工作负载方面仍然备受关注,但它无法应对低要求机器中的旋转集群。

为了解决这个问题,轻量级 Kubernetes(K3s)应运而生。通过本文,我们将了解 K3s 上的所有内容。现在开始!

1 K3s的历史

K3s 是 Kubernetes 的开源轻量级发行版,以小于 100 MB(约 40 MB)的二进制文件设计和打包,内存消耗为 250 MB。于2019年2月26日正式发布。

Rancher 将 K3s 作为 Rio 的嵌入式组件启动,是他们的实验项目之一。但当他们看到边缘对 Kubernetes 的实际需求以及对 K3s 本身的需求时,他们决定将其从 Rio 中分离出来,作为一个单独的开源项目发布。

K3s 真的很高效,性能也很高,尤其在物联网、边缘、ARM、CI、开发和嵌入式系统用例方面取得了成功。

最好的部分是什么呢?我们可以将 K3s 安装为单节点和多节点集群,并且仍是一个完全一致的、生产就绪的 Kubernetes 发行版。

现在你已经对 K3s 有了一个高层次的了解,接下来让我们深入了解一下架构。

2 K3s架构

本节,我们将简要讨论 K3s 的架构。首先,这是K3s的外观图:

图片

此图显示了 K3s 架构由服务器和代理组成,类似于 K8s 中可用的主节点和工作节点。我们可以看到:服务器和代理通过一个名为 Tunnel Proxy 的代理连接,通信始终由设置隧道的代理完成。服务器和代理之间会发生大量通信,但会通过隧道设置适当的端口和连接。

通常,Kube Proxy 使用多个端口来连接 API-Server。但是在 K3s 的情况下,Kube Proxy 是在 Tunnel Proxy 的帮助下与 API-Server 连接。隧道代理创建单向连接以连接到 API 服务器。一旦链接建立,便会建立双向通信,通过使用单个端口进行通信来建立更安全的连接。

K3s中已经应用了 SQLite 的新增功能,它是 K8s 中 ETCD 的替代品。K3s 旨在通过允许使用 SQLite 独占运行单节点集群来消除对 ETCD 的依赖。在多节点集群的情况下,K3s 使用外部数据库。

我们可以看到,代理中有 Flannel,作为 K3s 中集群网络的容器网络接口(CNI)。在图中,我们可以看到 Flannel 与 Kubelet 建立了联系,Kubelet 又与 Containerd 建立了联系。Containerd 也是一个新增功能,它与 K3s 中的多个 pod 建立连接。

K3s 的组件及其功能与 K8s 有点相似,除了 SQLite、Tunnel Proxy 和 Flannel 都是新添加的。在 K3s 中,所有组件作为一个进程一起运行,这使得它非常轻量级。与 K8s 相比,K8s 的每个组件都作为一个进程运行。

由于服务器和代理都可以在单个节点中作为单个进程运行,因此我们可以在约 90 秒内启动一个单节点集群,这都要归功于 K3s 的架构。

3 K3s 与 Kubernetes

虽然 K8s 和 K3s 提供的功能相似,但它们的差异也很大。

对于初学者,我们看到遗留和非默认功能以及尚未准备好进入黄金时段的 alpha 功能被删除;Rancher 甚至表示他们已经删除了近 30 亿行代码。

K3s 中没有树内云提供商,因为一些组织可以根据他们的要求使用单个或多个云提供商,而且由于许多组织在本地使用 Kubernetes,他们也不再使用云提供商。此外,在边缘,团队可能不需要云提供商。即便如此,在有需要的情况下,你也可以将它们作为附加组件安装。

我们还可以看到树内存储驱动程序也被排除。最后,K3s 摆脱了对 Docker 的依赖。但如果需要,我们仍然可以选择使用 Docker。

那么增加了什么?首先,简化安装。现在,我们不必为集群启动等待很长时间。相反,我们可以在约 90 秒内启动并运行一个单节点集群。

有了K3s,你还能够使用 SQLite3 作为 Kubernetes 的数据库。K3s 将为我们完成所有 TLS 管理。此外,我们还获得了自动清单和 Helm 图表管理,这使得我们能将 YAML 文件放入目录中,K3s 将扫描该目录并自动拾取该文件,通过 Kubernetes 进程来运行,这对边缘非常有益。最后,我们还可以看到:K3s添加了 Containerd(作为 Docker 的替代品)、CoreDNS 和 Flannel。

4 K3s优势

至此,你已经熟悉了 K8s 和 K3s 之间的区别。现在,让我们来看看 K3s 有哪些优势:

  • 快速安装:K3s 的主要优势之一是安装简单。你可以在约 90 秒内安装好 K3s 的服务器。
  • 小体积:K3s 的体积小于 100 MB,因此可以灵活地运行在任何要求不高的设备上(例如,物联网和边缘用例)。
  • 自动清单:K3s 还提供了自动清单的巨大优势,这对于边缘计算特别有利。
  • 添加和删除节点:我们可以通过一行命令轻松地从 K3s 集群中添加和删除节点,快速简单。
  • 简单的集群配置:我们可以轻松地设置单节点或多节点集群,一点都不复杂性。

来源 | mattermost
Edgenesis编译

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

发表回复

登录后才能评论