本文档风哥主要介绍Rancher集群升级与版本兼容处理实战,包括Rancher数据库升级概念、Rancher数据库版本兼容、Rancher数据库升级策略、Rancher数据库升级准备、Rancher数据库升级要求、Rancher数据库升级规划、Rancher数据库升级Rancher、Rancher数据库升级Kubernetes、Rancher数据库升级RKE2、Rancher数据库验证升级、Rancher数据库回滚升级、Rancher数据库优化升级等内容,风哥教程参考Rancher官方文档升级、版本兼容、RKE2等内容,适合运维人员在学习和测试中使用,如果要应用于生产环境则需要自行确认。
Part01-基础概念与理论知识
1.1 Rancher数据库升级概念
Rancher数据库升级是指将Rancher Server、Kubernetes集群、RKE2等组件升级到新版本。升级可以获得新功能、性能优化和安全修复。升级需要考虑版本兼容性、升级顺序、回滚方案等。更多视频教程www.fgedu.net.cn
- 新功能:获得新功能
- 性能优化:性能优化
- 安全修复:安全修复
- 版本兼容:版本兼容
- 回滚方案:回滚方案
1.2 Rancher数据库版本兼容
Rancher数据库版本兼容是指不同版本之间的兼容性。Rancher Server、Kubernetes、RKE2等组件都有版本兼容要求。升级时需要遵循版本兼容矩阵,避免不兼容的版本组合。学习交流加群风哥微信: itpux-com
- 版本矩阵:版本兼容矩阵
- 小版本升级:小版本升级
- 大版本升级:大版本升级
- 兼容性检查:兼容性检查
- 升级路径:升级路径
1.3 Rancher数据库升级策略
Rancher数据库升级策略是指在升级过程中采用的策略,如滚动升级、蓝绿升级、金丝雀升级等。不同的升级策略有不同的优缺点,需要根据业务需求选择合适的升级策略。学习交流加群风哥QQ113257174
- 滚动升级:逐步升级
- 蓝绿升级:蓝绿升级
- 金丝雀升级:金丝雀升级
- 灰度发布:灰度发布
- 回滚方案:回滚方案
Part02-生产环境规划与建议
2.1 Rancher数据库升级准备
Rancher数据库升级准备:
# 1. Rancher Server准备
– Rancher Server已部署
– Rancher Server可访问
– Rancher Server配置正确
# 2. 升级需求分析
– 确定升级版本
– 确定升级路径
– 确定升级策略
– 确定回滚方案
# 3. 备份准备
– 备份ETCD数据
– 备份集群配置
– 备份应用数据
– 备份Rancher配置
# 4. 资源准备
– CPU资源:>= 4核
– 内存资源:>= 8GB
– 磁盘资源:>= 100GB
– 网络资源:>= 1Gbps
# 5. 时间准备
– 升级时间:>= 2小时
– 回滚时间:>= 1小时
– 测试时间:>= 1小时
– 验证时间:>= 1小时
2.2 Rancher数据库升级要求
Rancher数据库升级要求:
# 版本要求
Rancher Server:>= v2.7.0
Kubernetes:>= v1.23.0
RKE2:>= v1.25.0
# 资源要求
CPU:>= 4核
内存:>= 8GB
磁盘:>= 100GB
网络:>= 1Gbps
# 备份要求
ETCD备份:>= 1份
集群备份:>= 1份
应用备份:>= 1份
Rancher备份:>= 1份
# 兼容性要求
版本兼容:遵循版本兼容矩阵
升级路径:遵循升级路径
兼容性检查:执行兼容性检查
升级测试:执行升级测试
# 回滚要求
回滚方案:制定回滚方案
回滚测试:执行回滚测试
回滚时间:<= 1小时
回滚验证:验证回滚结果
2.3 Rancher数据库升级规划
Rancher数据库升级规划:
# 升级版本规划
当前版本:v2.7.5
目标版本:v2.8.0
升级路径:v2.7.5 -> v2.7.6 -> v2.8.0
# 升级策略规划
升级策略:滚动升级
升级顺序:Rancher Server -> Kubernetes -> RKE2
升级时间:凌晨2点
回滚方案:回滚到v2.7.5
# 备份规划
ETCD备份:升级前备份
集群备份:升级前备份
应用备份:升级前备份
Rancher备份:升级前备份
# 测试规划
测试环境:先在测试环境升级
测试验证:验证升级结果
测试时间:>= 1小时
测试通过:测试通过后再升级生产环境
Part03-生产环境项目实施方案
3.1 Rancher数据库升级Rancher
3.1.1 Rancher数据库通过Helm升级Rancher
[root@rancher ~]# helm list -n cattle-system
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
rancher cattle-system 1 2026-04-10 10:00:00 +0000 UTC deployed rancher-2.7.5 2.7.5
# 备份Rancher配置
[root@rancher ~]# kubectl get configmaps -n cattle-system rancher -o yaml > /Rancher/backup/rancher-config.yaml
[root@rancher ~]# kubectl get secrets -n cattle-system rancher -o yaml > /Rancher/backup/rancher-secret.yaml
# 升级Rancher
[root@rancher ~]# helm upgrade rancher rancher-stable/rancher \
–namespace cattle-system \
–set hostname=rancher.fgedu.net.cn \
–set replicas=3 \
–set ingress.tls.source=rancher \
–set bootstrapPassword=Admin@123456 \
–version 2.8.0
Release “rancher” has been upgraded. Happy Helming!
NAME: rancher
LAST DEPLOYED: Fri Apr 10 10:00:00 2026
NAMESPACE: cattle-system
STATUS: deployed
REVISION: 2
TEST SUITE: None
NOTES:
Rancher has been successfully upgraded to version 2.8.0.
# 查看Rancher升级状态
[root@rancher ~]# helm list -n cattle-system
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
rancher cattle-system 2 2026-04-10 10:00:00 +0000 UTC deployed rancher-2.8.0 2.8.0
# 查看Rancher Pod状态
[root@rancher ~]# kubectl get pods -n cattle-system
NAME READY STATUS RESTARTS AGE
rancher-1234567890-abcde 1/1 Running 0 2m
rancher-1234567890-fghij 1/1 Running 0 2m
rancher-1234567890-klmno 1/1 Running 0 2m
# 验证Rancher版本
[root@rancher ~]# kubectl get deployment rancher -n cattle-system -o jsonpath='{.spec.template.spec.containers[0].image}’
rancher/rancher:v2.8.0
3.2 Rancher数据库升级Kubernetes
3.2.1 Rancher数据库通过RKE2升级Kubernetes
[root@rancher ~]# kubectl version –short
Client Version: v1.28.0
Server Version: v1.28.0
# 查看RKE2版本
[root@rancher ~]# rke2 version
rke2 version v1.28.0+rke2r1
# 备份ETCD数据
[root@rancher ~]# /Rancher/scripts/etcd_backup.sh
ETCD backup completed: /Rancher/backup/etcd/etcd-snapshot-20260410_020000.db.gz
# 升级RKE2
[root@rancher ~]# curl -sfL https://get.rke2.io | sh –
[root@rancher ~]# yum install -y rke2-1.29.0-1.el7.x86_64
# 更新RKE2配置
[root@rancher ~]# cat > /etc/rancher/rke2/config.yaml <
fgedu-worker-2 Ready
3.3 Rancher数据库升级RKE2
3.3.1 Rancher数据库通过Rancher升级RKE2
# 步骤1:登录Rancher管理界面
# 步骤2:点击”集群” – 选择集群 – 点击”升级”
# 步骤3:选择升级版本:v1.29.0
# 步骤4:查看升级计划
# 步骤5:点击”升级”按钮
# 通过CLI升级RKE2
[root@rancher ~]# kubectl get clusters.management.cattle.io fgedu-rke2-cluster -o yaml > /Rancher/backup/cluster-config.yaml
# 更新集群配置
[root@rancher ~]# kubectl patch clusters.management.cattle.io fgedu-rke2-cluster \
–type=’merge’ \
-p='{“spec”:{“rkeConfig”:{“version”:”v1.29.0+rke2r1″}}}’
cluster.management.cattle.io/fgedu-rke2-cluster patched
# 查看集群升级状态
[root@rancher ~]# kubectl get clusters.management.cattle.io fgedu-rke2-cluster
NAME READY VERSION AGE
fgedu-rke2-cluster True v1.29.0 10m
# 查看节点升级状态
[root@rancher ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
fgedu-control-plane-1 Ready control-plane,etcd,master 10m v1.29.0
fgedu-control-plane-2 Ready control-plane,etcd,master 10m v1.29.0
fgedu-control-plane-3 Ready control-plane,etcd,master 10m v1.29.0
fgedu-worker-1 Ready
fgedu-worker-2 Ready
# 查看Pod状态
[root@rancher ~]# kubectl get pods –all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-1234567890-abcde 1/1 Running 0 10m
kube-system etcd-fgedu-control-plane-1 1/1 Running 0 10m
kube-system etcd-fgedu-control-plane-2 1/1 Running 0 10m
kube-system etcd-fgedu-control-plane-3 1/1 Running 0 10m
Part04-生产案例与实战讲解
4.1 Rancher数据库验证升级
4.1.1 Rancher数据库验证升级结果
[root@rancher ~]# kubectl get deployment rancher -n cattle-system -o jsonpath='{.spec.template.spec.containers[0].image}’
rancher/rancher:v2.8.0
# 验证Kubernetes版本
[root@rancher ~]# kubectl version –short
Client Version: v1.28.0
Server Version: v1.29.0
# 验证RKE2版本
[root@rancher ~]# rke2 version
rke2 version v1.29.0+rke2r1
# 验证集群状态
[root@rancher ~]# kubectl get clusters.management.cattle.io fgedu-rke2-cluster
NAME READY VERSION AGE
fgedu-rke2-cluster True v1.29.0 10m
# 验证节点状态
[root@rancher ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
fgedu-control-plane-1 Ready control-plane,etcd,master 10m v1.29.0
fgedu-control-plane-2 Ready control-plane,etcd,master 10m v1.29.0
fgedu-control-plane-3 Ready control-plane,etcd,master 10m v1.29.0
fgedu-worker-1 Ready
fgedu-worker-2 Ready
# 验证Pod状态
[root@rancher ~]# kubectl get pods –all-namespaces | grep -v Running
# 无输出,表示所有Pod都正常运行
# 验证应用功能
[root@rancher ~]# curl -I http://app.fgedu.net.cn/app
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 10 Apr 2026 10:00:00 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Fri, 10 Apr 2026 10:00:00 GMT
Connection: keep-alive
ETag: “6071234567890”
Accept-Ranges: bytes
4.2 Rancher数据库回滚升级
4.2.1 Rancher数据库回滚Rancher
[root@rancher ~]# helm history rancher -n cattle-system
REVISION UPDATED STATUS CHART APP VERSION DESCRIPTION
1 2026-04-10 10:00:00 +0000 UTC superseded rancher-2.7.5 2.7.5 Install complete
2 2026-04-10 10:00:00 +0000 UTC deployed rancher-2.8.0 2.8.0 Upgrade complete
# 回滚Rancher
[root@rancher ~]# helm rollback rancher 1 -n cattle-system
Rollback was a success! Happy Helming!
# 查看Rancher回滚状态
[root@rancher ~]# helm list -n cattle-system
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
rancher cattle-system 3 2026-04-10 10:00:00 +0000 UTC deployed rancher-2.7.5 2.7.5
# 验证Rancher版本
[root@rancher ~]# kubectl get deployment rancher -n cattle-system -o jsonpath='{.spec.template.spec.containers[0].image}’
rancher/rancher:v2.7.5
# 查看Rancher Pod状态
[root@rancher ~]# kubectl get pods -n cattle-system
NAME READY STATUS RESTARTS AGE
rancher-1234567890-abcde 1/1 Running 0 2m
rancher-1234567890-fghij 1/1 Running 0 2m
rancher-1234567890-klmno 1/1 Running 0 2m
4.3 Rancher数据库优化升级
4.3.1 Rancher数据库优化升级性能
[root@rancher ~]# cat > /Rancher/scripts/upgrade_optimized.sh <<'EOF' #!/bin/bash # upgrade_optimized.sh # from:www.itpux.com.qq113257174.wx:itpux-com # web: http://www.fgedu.net.cn BACKUP_DIR="/Rancher/backup" DATE=$(date +%Y%m%d_%H%M%S) # 备份ETCD数据 /Rancher/scripts/etcd_backup.sh # 备份集群配置 /Rancher/scripts/cluster_backup.sh # 备份Rancher配置 kubectl get configmaps -n cattle-system rancher -o yaml > $BACKUP_DIR/rancher-config-$DATE.yaml
kubectl get secrets -n cattle-system rancher -o yaml > $BACKUP_DIR/rancher-secret-$DATE.yaml
# 检查集群健康
kubectl get nodes
kubectl get pods –all-namespaces
# 执行升级
helm upgrade rancher rancher-stable/rancher \
–namespace cattle-system \
–set hostname=rancher.fgedu.net.cn \
–set replicas=3 \
–set ingress.tls.source=rancher \
–set bootstrapPassword=Admin@123456 \
–version 2.8.0
# 等待升级完成
kubectl rollout status deployment/rancher -n cattle-system –timeout=600s
# 验证升级结果
kubectl get pods -n cattle-system
kubectl get deployment rancher -n cattle-system -o jsonpath='{.spec.template.spec.containers[0].image}’
echo “Upgrade completed successfully”
EOF
# 添加执行权限
[root@rancher ~]# chmod +x /Rancher/scripts/upgrade_optimized.sh
# 执行优化后的升级
[root@rancher ~]# /Rancher/scripts/upgrade_optimized.sh
ETCD backup completed: /Rancher/backup/etcd/etcd-snapshot-20260410_020000.db.gz
Cluster backup completed: /Rancher/backup/cluster/cluster-backup-20260410_020000.tar.gz
Release “rancher” has been upgraded. Happy Helming!
Waiting for deployment “rancher” rollout to finish: 1 out of 3 new replicas have been updated…
Waiting for deployment “rancher” rollout to finish: 2 out of 3 new replicas have been updated…
Waiting for deployment “rancher” rollout to finish: 3 out of 3 new replicas have been updated…
deployment “rancher” successfully rolled out
NAME READY STATUS RESTARTS AGE
rancher-1234567890-abcde 1/1 Running 0 2m
rancher-1234567890-fghij 1/1 Running 0 2m
rancher-1234567890-klmno 1/1 Running 0 2m
rancher/rancher:v2.8.0
Upgrade completed successfully
Part05-风哥经验总结与分享
5.1 Rancher数据库升级最佳实践
Rancher数据库升级最佳实践:
- 测试先行:先在测试环境升级
- 版本兼容:遵循版本兼容矩阵
- 备份优先:升级前先备份
- 分步升级:分步升级,逐步验证
- 回滚方案:制定详细的回滚方案
- 文档记录:记录升级过程和结果
- 定期升级:定期升级,保持最新版本
5.2 Rancher数据库升级问题排查
Rancher数据库升级问题排查:
# 问题1:Rancher升级失败
# 现象:Rancher升级时提示错误
# 原因:版本不兼容、配置错误、资源不足
# 解决:
[root@rancher ~]# helm list -n cattle-system
[root@rancher ~]# helm history rancher -n cattle-system
[root@rancher ~]# kubectl describe pod -n cattle-system rancher-1234567890-abcde
[root@rancher ~]# kubectl logs -n cattle-system rancher-1234567890-abcde
# 问题2:Kubernetes升级失败
# 现象:Kubernetes升级时提示错误
# 原因:版本不兼容、配置错误、资源不足
# 解决:
[root@rancher ~]# kubectl version –short
[root@rancher ~]# rke2 version
[root@rancher ~]# systemctl status rke2-server
[root@rancher ~]# journalctl -u rke2-server -n 50
# 问题3:Pod启动失败
# 现象:升级后Pod无法启动
# 原因:API版本不兼容、配置错误、镜像问题
# 解决:
[root@rancher ~]# kubectl get pods –all-namespaces
[root@rancher ~]# kubectl describe pod
[root@rancher ~]# kubectl logs
[root@rancher ~]# kubectl get events –all-namespaces
# 问题4:应用功能异常
# 现象:升级后应用功能异常
# 原因:API变更、配置变更、依赖变更
# 解决:
[root@rancher ~]# kubectl get deployments -n
[root@rancher ~]# kubectl describe deployment
[root@rancher ~]# kubectl logs
[root@rancher ~]# curl -I http://app.fgedu.net.cn/app
5.3 Rancher数据库升级维护
Rancher数据库升级维护:
# 1. 定期检查
– 检查Rancher版本
– 检查Kubernetes版本
– 检查RKE2版本
– 检查集群健康
# 2. 定期升级
– 升级Rancher版本
– 升级Kubernetes版本
– 升级RKE2版本
– 升级应用版本
# 3. 定期备份
– 备份ETCD数据
– 备份集群配置
– 备份应用数据
– 备份Rancher配置
# 4. 定期测试
– 测试升级流程
– 测试回滚流程
– 测试应用功能
– 测试集群性能
# 5. 定期审计
– 审计升级记录
– 审计变更记录
– 审计操作日志
– 审计问题记录
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
