6 Fleet #
Fleet 是一个容器管理和部署引擎,旨在为用户提供对本地群集的更多控制,并通过 GitOps 进行持续监控。Fleet 不仅专注于扩展能力,还为用户提供了高度的控制和可见性,以监控集群上安装的确切内容。
Fleet 可以管理来自 Git 的原始 Kubernetes YAML、Helm chart、Kustomize 或这三者的任意组合的部署。无论来源如何,所有资源都会被动态转换为 Helm chart,并使用 Helm 作为引擎在集群中部署所有资源。因此,用户可以享受对其集群的高度控制、一致性和可审计性。
有关 Fleet 工作原理的信息,请参阅 Fleet 架构。
6.1 使用 Helm 安装 Fleet #
Fleet 内置于 Rancher 中,但也可以使用 Helm 作为独立应用程序,在任何 Kubernetes 集群上 安装。
6.2 在 Rancher 中使用 Fleet #
Rancher 使用 Fleet 在受管集群中部署应用程序。Fleet 的持续交付引入了大规模 GitOps,旨在管理运行在大量集群上的应用程序。
Fleet 作为 Rancher 的集成部分表现出色。通过 Rancher 管理的集群会在安装/导入过程中自动部署 Fleet agent,并且该集群可立即由 Fleet 进行管理。
6.3 在 Rancher UI 中访问 Fleet #
Fleet 在 Rancher 中预装,并由 Rancher UI 中的 持续交付 选项进行管理。
持续交付部分包含以下项目:
6.3.1 仪表板 #
所有工作区中所有 GitOps 储存库的概览页面。仅显示包含储存库的工作区。
6.3.2 Git 储存库 #
所选工作区中的 GitOps 储存库列表。使用页面顶部的下拉列表选择活动工作区。
6.3.3 群集 #
托管集群列表。默认情况下,所有 Rancher 托管的集群都会添加到 fleet-default 工作区中。fleet-local 工作区包含本地(管理)群集。在此处,您可以 Pause 或 Force update 集群,或将集群移动到另一个工作区。编辑集群允许更新用于对集群进行分组的标签和注释。
6.3.4 集群组 #
本节允许使用选择器对工作区内的集群进行自定义分组。
6.3.5 高级 #
“高级”部分允许管理工作区和其他相关的 Fleet 资源。
6.4 使用 Rancher 仪表板通过 Rancher 和 Fleet 安装 KubeVirt 的示例 #
创建一个包含
fleet.yaml文件的 Git 储存库:defaultNamespace: kubevirt helm: chart: "oci://registry.suse.com/edge/charts/kubevirt" version: "306.0.2+up0.7.0" # kubevirt namespace is created by kubevirt as well, we need to take ownership of it takeOwnership: true在 Rancher 仪表板中,导航至 ☰ > 持续交付 > Git 储存库 并点击
Add Repository。储存库创建向导将引导您完成 Git 储存库的创建。提供 名称、储存库 URL(引用在上一步中创建的 Git 储存库),并选择相应的分支或修订版本。对于更复杂的储存库,请指定 路径 以在单个储存库中使用多个目录。
单击
Next。在下一步中,您可以定义工作负载的部署位置。集群选择提供了几个基本选项:您可以选择不选择集群、选择所有集群,或者直接选择特定的托管集群或集群组(如果已定义)。“高级”选项允许通过 YAML 直接编辑选择器。
单击
Create。储存库已创建。从现在起,工作负载将在匹配储存库定义的集群上进行安装并保持同步。
6.5 调试与故障排除 #
“高级”导航部分提供了底层 Fleet 资源的概览。 Bundle 是一种用于编排 Git 资源的内部资源。当扫描 Git 存储库时,它会生成一个或多个 Bundle。
要查找与特定储存库相关的 Bundle,请转到 Git 储存库详细信息页面并点击 Bundles 选项卡。
对于每个集群,该 Bundle 会被应用到所创建的 BundleDeployment 资源中。要查看 BundleDeployment 详细信息,请点击 Git 储存库详细信息页面右上角的 Graph 按钮。
系统会加载一张 Repo > Bundles > BundleDeployments 的图表。点击图表中的 BundleDeployment 以查看其详细信息,并点击 Id 以查看 BundleDeployment YAML。
有关 Fleet 故障排除技巧的更多信息,请参阅 此处。
6.6 Fleet 示例 #
Edge 团队维护着一个 储存库,其中包含使用 Fleet 安装 Edge 项目的示例。
Fleet 项目包含一个 fleet-examples 储存库,涵盖了 Git 储存库结构 的所有用例。




