emmmm
集群的创建和部署越来越流行,这篇对比一下工具k3s和kubedge。k3s已经实践过一些,kubedge没有操作过,询问了一下使用过的同学,做出如下总结(由于我使用的是k3s,所以k3s优点会多说一些hhh):
两个开源工具介绍
k3s 是由 Rancher Labs 于2019年年初推出的一款轻量级 Kubernetes 发行版,满足在边缘计算环境中运行在 x86、ARM64 和 ARMv7 处理器上的小型、易于管理的 Kubernetes 集群日益增长的需求
k3s 除了在边缘计算领域的应用外,在研发侧的表现也十分出色。我们可以快速在本地拉起一个轻量级的 k8s 集群
KubeEdge 是华为捐献给 CNCF 的第一个开源项目,提供云边协同能力的开放式边缘计算平台。KubeEdge 的名字来源于 Kube + Edge,顾名思义就是依托 Kubernetes 的容器编排和调度能力
K3S 是 Rancher 开源的一个自己裁剪的 Kubernetes 发行版,K3S 名字来源于 K8s – 5,这里的“5”指的是 K3S 比 Kubernetes 更轻量使得它能更好地适配 CI(持续集成),ARM,边缘技术,物联网和测试这 5 个场景
关于k8s
k8s缺点:
- 过程繁琐,kubelet、flannel等组件都要手动安装 K8s 安装部署 - 云+社区 - 腾讯云 (tencent.com)
- 物理机占用资源多,根据使用k3s减少k8s成本 - 简书 (jianshu.com),博主提到1G内存的worker node已经完全低于推荐配置,如果在上面部署worker node直接的内存占用就要300M左右,剩余的内存空间并不多,必须要使用交换分区。etcd节点之前也用过1G的内存,但经常会由于大量使用交换分区导致性能问题,最后集群崩溃,所以无论如何也需要使用2G的内存才行
k3s优势
k3s优点:
- 安装过程极大简化,能
通过下面一句指令就能安装,自带kubectl工具,省去了kubelet、flanne等繁琐的安装详情见我的帖子k3d | 环境配置+kubectl配置 - 简书 (jianshu.com)
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -
- 物理机占用的资源减少,还是这篇帖子使用k3s减少k8s成本 - 简书 (jianshu.com)指出,根据博主的亲自尝试,k3s的server大概只占用200M左右的内存,agent只占用几十兆内存,非常的节约。k3s也可以完全使用kubectl来进行管理,配置文件和k8s保持一致,非常方便
k3s缺点:
相比Kubedge,对边缘节点的资源更高,参考这篇KubeEdge 向左,K3S 向右 - 知乎 (zhihu.com)内有运行应用时两者CPU、内存的消耗曲线
kubedge缺点
kubedge优点:
极大减轻边缘节点的工作量,不需要配置k8s/k3s平面
kubedge缺点:
- 安装过程复杂,master节点需要配置原生的k8s+自主研发的cloudcore,edge节点不需要安装k8s,配置edgecore,看下这篇的长度就知道配置过程有多艰辛【最新版kubeEdge保姆级安装配置教程】kubeEdge v1.7使用keadm安装(半手动安装)_大宇醒言-CSDN博客_kubeedge 安装
安装各种组件的时候需要指定amd还是arm版本,如果是用在树莓派上要注意使用arm对应的安装包 - 边缘节点没法知道全局的情况,比如
kubectl get node
这类命令(没有实际尝试,问了使用过的一些同学),但是k3s支持,经过简单配置即可从agent节点看到全局的情况
网友评论