
rancher/fleet-agentRancher Fleet Agent 是 Rancher Fleet 架构中的核心执行组件,部署在每一个需要通过 Fleet 管理的目标 Kubernetes 集群上。它作为 Fleet Controller(通常运行在 Rancher 管理集群)的“本地代理”,负责接收 Controller 下发的部署指令、在目标集群中实际执行资源部署,并持续监控状态、向 Controller 反馈结果,是实现跨集群 GitOps 管理的关键纽带。
接收 Fleet Controller 基于 Git 仓库配置生成的部署计划(包含 Kubernetes 资源清单、Helm Chart 或 Kustomize 配置),并在本地集群中调用 Kubernetes API 应用这些资源(如 Deployment、Service、ConfigMap 等)。
实时监控已部署资源的运行状态(如 Pod 就绪状态、Deployment 副本数、资源冲突等),并将状态数据(成功/失败/重试)持续上报给 Fleet Controller,确保 Controller 能实时掌握所有目标集群的部署情况。
支持根据目标集群的标签、环境变量等元数据,动态应用差异化配置(如通过 Kustomize 的 overlay 或 Helm 的 values 文件区分生产/测试集群配置),无需修改 Git 仓库中的基础配置。
当资源部署失败(如依赖缺失、权限不足)时,Agent 会根据 Controller 设定的策略自动重试;若发现已部署资源异常(如 Pod 崩溃),会触发重新同步,保障目标集群状态与 Git 仓库配置一致。
fleet.yaml)生成针对不同目标集群的部署计划。kubectl apply 逻辑,或通过 Helm 客户端安装 Chart)。假设已具备:Rancher 管理集群(运行 Fleet Controller)、目标 Kubernetes 集群(需被管理)、目标集群已接入 Rancher(或可通过 kubectl 访问)。
在 Rancher 管理集群的 UI 中,进入 设置 > 功能开关,找到 “Fleet” 并启用(首次启用会自动部署 Fleet Controller 到管理集群的 cattle-fleet-system 命名空间)。
Rancher 会自动为目标集群生成 Agent 部署清单,也可手动部署:
cattle-fleet-system 命名空间并部署 Agent。https://<rancher-server-url>/v3/fleet/agent-manifest),保存为 fleet-agent.yaml,在目标集群执行:
bashkubectl apply -f fleet-agent.yaml -n cattle-fleet-system
bashkubectl get pods -n cattle-fleet-system # 预期输出:fleet-agent-xxxxxx-xxxxx 1/1 Running 0 5m
bashkubectl logs -n cattle-fleet-system deployment/fleet-agent # 正常日志示例:"msg":"successfully connected to upstream controller"
目标集群需满足:
Fleet Agent 需要在目标集群拥有足够的 RBAC 权限(如 cluster-admin 或自定义权限,包含对所有资源的 get/list/create/update/delete 权限)。Rancher 自动部署时会默认配置,手动部署需确保 ClusterRoleBinding 正确。
Agent 版本需与管理集群的 Fleet Controller 版本完全一致(如 Controller 版本为 v0.3.9,Agent 也必须是 v0.3.9),否则可能出现通信异常。Rancher 升级时会自动同步 Agent 版本,手动升级需注意匹配。
若部署失败,优先查看 Agent 日志定位问题:
AlreadyExists 或 Conflict,需检查目标集群是否已有同名资源;Forbidden,需检查 RBAC 配置;git clone failed,需检查网络或凭证配置。





manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务