本内容是Rancher_China RKE1、K3S、RKE2 三大 Kubernetes 发行版的比较 视频的整理与记录, 过程中有删减。
分享人是来自 Rancher 苏州公司的工程师,主要负责 Rancher 国内社区的运营和运维工作。
分享的主题是 "RKE1、K3S、RKE2,你 pick 哪一个?"
这三个 Kubernetes 发行版都是由 Rancher 开源的,这次分享将主要介绍它们的区别、各自的特点,以及适用的应用场景。
如果大家之前了解过 Rancher,相信都见过这样一个截图:
这个截图展示的是 Rancher UI 创建下游集群的选项,可以选择创建 RKE1、RKE2 或 K3S 集群。这三个发行版对 Rancher 来说非常重要,因此更好地理解它们需要追溯它们的起源。
历史沿革
2014:Rancher 1.0
2014 年 Rancher Labs 成立后,发布的第一款产品是 Rancher 1.0 ,它是以 Docker 为核心的容器管理平台。
当时自研了一套编排引擎 Cattle,非常适合小公司或小规模应用场景。虽然现在 Rancher 1.0 及 Cattle 组件都已停止维护,但仍然有许多用户在使用它。
2017:RKE1(Rancher Kubernetes Engine)
2017 年 12 月,推出了 RKE1 ,它是一个 简化 Kubernetes 部署 的工具,主要功能包括:
- 通过命令行快速部署 Kubernetes 集群
- 提供集群管理功能(升级、备份、恢复)
- 降低 Kubernetes 的学习成本
当时 Kubernetes 逐渐占据主导地位,但安装和管理仍然较为复杂。因此,RKE1 提供了一种 更易用的方式 来部署 Kubernetes,受到了广泛欢迎。
2018:Rancher 2.0
2018 年 4 月,发布了 Rancher 2.0,它是一个多云 Kubernetes 管理平台。与 Rancher 1.0 的 Docker 容器管理不同,Rancher 2.0 仅支持 Kubernetes 作为唯一的编排引擎。
Rancher 2.0 创建的下游集群主要通过 RKE1 部署,但 RKE1 比 Rancher 2.0 早 4 个月发布。Rancher 2.0 经过了至少三次重构,最终选择了最优的方案才发布。
2019:K3S(轻量级 Kubernetes 发行版)
2019 年,推出 K3S ,一个 轻量级 Kubernetes 发行版 ,专为 边缘计算 设计,特点包括:
- 资源占用小 ,适用于 IoT、边缘设备、树莓派 等资源受限环境
- 仅 60MB 的二进制文件(官方文档称 <100MB)
- 2020 年捐献给 CNCF
2020:RKE2(RKE1 的增强版)
2020 年,Kubernetes 逐渐进入成熟期,用户越来越关注 安全与合规 。因此,推出了 RKE2 ,它是 RKE1 的增强版本,特点包括:
- 专注于安全合规,符合企业级应用需求
- 所有组件均符合安全标准,镜像基于最小化构建,提高安全性
- 紧跟上游 Kubernetes 版本
发行版演进关系
可以用一个简单的公式表示:
RKE2 = RKE1 + K3S
RKE2 继承了 RKE1 的 标准 Kubernetes 兼容性 和 K3S 的 易用性与轻量化特性。
三大 Kubernetes 发行版介绍
1️⃣ RKE1
- 全称:Rancher Kubernetes Engine
- 特点 :
- CNCF 认证的标准 Kubernetes 发行版
- 运行在 Docker 容器中
- 适用于 大规模生产环境
- 依赖 Docker 作为容器运行时 ,适用于 已有 Docker 生态的用户
- 架构 :
- 通过 YAML 配置集群
- 通过 SSH 连接主机,使用 Docker 部署 Kubernetes 组件
- 支持 高可用集群
(特定时期历史产物,当时安装K8s很复杂)
2️⃣ K3S
- 特点 :
- 轻量级 Kubernetes 发行版,适用于 边缘计算、IoT、CICD、测试环境
- 二进制文件 <100MB ,仅占用 Kubernetes 一半的内存
- 默认使用 containerd 作为容器运行时
- 2020 年捐献给 CNCF
- 架构 :
- 采用 K3S Server + K3S Agent 架构
- 组件封装在 K3S 二进制文件 中
3️⃣ RKE2
- 特点 :
- RKE1 的增强版 ,专注于 安全与合规
- 符合 Kubernetes 企业级安全标准
- 采用 containerd 作为唯一的容器运行时
- 架构 :
- 控制组件以 静态 Pod 运行,由 kubelet 管理
- 采用 Manifest 机制,可自定义 Kubernetes 组件
对比分析
特性 | RKE1 | K3S | RKE2 |
---|---|---|---|
安装方式 | 复杂 | 简单 | 简单 |
容器运行时 | Docker | containerd(可选 Docker) | containerd |
数据库 | etcd | SQLite / etcd / MySQL | etcd |
默认 CNI | Canal | Flannel | Canal |
架构 | 组件运行在 Docker 容器中 | 组件封装在 K3S 进程中 | 组件以静态 Pod 运行 |
自动升级 | 不支持 | 支持 | 支持 |
Windows 支持 | ❌ | ❌ | ✅(仅 Worker 节点) |
K3s默认内置了etcd和sqlite(如果使用sqlite只能是单节点)
还支持NATS (CNCF下的一个消息队列项目)
适用场景
✅ RKE1:
- 适用于 大规模生产环境
- 适合已有 Docker 生态的企业
✅ K3S:
- 适用于 边缘计算、IoT、CICD、测试环境
- 轻量级 资源受限设备(树莓派、ARM 服务器)
✅ RKE2:
- 适用于 企业级生产环境 ,特别是 对安全合规有严格要求的行业(政府、金融、医疗)
常见问题(QA)
1. Harvester 的底层 Kubernetes 是什么?
最初使用 K3S ,后来改为 RKE2,完全可以用于生产环境。
2. RKE2 在国内如何安装?
由于 GitHub 访问问题,已将相关资源同步到国内,可使用 国内镜像源 进行安装。
3. RKE2 在 OpenEuler / UOS 上是否兼容?
经过测试,RKE2 可在 OpenEuler 和 UOS 上正常运行,适用于生产环境。
总结
- RKE1 适用于 大规模生产环境 ,适合 已有 Docker 生态的用户
- K3S 适用于 轻量级 Kubernetes 部署 ,特别是 边缘计算、IoT 和测试环境
- RKE2 适用于 企业级 Kubernetes 生产环境 ,专注 安全与合规