当前位置: 首页 > news >正文

实战指南:在CentOS 7.9上构建高可用RKE2集群并集成Rancher 2.9.1管理平台

1. 环境准备与系统优化

在CentOS 7.9上部署高可用RKE2集群前,系统环境的准备就像盖房子前打地基一样重要。我遇到过不少因为基础环境没配好导致后续部署失败的案例,这里把关键步骤拆解成小白也能跟上的操作流程。

先说说硬件配置要求。管理节点建议至少4核CPU、8GB内存和100GB磁盘空间,工作节点可以适当降低配置。网络方面需要确保所有节点在同一个局域网段,互相能通过主机名和IP访问。我习惯用三台机器做最小化高可用部署,两台管理节点加一台工作节点,这样即使一台管理节点挂了集群还能继续运行。

主机名和IP配置是第一个容易踩坑的地方。很多人在多节点部署时图省事直接用IP操作,后期维护时发现k8s各种证书报错。正确的做法是每台机器都要设置唯一主机名,比如:

hostnamectl set-hostname minio1 # 第一台执行 hostnamectl set-hostname minio2 # 第二台执行 hostnamectl set-hostname minio3 # 第三台执行

接着配置静态IP避免DHCP导致的地址变化问题。编辑网卡配置文件时要注意CentOS 7.9默认使用eth0网卡:

vi /etc/sysconfig/network-scripts/ifcfg-eth0

内容模板参考(以minio1为例):

TYPE="Ethernet" BOOTPROTO="none" DEFROUTE="yes" IPADDR="10.2.64.91" PREFIX="24" GATEWAY="10.2.64.1" DNS1="8.8.8.8" ONBOOT="yes"

系统优化部分有几个重点必须做:

  1. 关闭防火墙和SELinux:k8s需要大量端口通信,生产环境可以用更精细的规则,但测试环境直接关闭更方便
  2. 时间同步:集群对时间敏感,ntpdate和chrony双保险
  3. 内核升级:CentOS 7.9默认内核(3.10)对k8s支持不好,建议升级到5.4以上长期支持版

内核升级的具体操作(使用阿里云镜像加速):

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org yum -y install https://mirrors.aliyun.com/elrepo/elrepo-release-7.el7.elrepo.noarch.rpm yum --enablerepo=elrepo-kernel install kernel-lt -y grub2-set-default 0 && grub2-mkconfig -o /boot/grub2/grub.cfg reboot

2. RKE2集群部署实战

RKE2是Rancher开发的轻量级Kubernetes发行版,相比kubeadm部署更简单,内置了容器运行时、网络插件等组件。我在生产环境实测发现它的稳定性确实比原生k8s要好,特别适合中小规模集群。

2.1 管理节点部署

第一台管理节点的部署是关键,这里分享几个避坑技巧。首先创建配置文件时,token建议用复杂字符串,我遇到过被暴力破解的情况:

mkdir -p /etc/rancher/rke2/ cat > /etc/rancher/rke2/config.yaml <<EOF token: your_secure_token_here node-name: minio1 tls-san: - 10.2.64.91 - minio1 system-default-registry: "registry.cn-hangzhou.aliyuncs.com" kube-proxy-arg: - "proxy-mode=ipvs" - "ipvs-strict-arp=true" EOF

国内用户一定要设置system-default-registry参数,否则拉取镜像会非常慢甚至失败。安装时使用国内镜像源加速:

curl -sfL https://rancher-mirror.rancher.cn/rke2/install.sh | \ INSTALL_RKE2_MIRROR=cn \ INSTALL_RKE2_METHOD=tar sh -

启动服务后别急着操作,等2-3分钟让组件初始化完成。检查状态的正确姿势:

systemctl enable --now rke2-server journalctl -u rke2-server -f # 实时查看日志

2.2 高可用配置

单管理节点部署太简单,生产环境至少要三个管理节点。第二、第三台节点的配置要注意server参数指向第一台的IP:

server: https://10.2.64.91:9345 token: your_secure_token_here # 必须与第一台相同 node-name: minio2 tls-san: 10.2.64.91

加入集群后验证高可用性有个小技巧:随便一个节点执行kubectl get nodes -w,然后重启当前主管理节点,观察kubectl连接是否自动切换到其他节点。

2.3 工作节点加入

工作节点要安装rke2-agent而不是server,config.yaml配置示例:

server: https://10.2.64.91:9345 token: your_secure_token_here node-name: worker1 system-default-registry: "registry.cn-hangzhou.aliyuncs.com"

安装命令与server节点略有不同:

curl -sfL https://rancher-mirror.rancher.cn/rke2/install.sh | \ INSTALL_RKE2_MIRROR=cn \ INSTALL_RKE2_TYPE="agent" \ INSTALL_RKE2_METHOD=tar sh -

3. Rancher 2.9.1集成指南

Rancher是k8s的"管理驾驶舱",2.9.1版本对国内用户特别友好,内置了很多优化。不过安装过程比RKE2复杂些,需要先部署cert-manager处理证书。

3.1 Helm工具准备

Helm是k8s的包管理工具,相当于Linux的yum。安装时注意版本兼容性:

wget https://mirrors.aliyun.com/helm/v3.16.1/helm-v3.16.1-linux-amd64.tar.gz tar zxvf helm-v3.16.1-linux-amd64.tar.gz mv linux-amd64/helm /usr/local/bin/ helm version # 验证安装

3.2 cert-manager部署

证书管理是Rancher安装最容易出错的环节。使用国内镜像源的完整命令:

helm repo add jetstack https://charts.jetstack.io --force-update helm install cert-manager jetstack/cert-manager \ --namespace cert-manager \ --create-namespace \ --version v1.15.0 \ --set installCRDs=true \ --set image.repository=registry.cn-hangzhou.aliyuncs.com/google_containers/cert-manager-controller \ --set webhook.image.repository=registry.cn-hangzhou.aliyuncs.com/google_containers/cert-manager-webhook \ --set cainjector.image.repository=registry.cn-hangzhou.aliyuncs.com/google_containers/cert-manager-cainjector

验证安装成功的正确方法:

kubectl -n cert-manager get pods # 应该看到3个Pod运行 kubectl get crd | grep cert-manager # 应该列出多个CRD

3.3 Rancher核心安装

终于到主角登场了!Rancher的Helm chart配置有很多可调参数,这里给出生产环境验证过的配置:

helm repo add rancher-latest https://releases.rancher.com/server-charts/latest helm install rancher rancher-latest/rancher \ --namespace cattle-system \ --version 2.9.1 \ --create-namespace \ --set hostname=rancher.yourdomain.com \ --set replicas=3 \ --set ingress.tls.source=letsEncrypt \ --set letsEncrypt.email=your@email.com \ --set rancherImage=registry.cn-hangzhou.aliyuncs.com/rancher/rancher \ --set systemDefaultRegistry=registry.cn-hangzhou.aliyuncs.com \ --set bootstrapPassword=Admin@123456

安装完成后别急着访问,先检查所有Pod状态:

kubectl -n cattle-system get deployments kubectl -n cattle-system get pods -o wide

通常需要5-10分钟所有组件才能就绪。遇到镜像拉取失败时,可以手动到节点上执行crictl pull拉取镜像。

4. 集群验证与调优

部署完成不是终点,我见过太多人在这步翻车。分享几个必做的验证项和调优技巧。

4.1 基础功能验证

首先检查节点状态,所有节点应该都是Ready:

kubectl get nodes -o wide

然后创建测试Deployment验证调度功能:

kubectl create deployment nginx --image=nginx:alpine kubectl scale deployment nginx --replicas=3 kubectl get pods -o wide | grep nginx

网络验证最容易被忽视,跨节点Pod之间要能互相ping通:

kubectl run test-net --image=alpine --restart=Never --rm -it -- ping <另一个Pod的IP>

4.2 性能调优参数

RKE2默认配置比较保守,生产环境建议调整:

  1. kubelet参数:增加镜像拉取并发数
kubelet-arg: - "max-concurrent-downloads=10"
  1. etcd调优:提升大集群性能
etcd-extra-args: - "heartbeat-interval=500" - "election-timeout=5000"
  1. 控制平面资源预留:避免系统进程饿死
kube-controller-manager-arg: - "kube-api-burst=100" - "kube-api-qps=50"

4.3 日常维护技巧

维护RKE2集群有些小窍门:

  • 升级版本时先备份:/var/lib/rancher/rke2/server/cred目录
  • 查看组件日志:journalctl -u rke2-server -f
  • 重置集群:/usr/local/bin/rke2-uninstall.sh
  • 添加节点时如果token丢失,可以在server节点查看:cat /var/lib/rancher/rke2/server/token

Rancher的管理也有讲究:

  • 首次登录后立即修改admin密码
  • 定期备份Rancher的PostgreSQL数据库
  • 使用项目(Project)隔离不同团队资源
  • 开启监控和告警功能
http://www.jsqmd.com/news/649819/

相关文章:

  • 深入Armv8.1-M内核:在BK7259上玩转Cortex-M52的TrustZone和Helium加速实战
  • AutoLisp从入门到放弃(十七):条件与循环的实战应用
  • C#中DataGridView处理大数据量的技巧分享
  • 多模态灰度发布不是“分流量”,而是“分语义”:1套可落地的跨模态偏差检测矩阵(附PyTorch+ONNX双端校验脚本)
  • 手把手教你复现IEEE 2025高光谱图像盲超分算法DBSR(附开源代码与避坑指南)
  • 给Xilinx K7 FPGA做远程固件升级,我是如何用Multiboot实现‘双保险’的?
  • 微博相册高效下载解决方案:三步获取高清图片全集
  • VLC播放器美化终极指南:5款VeLoCity主题打造专属影音空间
  • VisionMaster4.2.0与C#控件开发实战:从入门到精通的完整指南
  • Windows HEIC缩略图终极指南:3步解决iPhone照片预览难题
  • 别再死记硬背AR模型公式了!用Python实战AR(1)和AR(2)模型,5分钟搞懂平稳性判断
  • 有实力的蓄电池安全阀公司探讨,电瓶安全阀先进性怎么样揭秘 - 工业设备
  • Graphormer效果展示:催化剂吸附能预测与DFT计算结果的误差分布图
  • RePKG:Wallpaper Engine资源提取与转换的终极指南
  • Python FastAPI 项目性能调优
  • Zynq实战:5分钟搞懂AXI4-Lite总线的读写操作(附Vivado源码解析)
  • 2026年性价比高的宣传画册专业设计团队、印刷厂商、服务商家汇总 - mypinpai
  • 通达信股票历史数据获取与导出全流程指南
  • LayerDivider终极指南:5步将单张插画转换为可编辑分层PSD
  • 卷积神经网络原理可视化解释:使用Phi-4-mini-reasoning生成学习笔记与教学材料
  • 从findAny到Optional:Java 8 Stream API中优雅处理“可能没有结果”的完整指南
  • 3分钟搞定Windows和Office激活:KMS_VL_ALL_AIO终极指南
  • 华为设备DHCP中继与多网段地址分配实战
  • 别瞎找了!这个AI论文开题报告工具,专治毕业生“不会写、没空写、怕写不好” - 逢君学术-AI论文写作
  • 用Python的scikit-survival库做生存分析:从安装到画出第一张Kaplan-Meier曲线
  • 如何在3分钟内完成炉石传说日常任务:智能脚本终极指南
  • PASCAL VOC2012数据集实战指南:从下载到目标检测应用
  • 3步快速配置:Chrome独立代理的终极指南
  • Python赋能CATIA V5:pycatia革新企业级CAD自动化流程
  • 4N65-ASEMI重新定义电源与驱动的稳定边界