Fleet 介绍
适用于 Rancher v2.5+
#
概述Fleet 是轻量级的集群管理工具,您可以使用 Fleet 管理多达一百万个集群。对于单个集群也很好用,但当你达到大规模时,它才真正发挥出它的威力。
Fleet 是一个独立于 Rancher 的项目,可以用 Helm 安装在任何 Kubernetes 集群上。Fleet 的架构如下图所示:
#
架构关于 Fleet 如何工作的详细信息,请参见本页面。
#
在 Rancher UI 中访问 FleetFleet 预装在 Rancher v2.5 中。用户可以通过遵循 gitops 实践,利用持续交付将他们的应用程序部署到 git 存储库中的 Kubernetes 集群中,而无需任何手动操作。有关持续交付和其他 Fleet 故障排除技巧的更多信息,请参阅此处。
按照下面的步骤,在 Rancher UI 中访问持续交付:
点击 Rancher UI 中的 Cluster Explorer。
在左上角的下拉菜单中,点击 Cluster Explorer > Continuous Delivery。
在菜单的顶部选择你的命名空间,注意以下几点:
- 默认情况下,选择
fleet-default
,包括所有通过 Rancher 注册的下游集群。 - 你可以切换到
fleet-local
,它只包含local
集群,或者你可以创建你自己的工作空间,你可以将集群分配和移动到该工作空间。 - 然后你可以通过点击左侧导航栏上的集群来管理集群。
- 默认情况下,选择
点击左侧导航栏上的 Gitrepos,将 gitrepo 部署到当前工作区的集群中。
一旦 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 进行还原后变得无法操作。一旦有了解决方案,我们会在社区中进行更新。
临时解决方法:
- 找到 fleet-controller 和 fleet-controller-bootstrap 服务账户中列出的两个服务账户的 tokens。这些都在 local 集群的 fleet-system 命名空间下。
- 删除不存在的 token secret。这样做可以使实际存在的服务账户 token secret 只存在一个条目。
- 删除 fleet-system 命名空间中的 fleet-controller Pod,重新调度。
- 服务账户 token 问题解决后,你可以强制重新部署 fleet agent。在 Rancher UI 中,进入 ☰>集群管理,点击集群页面,然后点击强制更新。
- 如果在步骤 4 之后,Fleet agent 包仍然处于
修改
状态,更新 fleet agent 包的spec.forceSyncGeneration
字段,强制重新创建。
已知问题: Fleet gitrepos 的 clientSecretName 和 helmSecretName secret 不包含在由 backup-restore-operator 创建的备份或还原中。一旦有了解决方案,我们会在社区中进行更新。
临时解决方法:
默认情况下,Fleet 中不备份用户定义的 secret。如果执行灾难还原或将 Rancher 迁移到一个新的集群,有必要重新创建 secret。要修改 resourceSet 以包括你想要备份的额外资源,请参考文档这里。
#
文档Fleet 的文档请参考见Fleet 文档。