1. 首页 > Rancher教程 > 正文

Rancher教程FG010-Rancher Fleet多集群应用分发与升级实战

本文档风哥主要介绍Rancher Fleet多集群应用分发与升级实战,包括Rancher数据库Fleet概念、Rancher数据库Fleet架构、Rancher数据库Bundle概念、Rancher数据库Fleet准备、Rancher数据库Fleet要求、Rancher数据库Fleet规划、Rancher数据库安装Fleet、Rancher数据库配置Fleet、Rancher数据库分发应用、Rancher数据库升级应用、Rancher数据库回滚应用、Rancher数据库监控Fleet等内容,风哥教程参考Rancher官方文档Fleet、多集群管理、应用分发等内容,适合运维人员在学习和测试中使用,如果要应用于生产环境则需要自行确认。

Part01-基础概念与理论知识

1.1 Rancher数据库Fleet概念

Rancher数据库Fleet是Rancher提供的多集群应用分发和管理工具。Fleet可以同时管理多个Kubernetes集群,实现应用的统一部署、升级和回滚。Fleet使用GitOps模式,通过Git仓库管理应用配置,实现应用的自动化部署和版本控制。Fleet支持多种部署策略,如滚动更新、蓝绿部署等。更多视频教程www.fgedu.net.cn

Rancher数据库Fleet特点:

  • 多集群管理:同时管理多个集群
  • 统一部署:统一部署应用
  • GitOps模式:通过Git管理配置
  • 版本控制:支持应用版本控制
  • 部署策略:支持多种部署策略

1.2 Rancher数据库Fleet架构

Rancher数据库Fleet架构:

# Rancher数据库Fleet架构
┌─────────────────────────────────────────────────────────┐
│ Rancher Server │
│ 192.168.1.100 │
│ │
│ ┌───────────────────────────────────────────────┐ │
│ │ Fleet Manager │ │
│ │ – Git Repository │ │
│ │ – Bundle Management │ │
│ │ – Deployment Strategy │ │
│ │ – Version Control │ │
│ └───────────────────────────────────────────────┘ │
└────────────────────┬────────────────────────────────────┘

│ Fleet Agent

┌─────────────────────────────────────────────────────────┐
│ Managed Clusters │
│ │
│ ┌───────────────────────────────────────────────┐ │
│ │ Cluster 1 (EKS) │ │
│ │ – Fleet Agent │ │
│ │ – Bundle 1 │ │
│ │ – Bundle 2 │ │
│ └───────────────────────────────────────────────┘ │
│ │
│ ┌───────────────────────────────────────────────┐ │
│ │ Cluster 2 (ACK) │ │
│ │ – Fleet Agent │ │
│ │ – Bundle 1 │ │
│ │ – Bundle 2 │ │
│ └───────────────────────────────────────────────┘ │
│ │
│ ┌───────────────────────────────────────────────┐ │
│ │ Cluster 3 (RKE2) │ │
│ │ – Fleet Agent │ │
│ │ – Bundle 1 │ │
│ │ – Bundle 2 │ │
│ └───────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘

# 架构说明
1. Rancher Server:提供Fleet管理界面
2. Fleet Manager:管理多集群应用分发
3. Fleet Agent:部署在每个集群中
4. Managed Clusters:被管理的集群
5. Bundle:应用包,包含应用配置

1.3 Rancher数据库Bundle概念

Rancher数据库Bundle是Fleet中用于分发应用的单元。Bundle包含了一个或多个Helm Chart、Kubernetes资源或自定义资源。Bundle支持版本控制,可以轻松升级和回滚应用。Bundle可以配置部署目标集群、部署策略、依赖关系等。学习交流加群风哥微信: itpux-com

Rancher数据库Bundle特点:

  • 应用包:包含应用配置
  • 版本控制:支持版本控制
  • 部署目标:配置目标集群
  • 部署策略:配置部署策略
  • 依赖管理:管理应用依赖
风哥提示:Rancher Fleet可以简化多集群应用分发,提高部署效率。建议使用GitOps模式,通过Git仓库管理应用配置。学习交流加群风哥QQ113257174

Part02-生产环境规划与建议

2.1 Rancher数据库Fleet准备

Rancher数据库Fleet准备:

# Rancher数据库Fleet准备清单

# 1. Rancher Server准备
– Rancher Server已部署
– Rancher Server可访问
– Rancher Server配置正确

# 2. 集群准备
– 集群已导入Rancher
– 集群状态正常
– 集群网络互通
– 集群资源充足

# 3. Git仓库准备
– Git仓库已创建
– Git仓库可访问
– Git仓库配置正确

# 4. 应用需求分析
– 确定应用类型
– 确定应用版本
– 确定应用配置
– 确定应用依赖

# 5. 部署策略规划
– 确定部署策略
– 确定部署顺序
– 确定部署时间
– 确定回滚策略

2.2 Rancher数据库Fleet要求

Rancher数据库Fleet要求:

# Rancher数据库Fleet要求

# Rancher Server要求
– Rancher版本:>= v2.7.0
– Fleet版本:>= v0.9.0
– 资源要求:CPU >= 2核,内存 >= 4GB

# 集群要求
– Kubernetes版本:>= v1.23.0
– 集群状态:Active
– 网络互通:集群之间网络互通
– 资源充足:集群资源充足

# Git仓库要求
– Git类型:GitLab、GitHub、Bitbucket
– 访问权限:可访问
– 分支管理:支持分支管理
– Webhook:支持Webhook

# 应用要求
– 应用类型:Helm Chart、Kubernetes资源
– 应用版本:明确具体
– 应用配置:明确具体
– 应用依赖:明确具体

# 部署策略要求
– 部署策略:滚动更新、蓝绿部署
– 部署顺序:明确具体
– 部署时间:明确具体
– 回滚策略:明确具体

2.3 Rancher数据库Fleet规划

Rancher数据库Fleet规划:

# Rancher数据库Fleet规划

# 集群规划
集群1:fgedu-eks-cluster(EKS集群)
集群2:fgedu-ack-cluster(ACK集群)
集群3:fgedu-rke2-cluster(RKE2集群)

# Git仓库规划
Git仓库:git.fgedu.net.cn/fgedu/fleet-bundles
分支:main、dev、test

# 应用规划
应用1:Nginx(Web服务器)
应用2:MySQL(数据库)
应用3:Redis(缓存)

# Bundle规划
Bundle 1:fgedu-nginx-bundle
– Nginx Chart
– 配置文件
Bundle 2:fgedu-mysql-bundle
– MySQL Chart
– 配置文件
Bundle 3:fgedu-redis-bundle
– Redis Chart
– 配置文件

# 部署策略规划
部署策略:滚动更新
部署顺序:Nginx -> MySQL -> Redis
部署时间:凌晨2点
回滚策略:自动回滚

生产环境建议:Rancher数据库Fleet建议使用GitOps模式,通过Git仓库管理应用配置。定期测试部署策略,确保部署成功。更多学习教程公众号风哥教程itpux_com

Part03-生产环境项目实施方案

3.1 Rancher数据库安装Fleet

3.1.1 Rancher数据库通过Web界面启用Fleet

# 通过Web界面启用Fleet
# 步骤1:登录Rancher管理界面
# 步骤2:点击”集群管理” – “Fleet”
# 步骤3:点击”启用Fleet”按钮
# 步骤4:选择集群:
# fgedu-eks-cluster
# fgedu-ack-cluster
# fgedu-rke2-cluster
# 步骤5:点击”启用”按钮

# 通过CLI启用Fleet
[root@rancher ~]# kubectl create namespace fleet-system
namespace/fleet-system created

[root@rancher ~]# helm repo add rancher-fleet https://charts.rancher.io
“rancher-fleet” has been added to your repositories

[root@rancher ~]# helm repo update
Hang tight while we grab the latest from your chart repositories…
…Successfully got an update from the “rancher-fleet” chart repository
Update Complete. ⎈Happy Helming!⎈

[root@rancher ~]# helm install fleet-agent rancher-fleet/fleet-agent \
–namespace fleet-system \
–set clusterLabels={“environment”:”fgedu”} \
–set apiURL=https://192.168.1.100

NAME: fleet-agent
LAST DEPLOYED: Fri Apr 10 10:00:00 2026
NAMESPACE: fleet-system
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
The Fleet Agent has been installed successfully!

# 查看Fleet Agent状态
[root@rancher ~]# kubectl get pods -n fleet-system
NAME READY STATUS RESTARTS AGE
fleet-agent-1234567890-abcde 1/1 Running 0 1m
fleet-controller-1234567890-abcde 1/1 Running 0 1m
fleet-1234567890-abcde 1/1 Running 0 1m

# 查看集群注册状态
[root@rancher ~]# kubectl get clusters.fleet.cattle.io
NAME READY JOINED AGE
fgedu-eks True True 1m
fgedu-ack True True 1m
fgedu-rke2 True True 1m

3.2 Rancher数据库配置Fleet

3.2.1 Rancher数据库配置Git仓库

# 通过Web界面配置Git仓库
# 步骤1:登录Rancher管理界面
# 步骤2:点击”集群管理” – “Fleet” – “Git仓库”
# 步骤3:点击”添加仓库”按钮
# 步骤4:填写仓库信息:
# 仓库名称:fgedu-fleet-repo
# 仓库URL:git.fgedu.net.cn/fgedu/fleet-bundles
# 分支:main
# 认证方式:用户名密码
# 用户名:fgedu
# 密码:Git@123456
# 步骤5:点击”创建”按钮

# 通过CLI配置Git仓库
[root@rancher ~]# cat <
Annotations:
API Version: fleet.cattle.io/v1alpha1
Kind: GitRepo
Metadata:
Creation Timestamp: 2026-04-10T10:00:00Z
Generation: 1
Resource Version: 1234567890
UID: 12345678-90ab-cdef-1234-567890abcdef
Spec:
Branch: main
Client Secret Name: git-credentials
Paths:
./bundles
Repo: https://git.fgedu.net.cn/fgedu/fleet-bundles
Targets:
Cluster Selector:
Match Labels:
Environment: fgedu
Status:
Conditions:
Last Transition Time: 2026-04-10T10:00:00Z
Message: GitRepo is ready
Reason: GitRepoReady
Status: True
Type: Ready
Ready: true
Repo: https://git.fgedu.net.cn/fgedu/fleet-bundles
Revision: main

3.3 Rancher数据库分发应用

3.3.1 Rancher数据库创建Bundle

# 创建Bundle目录结构
[root@rancher ~]# mkdir -p fleet-bundles/bundles/fgedu-nginx-bundle
[root@rancher ~]# cd fleet-bundles/bundles/fgedu-nginx-bundle

# 创建Chart.yaml文件
[root@rancher fgedu-nginx-bundle]# cat > Chart.yaml < values.yaml < fleet.yaml < main

# 查看Bundle状态
[root@rancher ~]# kubectl get bundles.fleet.cattle.io -n fleet-system
NAME READY AGE
fgedu-nginx-bundle True 1m

# 查看Bundle详情
[root@rancher ~]# kubectl describe bundle fgedu-nginx-bundle -n fleet-system
Name: fgedu-nginx-bundle
Namespace: fleet-system
Labels:
Annotations:
API Version: fleet.cattle.io/v1alpha1
Kind: Bundle
Metadata:
Creation Timestamp: 2026-04-10T10:00:00Z
Generation: 1
Resource Version: 1234567890
UID: 12345678-90ab-cdef-1234-567890abcdef
Spec:
Resources:
Chart:
Name: fgedu-nginx-bundle
Path: ./bundles/fgedu-nginx-bundle
Repo: https://git.fgedu.net.cn/fgedu/fleet-bundles
Repo Type: git
Version: 1.0.0
Helm:
Values: replicaCount: 3
image:
tag: “1.25.3”
service:
type: LoadBalancer
Name: fgedu-nginx
Targets:
Cluster Selector:
Match Labels:
Environment: fgedu
Status:
Conditions:
Last Transition Time: 2026-04-10T10:00:00Z
Message: Bundle is ready
Reason: BundleReady
Status: True
Type: Ready
Ready: true

# 查看部署状态
[root@rancher ~]# kubectl get appdeployments.fleet.cattle.io -n fleet-system
NAME CLUSTERS READY AGE
fgedu-nginx 3 True 1m

# 查看应用状态
[root@rancher ~]# kubectl get deployments -A -l app=fgedu-nginx
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
fgedu-dev fgedu-nginx 3/3 3 3 1m
fgedu-test fgedu-nginx 3/3 3 3 1m
fgedu-prod fgedu-nginx 3/3 3 3 1m

风哥提示:Rancher Fleet可以简化多集群应用分发,提高部署效率。建议使用GitOps模式,通过Git仓库管理应用配置。from Rancher视频:www.itpux.com

Part04-生产案例与实战讲解

4.1 Rancher数据库升级应用

4.1.1 Rancher数据库升级Bundle

# 修改Bundle版本
[root@rancher fgedu-nginx-bundle]# cat > Chart.yaml < values.yaml < main

# 查看Bundle升级状态
[root@rancher ~]# kubectl get bundles.fleet.cattle.io -n fleet-system
NAME READY AGE
fgedu-nginx-bundle True 5m

# 查看应用升级状态
[root@rancher ~]# kubectl get deployments -A -l app=fgedu-nginx
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
fgedu-dev fgedu-nginx 5/5 5 5 5m
fgedu-test fgedu-nginx 5/5 5 5 5m
fgedu-prod fgedu-nginx 5/5 5 5 5m

# 查看Pod状态
[root@rancher ~]# kubectl get pods -A -l app=fgedu-nginx
NAMESPACE NAME READY STATUS RESTARTS AGE
fgedu-dev fgedu-nginx-1234567890-abcde 1/1 Running 0 2m
fgedu-dev fgedu-nginx-1234567890-fghij 1/1 Running 0 2m
fgedu-dev fgedu-nginx-1234567890-klmno 1/1 Running 0 2m
fgedu-dev fgedu-nginx-2345678901-abcde 1/1 Running 0 2m
fgedu-dev fgedu-nginx-2345678901-fghij 1/1 Running 0 2m

4.2 Rancher数据库回滚应用

4.2.1 Rancher数据库回滚Bundle

# 回滚Bundle版本
[root@rancher fgedu-nginx-bundle]# cat > Chart.yaml < main

# 查看Bundle回滚状态
[root@rancher ~]# kubectl get bundles.fleet.cattle.io -n fleet-system
NAME READY AGE
fgedu-nginx-bundle True 10m

# 查看应用回滚状态
[root@rancher ~]# kubectl get deployments -A -l app=fgedu-nginx
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
fgedu-dev fgedu-nginx 3/3 3 3 10m
fgedu-test fgedu-nginx 3/3 3 3 10m
fgedu-prod fgedu-nginx 3/3 3 3 10m

4.3 Rancher数据库监控Fleet

4.3.1 Rancher数据库查看Fleet状态

# 查看Git仓库状态
[root@rancher ~]# kubectl get gitrepos.fleet.cattle.io -n fleet-system
NAME REVISION READY AGE
fgedu-fleet-repo main True 10m

# 查看Bundle状态
[root@rancher ~]# kubectl get bundles.fleet.cattle.io -n fleet-system
NAME READY AGE
fgedu-nginx-bundle True 10m

# 查看AppDeployment状态
[root@rancher ~]# kubectl get appdeployments.fleet.cattle.io -n fleet-system
NAME CLUSTERS READY AGE
fgedu-nginx 3 True 10m

# 查看集群状态
[root@rancher ~]# kubectl get clusters.fleet.cattle.io
NAME READY JOINED AGE
fgedu-eks True True 10m
fgedu-ack True True 10m
fgedu-rke2 True True 10m

# 通过Web界面查看Fleet状态
# 步骤1:登录Rancher管理界面
# 步骤2:点击”集群管理” – “Fleet”
# 步骤3:查看Git仓库状态
# 步骤4:查看Bundle状态
# 步骤5:查看AppDeployment状态
# 步骤6:查看集群状态

生产环境建议:Rancher数据库Fleet建议在测试环境充分测试后再部署到生产环境。定期检查Fleet状态,确保应用部署成功。更多视频教程www.fgedu.net.cn

Part05-风哥经验总结与分享

5.1 Rancher数据库Fleet最佳实践

Rancher数据库Fleet最佳实践:

  • GitOps模式:使用GitOps模式,通过Git仓库管理应用配置
  • 版本控制:使用版本控制,管理应用版本
  • 测试验证:在测试环境充分测试后再部署到生产环境
  • 部署策略:选择合适的部署策略,如滚动更新
  • 监控告警:配置监控告警,及时发现和处理问题
  • 文档记录:记录部署过程和配置
  • 定期检查:定期检查Fleet状态,确保应用部署成功

5.2 Rancher数据库Fleet问题排查

Rancher数据库Fleet问题排查:

# Rancher数据库Fleet常见问题及解决方案

# 问题1:Bundle部署失败
# 现象:Bundle部署时提示错误
# 原因:配置错误、资源不足、依赖问题
# 解决:
[root@rancher ~]# kubectl get bundles.fleet.cattle.io -n fleet-system
[root@rancher ~]# kubectl describe bundle fgedu-nginx-bundle -n fleet-system
[root@rancher ~]# kubectl get appdeployments.fleet.cattle.io -n fleet-system
[root@rancher ~]# kubectl logs -n fleet-system fleet-controller-1234567890-abcde

# 问题2:Git仓库同步失败
# 现象:Git仓库无法同步
# 原因:网络不通、认证失败、仓库地址错误
# 解决:
[root@rancher ~]# kubectl get gitrepos.fleet.cattle.io -n fleet-system
[root@rancher ~]# kubectl describe gitrepo fgedu-fleet-repo -n fleet-system
[root@rancher ~]# kubectl get secret git-credentials -n fleet-system
[root@rancher ~]# ping git.fgedu.net.cn

# 问题3:集群注册失败
# 现象:集群无法注册到Fleet
# 原因:网络不通、配置错误、版本不兼容
# 解决:
[root@rancher ~]# kubectl get clusters.fleet.cattle.io
[root@rancher ~]# kubectl describe cluster fgedu-eks
[root@rancher ~]# kubectl get pods -n fleet-system
[root@rancher ~]# kubectl logs -n fleet-system fleet-agent-1234567890-abcde

# 问题4:应用升级失败
# 现象:应用升级时提示错误
# 原因:配置冲突、版本不兼容、依赖问题
# 解决:
[root@rancher ~]# kubectl get bundles.fleet.cattle.io -n fleet-system
[root@rancher ~]# kubectl describe bundle fgedu-nginx-bundle -n fleet-system
[root@rancher ~]# kubectl get appdeployments.fleet.cattle.io -n fleet-system
[root@rancher ~]# kubectl logs -n fleet-system fleet-controller-1234567890-abcde

5.3 Rancher数据库Fleet维护

Rancher数据库Fleet维护:

# Rancher数据库Fleet维护建议

# 1. 定期检查
– 检查Git仓库状态
– 检查Bundle状态
– 检查AppDeployment状态
– 检查集群状态

# 2. 定期更新
– 更新Bundle版本
– 更新应用配置
– 更新Fleet版本
– 更新Git仓库

# 3. 定期备份
– 备份Git仓库
– 备份Bundle配置
– 备份应用数据
– 备份Fleet配置

# 4. 定期清理
– 清理无用Bundle
– 清理无用Git分支
– 清理无用应用
– 清理过期日志

# 5. 定期审计
– 审计Bundle配置
– 审计应用配置
– 审计操作日志
– 审计资源使用情况

风哥提示:Rancher Fleet可以简化多集群应用分发,提高部署效率。建议使用GitOps模式,通过Git仓库管理应用配置。定期检查Fleet状态,确保应用部署成功。学习交流加群风哥微信: itpux-com

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息