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 端口配置
检查点:在高可用配置场景下,配置文件中需要包含哪些关键参数?如何解决常见的配置文件权限问题?
登录后查看全文
热门项目推荐
相关项目推荐
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
LongCat-AudioDiT-1BLongCat-AudioDiT 是一款基于扩散模型的文本转语音(TTS)模型,代表了当前该领域的最高水平(SOTA),它直接在波形潜空间中进行操作。00
jiuwenclawJiuwenClaw 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。Python0248- QQwen3.5-397B-A17BQwen3.5 实现了重大飞跃,整合了多模态学习、架构效率、强化学习规模以及全球可访问性等方面的突破性进展,旨在为开发者和企业赋予前所未有的能力与效率。Jinja00
AtomGit城市坐标计划AtomGit 城市坐标计划开启!让开源有坐标,让城市有星火。致力于与城市合伙人共同构建并长期运营一个健康、活跃的本地开发者生态。01
HivisionIDPhotos⚡️HivisionIDPhotos: a lightweight and efficient AI ID photos tools. 一个轻量级的AI证件照制作算法。Python05
项目优选
收起
deepin linux kernel
C
27
13
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
643
4.19 K
Ascend Extension for PyTorch
Python
478
579
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
934
841
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
386
273
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.52 K
867
暂无简介
Dart
885
211
仓颉编程语言运行时与标准库。
Cangjie
161
922
昇腾LLM分布式训练框架
Python
139
163
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
69
21