首页
/ RKE2 技术教程:从核心功能到深度配置

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

服务交互逻辑

  1. Server 节点启动后生成集群配置和证书
  2. Agent 通过 token 向 Server 注册并获取配置
  3. 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 服务日志

添加工作节点

  1. 在 server 节点获取加入命令:
/var/lib/rancher/rke2/bin/kubectl get nodes # 查看节点状态
  1. 在 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 端口配置

检查点:在高可用配置场景下,配置文件中需要包含哪些关键参数?如何解决常见的配置文件权限问题?

登录后查看全文
热门项目推荐
相关项目推荐