本内容是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 组件








对比分析



特性RKE1K3SRKE2
安装方式复杂简单简单
容器运行时Dockercontainerd(可选 Docker)containerd
数据库etcdSQLite / etcd / MySQLetcd
默认 CNICanalFlannelCanal
架构组件运行在 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 生产环境,专注 安全与合规

好文收藏
38 声望6 粉丝

好文收集