TT Lab
博客

한국어 English 日本語 中文

开始
博客

博客

在 k3s、RKE2、k0s 中如何选择:资源数字、按场景表格、决策流程

状态:草稿(2026-10-13),基于官方文档与发布信息 + 部分实测。 大小基于 GitHub Release 的文件信息(2026-10-13 查询),需求基于官方文档(2026-10-13 查阅),准备时间为 TT Lab 实验 VM 的实测数据。 尚无在相同条件下测量三个发行版内存使用量的数据(未实测)。 决策流程是基于上述事实作出的作者判断。 编写规则:实测数据作为基础,未测出的标记为“未实测”,文档中未找到的标记为“未确认”。

目录

1. 资源:测了什么,没测什么

我们经常听到“k3s 很轻量”这种说法,但必须区分这指的是哪个数字。二进制文件大小、需要传输的镜像量、文档要求的最低内存以及实际使用的内存,这些全是不同的数字。

下载大小(GitHub Release 文件信息,amd64)

k3s v1.37.1+k3s1 RKE2 v1.37.1+rke2r1 k0s v1.36.4+k0s.1
二进制文件 77.8 MiB 137.1 MiB(tar.gz 格式为 41.1 MiB) 251.1 MiB
二进制包含内容 全部(包含 containerd) 仅监督进程,其余为镜像 全部(包含 etcd)
离线镜像包 185.4 MiB (zst) core 558.8 MiB + canal 227.7 MiB (zst),完整包为 787.1 MiB 402.4 MiB

这是在不下载文件的情况下,仅读取 GitHub API 的 Release 文件信息(大小)得到的值(2026-10-13)。如果只比较二进制文件,k3s 最小,k0s 最大。然而,由于 RKE2 的二进制文件仅进行监督,其余部分作为镜像下载,因此从 离线传输量来看,RKE2 是最重的。

文档中的表述各不相同。docs.k3s.io 和 README 称 k3s 二进制小于 100MB,而 k3s.io 主页则称小于 70MB。实际的 v1.37.1 文件为 77.8 MiB(81.5MB),这与前一种说法相符。RKE2 和 k0s 的文档中没有给出大小数值(未实测/未确认)。

也有在 TT Lab 实验 VM 中亲自查看过的大小。k0s 二进制文件为 251MB(实测,2026-08,与上述 Release 信息大小相同),RKE2 v1.36.4 安装脚本解压后的安装产物为 128M(实测)。k3s 在实验中未单独记录大小(未实测)。

文档要求的最低规格(基于官方文档,未实测)

k3s RKE2 k0s
服务器(控制器) 2核 · 2GB 2核 · 4GB(推荐 4核 · 8GB) 1 vCPU · 1GB
代理(工作节点) 1核 · 512MB 未与服务器分开说明 1 vCPU · 0.5GB
单节点二者兼具 — — 1 vCPU · 1GB
磁盘 建议使用 SSD,无具体数值 建议使用 SSD,无具体数值 控制器约 0.5GB,工作节点约 1.3GB,二者合计约使用 1.7GB

以上数值均去掉了工作负载所需的资源。k0s 看起来最小,部分原因也是因为其控制器上没有 kubelet 和运行时。只有在比较相同角色时才是公平的。

只有 k3s 给出了官方测量值。根据 k3s 文档中的资源性能分析(v1.26.5,包含所有打包组件 + Prometheus·Grafana + 示例应用,正常状态下的 95 百分位),在 x86 4核服务器上,挂载一个代理的集群中,服务器为 1,428M(SQLite)·1,450M(etcd),代理为 275M。由于这是在加载了监控工具的条件下测得的,因此不能将其理解为“仅 k3s 的内存”。RKE2 虽有节点大小指南(2核·4GB 服务器最多支持 225 个代理,基于 v1.27.4),但没有空闲使用量数据,k0s 也没有测量值。

实测:准备时间

k3s k0s RKE2
从创建 VM 到节点变为 Ready 82秒(关闭 Traefik) 约 150秒 无记录(未实测)
安装脚本 → 节点 Ready 安装 8秒 · Ready 11秒(v1.35.8) 无记录 无记录

这是 TT Lab 的 VM 实验准备时间。由于前一行包含了 VM 启动和从互联网下载的时间,与其说是发行版本身的速度,不如说是“直到打开一个实验”时的体感时间。k0s 是使用 etcd 的架构, --enable-worker 其条件与通过 SQLite 启动的 k3s 不尽相同。

如何在相同条件下测量三个发行版

目前还没有在相同条件下对内存和磁盘进行比较的实测。若要进行测量,需要在三台相同大小的 VM 上分别以默认值安装这三个发行版,并在空闲状态下多次测量服务 cgroup 的内存和磁盘使用量,然后取中位数。由于此时必须重新下载二进制文件和镜像(如上表大小),我们计划在下一版本中将其更改为实测数据。

2. 按场景分类查看

场景 优先查看 原因
边缘·物联网·ARM 板,单节点 k3s 二进制最小,代理最低 512MB,使用 SQLite 启动而无需 etcd
开发 PC、CI 的用完即弃集群 k3s 安装后立即可用,包含 Ingress、LB 和存储
受监管行业(公共·金融)、审计合规 RKE2 profile: cis, FIPS 140-2 构建,SELinux 策略
从一开始就使用 etcd,形态类似于 kubeadm RKE2 由于是静态 Pod,kubeadm 的经验完全通用
通过单个二进制文件运行,自行选择配置 k0s 默认情况下为空,且控制器与工作负载分离
通过单个配置文件管理多个主机 k0s k0sctl 通过 SSH 安装并加入节点,autopilot 负责升级
使用 Rancher 在一个界面中管理多个集群 k3s 或 RKE2 Rancher 对两者均支持开箱即用的配置与管理
CKS/CKA 学习,原汁原味地学习标准 kubeadm 考试考察的静态 Pod、etcd 备份完全一致

最后一行虽然不是本文的三种发行版,但因为是常见问题所以加入了进来。k3s 的默认存储是 SQLite 且控制平面是一个进程,因此考试中考察的“etcd 备份”和“修改静态 Pod”无法直接套用。

3. 决策流程

위에서부터 묻고, 처음 「예」가 나온 곳에서 멈춘다 새 클러스터를 세운다 ① 규정 준수를 증명해야 하나? FIPS 140 암호 모듈, CIS 벤치마크, 정부·금융 감사 예 RKE2 보안 강화가 한 줄 아니오 ② 노드가 작거나, 빨리 떠야 하나? 엣지·IoT·단일 노드, 개발 PC, CI 의 일회용 클러스터 예 k3s 기본이 다 들어 있다 아니오 ③ 구성을 직접 고르고 싶나? 컨트롤 플레인을 워커와 떼어 두고, CNI·인그레스는 내가 정한다 예 k0s 기본이 비어 있다 아니오 ④ Rancher 로 여러 클러스터를 관리? 한 화면에서 만들고 올리고 지운다 예 k3s · RKE2 무게에 따라 둘 중 하나 아니오 셋 다 맞는다 — 팀이 익숙한 쪽, 또는 시험(CKA)·표준 그대로 배우기가 목적이면 kubeadm 관리 부담을 줄이고 싶으면 관리형(EKS·GKE·AKS) 순서는 「바꾸기 어려운 조건」부터다. 규정은 협상이 안 되고, 하드웨어는 사야 바뀐다.
图:选择 k3s·RKE2·k0s 的决策流程

问题的顺序至关重要。应当从 难以更改的条件 开始询问。合规性无法协商,硬件必须重新购买才能改变。而“想自己挑选配置”只是一种偏好,在 k3s 中也可以通过 --disable 关闭默认组件并加载所需内容来在很大程度上满足需求。

这个流程是作者的总结。如果团队已经习惯了某个发行版,那么该经验可能比上述差异更为重要。

4. 迁移时的难点

例如,如果开发环境使用 k3s,生产环境使用 RKE2,那么相同的清单文件就必须在两个发行版之间切换。此时经常遇到的问题有四个。第 1 个和第 4 个是在实验中亲自经历的,第 2 个和第 3 个是默认值表(第 1 篇第 5 节)中显现的差异。

  1. 网段。 k3s·RKE2 为 10.42/10.43,k0s 为 10.244/10.96。应首先评估是否存在与嵌套环境或公司内网重叠的情况(第 1 篇第 6 节)。
  2. Ingress Class。 k3s 使用 Traefik,RKE2 根据构建版本使用 Traefik 或 ingress-nginx,k0s 则没有。由于每个控制器的注解各不相同,如果让清单文件通过 Gateway API 或将类名作为值接收,则可以降低迁移成本。
  3. Storage Class。 k3s 的 local-path 在 RKE2·k0s 中不存在。如果在清单文件中写死名称,PVC 就会卡在 Pending 状态。
  4. Pod 安全。 在 k3s·k0s 默认情况下可以启动的特权 Pod,在启用了 CIS 档案的 RKE2 中会被拒绝。不过,由于已经运行的 Pod 会继续运行,因此只有在下一次部署时才会暴露出来(第 2 篇第 3 节)。

5. 在 TT Lab 中

TT Lab 的实验服务本身运行在使用 kubeadm 搭建的 Kubernetes(v1.34 系列)之上。并且,在课程的 VM 实验中,会直接搭建 k3s、k0s、RKE2。本系列的所有“实测”均出自该实验 VM。

如果你想亲自手动尝试相同的内容,请查找 TT Lab 的 “Kubernetes 发行版——亲自动手搭建” 课程(在网站的课程列表中搜索“发行版”)。与本文相关的模块如下:

Titi 寄语。 并不是轻量就好总是选 k3s,安全就好总是选 RKE2。先问一句“以后最难改的是什么?”,答案很快就会浮现。此外,在看数字时,请务必确认那是二进制文件大小、最低规格,还是真正测量出来的内存。

参考

所有资料均于 2026-10-13 查阅和查询。

登录后即可点赞

评论

还没有评论。

登录后即可发表评论