|Index|SUSE Edge 文档|组件|Fleet
Applies to SUSE Edge 3.6

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 中的 持续交付 选项进行管理。

fleet dashboard

持续交付部分包含以下项目:

6.3.1 仪表板

所有工作区中所有 GitOps 储存库的概览页面。仅显示包含储存库的工作区。

6.3.2 Git 储存库

所选工作区中的 GitOps 储存库列表。使用页面顶部的下拉列表选择活动工作区。

6.3.3 群集

托管集群列表。默认情况下,所有 Rancher 托管的集群都会添加到 fleet-default 工作区中。fleet-local 工作区包含本地(管理)群集。在此处,您可以 PauseForce update 集群,或将集群移动到另一个工作区。编辑集群允许更新用于对集群进行分组的标签和注释。

6.3.4 集群组

本节允许使用选择器对工作区内的集群进行自定义分组。

6.3.5 高级

“高级”部分允许管理工作区和其他相关的 Fleet 资源。

6.4 使用 Rancher 仪表板通过 Rancher 和 Fleet 安装 KubeVirt 的示例

  1. 创建一个包含 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
  2. 在 Rancher 仪表板中,导航至 ☰ > 持续交付 > Git 储存库 并点击 Add Repository

  3. 储存库创建向导将引导您完成 Git 储存库的创建。提供 名称储存库 URL(引用在上一步中创建的 Git 储存库),并选择相应的分支或修订版本。对于更复杂的储存库,请指定 路径 以在单个储存库中使用多个目录。

    fleet create repo1
  4. 单击 Next

  5. 在下一步中,您可以定义工作负载的部署位置。集群选择提供了几个基本选项:您可以选择不选择集群、选择所有集群,或者直接选择特定的托管集群或集群组(如果已定义)。“高级”选项允许通过 YAML 直接编辑选择器。

    fleet create repo2
  6. 单击 Create。储存库已创建。从现在起,工作负载将在匹配储存库定义的集群上进行安装并保持同步。

6.5 调试与故障排除

“高级”导航部分提供了底层 Fleet 资源的概览。 Bundle 是一种用于编排 Git 资源的内部资源。当扫描 Git 存储库时,它会生成一个或多个 Bundle。

要查找与特定储存库相关的 Bundle,请转到 Git 储存库详细信息页面并点击 Bundles 选项卡。

fleet repo bundles

对于每个集群,该 Bundle 会被应用到所创建的 BundleDeployment 资源中。要查看 BundleDeployment 详细信息,请点击 Git 储存库详细信息页面右上角的 Graph 按钮。 系统会加载一张 Repo > Bundles > BundleDeployments 的图表。点击图表中的 BundleDeployment 以查看其详细信息,并点击 Id 以查看 BundleDeployment YAML。

fleet repo graph

有关 Fleet 故障排除技巧的更多信息,请参阅 此处

6.6 Fleet 示例

Edge 团队维护着一个 储存库,其中包含使用 Fleet 安装 Edge 项目的示例。

Fleet 项目包含一个 fleet-examples 储存库,涵盖了 Git 储存库结构 的所有用例。