RKE1、K3S、RKE2 三大 Kubernetes 发行版的比较

本内容是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 生产环境 ,专注 安全与合规
相关推荐
唐叔在学习10 分钟前
就算没有服务器,我照样能够同步数据
后端·python·程序员
用户68545375977691 小时前
同步成本换并行度:多线程、协程、分片、MapReduce 怎么选才不踩坑
后端
javaTodo1 小时前
Claude Code 记忆机制详解:从 CLAUDE.md 到 Auto Memory,六层体系全拆解
后端
LSTM971 小时前
使用 C# 和 Spire.PDF 从 HTML 模板生成 PDF 的实用指南
后端
JaguarJack2 小时前
为什么 PHP 闭包要加 static?
后端·php·服务端
BingoGo2 小时前
为什么 PHP 闭包要加 static?
后端
是糖糖啊2 小时前
OpenClaw 从零到一实战指南(飞书接入)
前端·人工智能·后端
百度Geek说2 小时前
基于Spark的配置化离线反作弊系统
后端
Java编程爱好者3 小时前
虚拟线程深度解析:轻量并发编程的未来趋势
后端