捆绑生命周期
捆绑是用于协调来自 git 的资源的内部资源。当扫描 GitRepo 时,它将生成一个或多个捆绑。
为了演示 SUSE® Rancher Prime Continuous Delivery 捆绑的生命周期,我们将使用 多集群/helm 作为案例研究。
-
用户将创建一个指向多集群/helm 储存库的 GitRepo。
-
该
gitjob-controller将从 GitRepo 同步更改,并检测来自轮询或 webhook 事件 的更改。每次提交更改时,gitjob-controller将创建一个作业,克隆 git 储存库,读取储存库中的内容,如fleet.yaml和其他清单,并创建 SUSE® Rancher Prime Continuous Delivery 捆绑。作业 pod 的镜像名称
rancher/tekton-utils将与 GitRepo 在同一名称空间下。 -
然后
fleet-controller从捆绑中同步更改。根据目标,fleet-controller将创建BundleDeployment资源,这些资源是捆绑和目标集群的组合。 -
然后
fleet-agent将从BundleDeployment控制平面拉取 SUSE® Rancher Prime Continuous Delivery。代理将捆绑清单作为 Helm 图表 从BundleDeployment部署到下游集群。 -
fleet-agent将继续监控应用程序捆绑,并按以下顺序报告状态:捆绑部署 > 捆绑 > GitRepo > 集群。
该图显示了捆绑在部署之前经历的不同渲染阶段。
使用 CLI 检查捆绑生命周期
几个 Fleet CLI 命令有助于调试捆绑。
fleet apply
应用 将一个包含 Kubernetes 资源的文件夹(如 Helm 图表、清单或 kustomize 文件夹)渲染为 SUSE® Rancher Prime Continuous Delivery 捆绑资源。
git clone https://github.com/rancher/fleet-test-data cd fleet-test-data fleet apply -n fleet-local -o bundle.yaml testbundle simple-chart/
有关如何使用 fleet apply 创建捆绑的更多信息,请参见 捆绑部分。
fleet target
目标 从文件中读取捆绑,并与实时集群一起工作,以打印出 bundledeployment 和 content 资源,这些资源将由 fleetcontroller 创建。它以名称空间作为参数,因此可以在该名称空间中查找例如集群资源。它还可以转储在“目标”过程中使用的数据结构,以便检查关于标签和集群名称所做的决策。
舰队部署
部署 接收 fleet target 的输出,或转储的 bundledeployment/content 资源,并将其部署到集群,就像 Fleet agent 一样。它支持干运行模式,以打印出将要创建的资源,而不是使用 helm 安装它们。由于该命令不会创建输入资源,因此正在运行的 Fleet agent 可能会对该部署进行垃圾回收。
部署命令可用于将捆绑带到隔离的集群。
Lifecycle CLI
Fleet CLI 命令帮助您调试和理解捆绑生命周期。以下示例使用 CLI 展示完整的捆绑生命周期:
git clone https://github.com/rancher/fleet-test-data
cd fleet-test-data
fleet apply -n fleet-local -o bundle.yaml testbundle simple-chart/
fleet target --bundle-file bundle.yaml --list-inputs > bd.yaml
fleet deploy --input-file bd.yaml --dry-run
有关应用的信息,请参阅 创建捆绑资源。