Skip to main content

Fleet 介绍

适用于 Rancher v2.5+

概述#

Fleet 是轻量级的集群管理工具,您可以使用 Fleet 管理多达一百万个集群。对于单个集群也很好用,但当你达到大规模时,它才真正发挥出它的威力。

Fleet 是一个独立于 Rancher 的项目,可以用 Helm 安装在任何 Kubernetes 集群上。Fleet 的架构如下图所示:

架构#

关于 Fleet 如何工作的详细信息,请参见本页面

在 Rancher UI 中访问 Fleet#

Fleet 预装在 Rancher v2.5 中。用户可以通过遵循 gitops 实践,利用持续交付将他们的应用程序部署到 git 存储库中的 Kubernetes 集群中,而无需任何手动操作。有关持续交付和其他 Fleet 故障排除技巧的更多信息,请参阅此处

按照下面的步骤,在 Rancher UI 中访问持续交付:

  1. 点击 Rancher UI 中的 Cluster Explorer

  2. 在左上角的下拉菜单中,点击 Cluster Explorer > Continuous Delivery

  3. 在菜单的顶部选择你的命名空间,注意以下几点:

    • 默认情况下,选择 fleet-default,包括所有通过 Rancher 注册的下游集群。
    • 你可以切换到 fleet-local,它只包含 local 集群,或者你可以创建你自己的工作空间,你可以将集群分配和移动到该工作空间。
    • 然后你可以通过点击左侧导航栏上的集群来管理集群。
  4. 点击左侧导航栏上的 Gitrepos,将 gitrepo 部署到当前工作区的集群中。

  5. 选择你的 git 仓库目标集群/集群组。你也可以在 UI 中通过点击左侧导航栏的集群组来创建集群组。

  6. 一旦 gitrepo 部署完毕,你可以通过 Rancher UI 监控应用程序。

Windows 支持#

从 v2.5.6 版起可用

关于对带有 Windows 节点的集群的支持,详见本页

GitHub 存储库#

Fleet 的 Helm chart 可在这里查阅。

在代理服务器后面使用 Fleet#

从 v2.5.8 版起可用

关于在代理服务器后面使用 Fleet 的细节,请参见本页

Helm Chart 的依赖#

为了让有依赖关系的 Helm Chart 能够成功部署,你必须运行一个手动命令,因为要由用户来完成依赖关系列表。如果你不这样做,继续克隆你的仓库并运行 helm install,你的安装将会失败,因为依赖项会丢失。

git 仓库中的 Helm Chart 必须包括其在 charts 子目录中的依赖项。你必须手动运行 helm dependencies update $chart 或者在本地运行 helm dependencies build $chart,然后提交完整的 charts 目录到你的 git 仓库。注意,你需要使用适合的参数更新你的命令。

Troubleshooting#


已知问题: Fleet 在使用 backup-restore-operator 进行还原后变得无法操作。一旦有了解决方案,我们会在社区中进行更新。

临时解决方法:

  1. 找到 fleet-controller 和 fleet-controller-bootstrap 服务账户中列出的两个服务账户的 tokens。这些都在 local 集群的 fleet-system 命名空间下。
  2. 删除不存在的 token secret。这样做可以使实际存在的服务账户 token secret 只存在一个条目。
  3. 删除 fleet-system 命名空间中的 fleet-controller Pod,重新调度。
  4. 服务账户 token 问题解决后,你可以强制重新部署 fleet agent。在 Rancher UI 中,进入 ☰>集群管理,点击集群页面,然后点击强制更新
  5. 如果在步骤 4 之后,Fleet agent 包仍然处于 修改 状态,更新 fleet agent 包的 spec.forceSyncGeneration 字段,强制重新创建。

已知问题: Fleet gitrepos 的 clientSecretName 和 helmSecretName secret 不包含在由 backup-restore-operator 创建的备份或还原中。一旦有了解决方案,我们会在社区中进行更新。

临时解决方法:

默认情况下,Fleet 中不备份用户定义的 secret。如果执行灾难还原或将 Rancher 迁移到一个新的集群,有必要重新创建 secret。要修改 resourceSet 以包括你想要备份的额外资源,请参考文档这里


文档#

Fleet 的文档请参考见Fleet 文档

Last updated on by kingsd041