RKE2 技术教程:从核心功能到深度配置
2026-03-30 11:09:07作者:胡易黎Nicole
一、核心功能解析
1.1 项目架构图解
RKE2 采用分层架构设计,主要包含以下核心模块:
资源层
- charts/:存储 RKE2 所需的 Helm 图表,用于应用部署与管理
- images/:包含 RKE2 运行所需的容器镜像定义
工具链
- scripts/:提供安装、构建、测试等各类自动化脚本
- package/:包含打包配置与分发相关文件
核心组件
- pkg/:核心功能代码实现,包括认证、引导、控制器等模块
- main.go:应用程序入口文件
测试体系
- tests/:包含单元测试、集成测试和端到端测试用例
1.2 核心服务解析
RKE2 系统由两个关键服务组成:
rke2-server 服务
- 功能:负责管理 Kubernetes 集群控制平面,包括 API Server、etcd、Controller Manager 等核心组件
- 位置:
bundle/lib/systemd/system/rke2-server.service
rke2-agent 服务
- 功能:运行在工作节点,负责容器运行时、网络插件等组件的管理
- 位置:
bundle/lib/systemd/system/rke2-agent.service
服务交互逻辑:
- Server 节点启动后生成集群配置和证书
- Agent 通过 token 向 Server 注册并获取配置
- Server 与 Agent 保持持续通信,实现集群状态同步
检查点:rke2-server 和 rke2-agent 服务分别负责什么功能?它们之间如何交互?
二、快速上手指南
2.1 环境准备
硬件要求
- 最低配置:2 CPU 核心,4GB 内存,20GB 磁盘空间
- 操作系统:Linux 发行版(推荐 Ubuntu 20.04+、CentOS 8+)
获取源码
git clone https://gitcode.com/gh_mirrors/rk/rke2 # 克隆项目仓库
cd rke2 # 进入项目目录
2.2 服务安装与启动
安装 RKE2
sudo ./install.sh # 执行安装脚本
启动服务
sudo systemctl start rke2-server.service # 启动 server 服务
sudo systemctl enable rke2-server.service # 设置开机自启
服务状态查询
systemctl status rke2-server.service # 查看 server 服务状态
journalctl -u rke2-server.service -f # 实时查看 server 服务日志
添加工作节点
- 在 server 节点获取加入命令:
/var/lib/rancher/rke2/bin/kubectl get nodes # 查看节点状态
- 在 agent 节点执行加入命令:
sudo ./install.sh agent --server https://<server-ip>:9345 --token <server-token> # 加入集群
检查点:如何验证 RKE2 server 服务是否正常启动?如何查看服务日志?
三、深度配置详解
3.1 配置文件说明
RKE2 的主配置文件位于 /etc/rancher/rke2/config.yaml,支持 YAML 格式配置。
3.2 常用配置项(按使用频率排序)
| 配置项 | 默认值 | 推荐值 | 适用场景 |
|---|---|---|---|
write-kubeconfig-mode |
"0600" | "0644" | 需要多用户访问 kubeconfig 时 |
node-label |
[] | ["env=prod", "role=worker"] | 为节点添加标签以便调度 |
tls-san |
[] | ["cluster.example.com"] | 需要通过域名访问集群时 |
cni |
"calico" | "calico" | 默认 CNI 插件,也可选择 flannel |
disable |
[] | ["traefik"] | 需要禁用内置组件时 |
etcd-expose-metrics |
false | true | 需要监控 etcd 性能时 |
3.3 实用配置示例场景
场景一:多节点集群配置
server: https://192.168.1.100:9345
token: my-secret-token
node-label:
- "environment=production"
- "node-type=worker"
场景二:自定义网络配置
cni: calico
calico:
vxlanInterface: eth1
mtu: 1450
node-ip: 192.168.1.101
场景三:高可用配置
server: https://192.168.1.100:9345,https://192.168.1.101:9345,https://192.168.1.102:9345
token: my-secret-token
etcd-expose-metrics: true
3.4 常见错误排查
[!TIP] 配置文件权限问题:确保
/etc/rancher/rke2/config.yaml权限设置为 0600,否则会导致服务启动失败解决方案:
sudo chmod 0600 /etc/rancher/rke2/config.yaml
[!TIP] 端口占用问题:RKE2 需要使用 6443、9345 等端口,若被占用会导致启动失败
解决方案:使用
netstat -tulpn检查端口占用情况,关闭占用进程或修改 RKE2 端口配置
检查点:在高可用配置场景下,配置文件中需要包含哪些关键参数?如何解决常见的配置文件权限问题?
登录后查看全文
热门项目推荐
相关项目推荐
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0210
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook0133
MinerUA high-quality tool for convert PDF to Markdown and JSON.一站式开源高质量数据提取工具,将PDF转换成Markdown和JSON格式。Python08
JoyAI-EchoJoyAI-Echo,这是一个独立的、仅用于推理的版本,旨在实现分钟级多镜头音视频生成。它采用了经过蒸馏的DMD生成器、配对的跨模态记忆以及故事级别的一致性。其性能的核心在于,一个跨模态视听记忆库能够在长达五分钟的视频中保持角色外观和语音音色的一致性。同时,一个训练后处理流程将基于记忆的强化学习与分布匹配蒸馏相结合,实现了7.5倍的速度提升,显著增强了视觉质量和对齐效果。00
wgai开箱即用的JAVAAI在线训练识别平台&OCR平台AI合集包含旦不仅限于(车牌识别、安全帽识别、抽烟识别、常用类物识别等) 图片和视频识别,可自主训练任意场景融合了AI图像识别opencv、yolo、ocr、esayAI内核识别;AI智能客服、AI语言模型、 无任何第三方API接口可定制化自主离线化部署并自主化行业化使用避免占用内存、GPU消耗训练与识别分开使用;Java06
tiny-universe《大模型白盒子构建指南》:一个全手搓的Tiny-UniverseJupyter Notebook03
项目优选
收起
deepin linux kernel
C
32
16
暂无描述
Dockerfile
772
5.07 K
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
869
2 K
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
468
461
Ascend Extension for PyTorch
Python
749
937
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
695
1.38 K
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.09 K
1.14 K
本仓库是 Flutter SDK 与 Flutter Engine 的 OpenHarmony 适配版本,由 CPF-Flutter 团队维护。开发者可使用熟悉的 Flutter 技术栈开发 OpenHarmony 应用,3.35.7 及以后的适配版本可基于本仓库源码构建支持 OpenHarmony 的 Flutter Engine。
Dart
1.03 K
271
昇腾LLM分布式训练框架
Python
182
226
CANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体,本仓库为其提供可复用的 Skills 模块。
Python
1.03 K
642