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 生产环境 ,专注 安全与合规
相关推荐
日月星辰Ace1 小时前
jwk-set-uri
java·后端
用户108386386801 小时前
95%开发者不知道的调试黑科技:Apipost让WebSocket开发效率翻倍的秘密
前端·后端
疏狂难除1 小时前
基于Rye的Django项目通过Pyinstaller用Github工作流简单打包
后端·python·django
钢板兽1 小时前
Java后端高频面经——JVM、Linux、Git、Docker
java·linux·jvm·git·后端·docker·面试
未完结小说2 小时前
声明式远程调用:OpenFeign 基础教程
后端
MickeyCV2 小时前
《苍穹外卖》SpringBoot后端开发项目重点知识整理(DAY1 to DAY3)
java·spring boot·后端·苍穹外卖
uhakadotcom2 小时前
ClickHouse入门:快速掌握高性能数据分析
后端·面试·github
雷渊2 小时前
深入分析mysql中的binlog和redo log
java·后端·面试
uhakadotcom2 小时前
Pydantic Extra Types:扩展数据类型的强大工具
后端·面试·github
uhakadotcom2 小时前
Spring Fu:让Spring Boot启动提速40%的黑科技
后端·面试·github