RKE(Rancher Kubernetes Engine) 是什么?

RKE(Rancher Kubernetes Engine) 是什么?

核心定义

RKE 是一个 轻量级、高可用、100% 开源Kubernetes 发行版和安装工具 。它的全称是 Rancher Kubernetes Engine(在 RKE2 出现后,原 RKE 有时也被称为 RKE1)。

它的核心目标是用一种 简单、快速、可重复 的方式,在 裸金属服务器、虚拟机、公有云或私有云实例 上部署和管理生产级的 Kubernetes 集群。


核心特性与设计理念

  1. 极简与声明式

    • 整个集群的配置(包括所有组件版本、网络插件、插件配置等)都定义在 一个单一的 YAML 配置文件 (通常是 cluster.yml)中。
    • 通过一条命令 rke up,工具会根据这个文件自动完成所有节点的配置和集群的引导。修改配置后,再次运行 rke up 即可完成集群的升级或变更。这使得集群部署和版本控制变得非常容易。
  2. 无侵入性

    • RKE 本身不依赖 Docker。它在目标节点上通过 容器化 的方式运行所有 Kubernetes 组件(如 kube-apiserver, kube-controller-manager, kube-scheduler, etcd 等)。这意味着你只需要在节点上安装一个容器运行时(如 Docker, containerd),RKE 会处理好一切。
    • 它不会对主机操作系统做大量修改,保持了主机的"清洁"。
  3. 高可用内置

    • RKE 原生支持部署 高可用(HA) 的控制平面(Control Plane)和 etcd 集群。
    • 你可以轻松地在配置文件中指定多个控制平面节点和 etcd 节点。RKE 会自动配置负载均衡器(你需要前置配置负载均衡器,如 HAProxy、Nginx 或云负载均衡器)和节点间的证书,构建出高可用的集群架构。
  4. 灵活性

    • 运行时支持 :早期主要支持 Docker,现在也完全支持 containerd 作为容器运行时。
    • 网络插件 :支持多种 CNI 网络插件,如 FlannelCalicoCanal (Calico + Flannel)、Weave 等,可以在配置文件中轻松指定。
    • Ingress 控制器 :默认集成并自动部署 Nginx Ingress Controller
    • 存储插件:支持配置多种 CSI 驱动或云提供商存储。

工作原理与部署流程

  1. 准备节点

    • 准备若干台 Linux 主机(推荐 Ubuntu, CentOS, RHEL 等)。
    • 在每个节点上安装支持的容器运行时(如 Docker 或 containerd)。
    • 确保节点间 SSH 互通(RKE 通过 SSH 连接到各个节点执行命令)。
    • 创建一个具有 sudo 权限或 root 的 SSH 密钥,并将公钥分发到所有节点。
  2. 编写集群配置文件 (cluster.yml)

    • 这是最关键的步骤。文件内容示例结构如下:

      yaml 复制代码
      nodes:
        - address: 192.168.1.10
          user: ubuntu
          role: [controlplane, worker, etcd] # 单节点角色
          ssh_key_path: ~/.ssh/id_rsa
        - address: 192.168.1.11
          user: ubuntu
          role: [controlplane, etcd] # 控制平面+etcd节点
        - address: 192.168.1.12
          user: ubuntu
          role: [worker] # 纯工作节点
      services:
        etcd:
          snapshot: true
          creation: 6h
          retention: 24h
        kube-api:
          service_cluster_ip_range: 10.43.0.0/16
        kube-controller:
          cluster_cidr: 10.42.0.0/16
          service_cluster_ip_range: 10.43.0.0/16
        kubelet:
          cluster_domain: cluster.local
      network:
        plugin: canal # 指定网络插件
        options:
          flannel_backend_type: "vxlan"
      ingress:
        provider: nginx
        node_selector:
          app: ingress
      addons: | # 可以定义集群部署后立即安装的 Kubernetes 清单(如 Dashboard, 监控等)
        ---
        apiVersion: v1
        kind: Namespace
        metadata:
          name: my-addons
  3. 部署集群

    • 在拥有配置文件和 RKE CLI 的机器上,执行:

      bash 复制代码
      rke up --config cluster.yml
    • RKE 会依次执行以下操作:

      • 通过 SSH 连接到所有节点。
      • 拉取所需的 Kubernetes 组件镜像。
      • 在容器中启动 etcd 集群。
      • 在容器中启动控制平面组件(API Server, Controller Manager, Scheduler)。
      • 部署配置的网络插件、DNS(CoreDNS)、Ingress Controller 等插件。
      • 生成一个 kube_config_cluster.yml 文件,这是集群的 kubeconfig ,用于使用 kubectl 管理集群。
  4. 管理集群

    • 使用 kubectl(通过上一步生成的 kubeconfig)与集群交互。
    • 升级集群:修改 cluster.yml 中的 Kubernetes 版本,再次运行 rke up
    • 备份/恢复 etcd:RKE 提供了 rke etcd snapshot-saverke etcd snapshot-restore 命令,是灾难恢复的关键。
    • 销毁集群:运行 rke remove --config cluster.yml(⚠️ 危险操作)。

优点

  • 快速部署:简化了复杂的手动或脚本化部署过程。
  • 基础设施即代码:集群状态完全由配置文件定义,易于版本控制和复制。
  • 生产就绪:内置的高可用、备份恢复机制,使其适合生产环境。
  • 社区与生态:作为 Rancher 生态系统的一部分,有强大的社区支持和丰富的文档。
  • 纯开源:没有厂商锁定,可以独立于 Rancher Manager 使用。

缺点与注意事项

  • 学习曲线:需要理解 YAML 配置和 Kubernetes 核心概念。
  • 节点要求:对节点 SSH 和权限有要求,在某些严格的安全策略下可能需要调整。
  • 集群生命周期管理:虽然部署和升级简单,但节点操作系统、内核、容器运行时的维护仍需自行负责。
  • 与 RKE2 的区分 :需要理解 RKE 和 RKE2(下一代)的区别(见下文)。

RKE 与 RKE2、K3s 的关系

这是 Rancher 提供的三大 Kubernetes 发行版,定位不同:

特性 RKE (RKE1) RKE2 K3s
定位 传统、稳定的生产集群 安全、合规的边缘与数据中心 极轻量的边缘与 IoT
核心特点 通过容器运行 K8s 组件 打包为系统守护进程,默认使用 containerd 单个二进制文件,极度轻量
安全 传统安全模型 重点强化:默认开启 SELinux,PSP, CIS 基准扫描 轻量级,安全配置较简单
发布节奏 维护模式,更新较少 与上游 K8s 版本紧密同步 快速迭代,功能前沿
适用场景 已有 RKE1 集群,或依赖特定旧版本 新生产部署,尤其是对安全合规要求高的政府、金融领域 资源受限的边缘计算、开发测试、IoT

简单总结

  • 新项目,尤其是对安全有高要求,建议从 RKE2 开始评估。
  • 如果追求极致轻量和简单,资源环境有限,选 K3s
  • RKE 目前主要用于维护已有的 RKE1 集群。

总结

RKE 是一个强大且成熟的 Kubernetes 安装器 ,它通过 声明式配置全容器化部署 的理念,将复杂的 K8s 集群部署流程标准化、自动化。它是构建生产级、高可用 Kubernetes 基础设施的优秀工具,尤其适合在自有基础设施上快速搭建和管理集群。随着 RKE2 的成熟,对于新项目,建议同时评估 RKE2,以获取更强的安全特性和更紧密的上游同步。

相关推荐
苏渡苇5 小时前
Docker 网络完全指南
网络·docker·容器·docker容器·容器通信
风向决定发型丶6 小时前
K8S CPU绑核详解
云原生·容器·kubernetes
KubeSphere 云原生6 小时前
KubeSphere Skills 正式发布:让 OpenClaw 更懂 KubeSphere
云原生
斯普信云原生组7 小时前
Docker 开源软件应急处理方案及操作手册——镜像管理与构建故障
docker·容器·eureka
阿里云云原生8 小时前
Nacos 3.2 Skill Registry 正式版发布,让 AI 能力在企业更安全、可控落地
云原生
阿里云云原生9 小时前
阿里云可观测 2026 年 3 月产品动态
云原生
阿里云云原生9 小时前
AI 开源库遭投毒事件的启示,和阿里云 AI 网关的回答
云原生
阿里云云原生9 小时前
202603 HiClaw Monthly · 脱壳月报第 1 期
云原生
MichealChen0105089 小时前
Influxdb-cluster使用docker部署
运维·docker·容器
斯普信云原生组11 小时前
Docker 开源软件应急处理方案及操作手册——安全漏洞与权限问题
运维·docker·容器