6 Fleet #
Fleet 是一个容器管理和部署引擎,旨在让用户更好地控制本地群集,并通过 GitOps 进行持续监控。Fleet 不仅注重缩放能力,而且还为用户提供很高的控制度和可见性,以准确监控群集上安装的组件。
Fleet 可以管理通过原始 Kubernetes YAML、Helm chart、Kustomize 的 Git 软件包或这三者的任意组合完成的部署。无论源是什么,所有资源都会动态转换为 Helm chart,并使用 Helm 作为引擎在群集中部署所有资源。因此,用户可以享受很高的群集控制度、一致性和可审计性。
有关 Fleet 工作原理的信息,请参见此处。
6.1 使用 Helm 安装 Fleet #
Fleet 已内置于 Rancher 中,但您也可以使用 Helm 将 Fleet 安装为任何 Kubernetes 群集上的独立应用程序。
6.2 使用 Rancher 中的 Fleet #
Rancher 使用 Fleet 在受管群集中部署应用程序。Fleet 的持续交付功能引入了大规模 GitOps,旨在管理在大量群集上运行的应用程序。
作为 Rancher 中不可或缺的组成部分,Fleet 的作用令人瞩目。使用 Rancher 管理的群集会在安装/导入过程中自动由 Fleet 代理部署,并且群集立即可由 Fleet 管理。
6.3 在 Rancher UI 中访问 Fleet #
Fleet 已预装在 Rancher 中,可以通过 Rancher UI 中的 Continuous Delivery(持续交付)选项进行管理。有关“Continuous Delivery”(持续交付)和其他 Fleet 查错提示的更多信息,请参见此处。
“Continuous Delivery”(持续交付)部分包括以下项目:
6.3.1 Dashboard(仪表板) #
所有工作空间中所有 GitOps 储存库的概览页面。仅显示包含储存库的工作空间。
6.3.2 Git repos(Git 储存库) #
所选工作空间中的 GitOps 储存库列表。使用页面顶部的下拉列表选择活动工作空间。
6.3.3 Clusters(群集) #
受管群集列表。默认情况下,Rancher 管理的所有群集都会添加到 fleet-default
工作空间。fleet-local
工作空间包含本地(管理)群集。在此处可以暂停
或强制更新
群集,或者将群集移动到另一个工作空间。可以通过编辑群集来更新用于群集分组的标签和批注。
6.3.4 Cluster groups(群集组) #
在此部分,可以使用选择器对工作空间内的群集进行自定义分组。
6.3.5 Advanced(高级) #
在“Advanced”(高级)部分可以管理工作空间和其他相关 Fleet 资源。
6.4 使用 Rancher 仪表板通过 Rancher 和 Fleet 安装 KubeVirt 的示例 #
创建包含
fleet.yaml
文件的 Git 储存库:defaultNamespace: kubevirt helm: chart: "oci://registry.suse.com/edge/kubevirt-chart" version: "0.2.4" # kubevirt namespace is created by kubevirt as well, we need to take ownership of it takeOwnership: true
在 Rancher 仪表板中,导航到 ☰ > Continuous Delivery(持续交付)> Git repos(Git 储存库),然后单击
Add Repository
(添加储存库)。储存库创建向导将指导您完成 Git 储存库创建步骤。提供名称、储存库 URL(引用上一步骤中创建的 Git 储存库),并选择适当的分支或修订版。对于较复杂的储存库,请指定路径以便在单个储存库中使用多个目录。
单击
Next
(下一步)。在下一步骤中,可以定义工作负载的部署位置。在群集选择方面,可以使用多个基本选项:可以不选择任何群集、选择所有群集,或者直接选择特定的受管群集或群集组(如果已定义)。“Advanced”(高级)选项允许通过 YAML 直接编辑选择器。
单击
Create
(创建)。随即会创建储存库。从现在起,工作负载将在与储存库定义匹配的群集上安装并保持同步。
6.5 调试和查错 #
“Advanced”(高级)导航部分提供了较低级 Fleet 资源的概览。捆绑包是一个内部资源,用于编排 Git 中的资源。扫描 Git 储存库时,会生成一个或多个捆绑包。
要查找与特定储存库相关的捆绑包,请转到 Git 储存库细节页面,并单击 Bundles
(捆绑包)选项卡。
对于每个群集,捆绑包将应用于创建的 BundleDeployment 资源。要查看 BundleDeployment 细节,请单击 Git
储存库细节页面右上角的 Graph
(图表)按钮。随即会加载 Repo(储存库)> Bundles(捆绑包)> BundleDeployment
图表。在图表中单击相应 BundleDeployment 可查看其细节,单击 ID
可查看
BundleDeployment YAML。
有关 Fleet 查错提示的更多信息,请参见此处。
6.6 Fleet 示例 #
Edge 团队维护的一个储存库包含了有关使用 Fleet 安装 Edge 项目的示例。
Fleet 项目包含 fleet-examples 储存库,其中涵盖了 Git 储存库结构的所有用例。