安装和使用 Fleet CLI
SUSE® Rancher Prime Continuous Delivery CLI 是一个命令行界面 (CLI),允许您直接从本地计算机与 SUSE® Rancher Prime Continuous Delivery 进行交互。它使您能够创建、应用和检查 bundles,而无需 GitRepo。典型的用例包括:
-
测试和预览包内容。
-
直接从 Helm 图表、Kubernetes 清单和
fleet.yaml文件创建包。 -
检查包将针对哪些集群。
-
在集群中验证部署,而无需安装 SUSE® Rancher Prime Continuous Delivery。
|
您可以在不安装 有关更多信息,请参见 安装 Fleet。 |
安装 Fleet CLI
Fleet CLI 是一个独立的二进制文件,您可以从 Fleet GitHub 发布页面 下载。
Linux/macOS
curl -L -o fleet https://github.com/rancher/fleet/releases/latest/download/fleet-linux-amd64
# Make it executable and move to PATH
chmod +x fleet
sudo mv fleet /usr/local/bin/
关键命令
SUSE® Rancher Prime Continuous Delivery 提供了多个 CLI 命令来创建、预览和部署捆绑包。这些命令对于调试和理解捆绑包生命周期非常有用。
-
fleet apply:从本地文件(如 Helm 图表、Kubernetes 清单或 Kustomize 文件夹)创建或预览捆绑包。 此命令不需要访问集群,因此即使没有安装 SUSE® Rancher Prime Continuous Delivery 或kubectl也可以工作。示例:
fleet apply my-bundle ./manifests
-
fleet target:读取捆绑包文件并评估哪些集群会接收它,基于选择器和目标规则,如targets、targetOverrides、clusterGroups和标签选择器。示例:
fleet target my-bundle ./manifests
-
fleet deploy:获取fleet target的输出,或转储的bundledeployment/content 资源,并将其部署到集群中——就像fleet-agent一样。您可以在以下场景中使用它:
fleet apply -o - name ./folder在创建捆绑包之前检查 YAML。有关更多信息,请参见 使用 CLI 检查捆绑包生命周期。 与目标一起使用以调试选择器并验证哪些下游集群被选中。 **fleet deploy --dry-run打印将要部署的资源,而不应用它们。
使用 Fleet CLI 部署示例捆绑包
您可以通过使用 CLI 在本地应用工作负载,而无需使用 GitRepos。例如,使用 Fleet 示例储存库:
git clone https://github.com/rancher/fleet-examples
cd fleet-examples/single-cluster
将其应用于当前集群:
fleet apply -o my-cool-bundle manifests
此命令在名称空间中创建一个 Bundle 资源。
将 Helm 图表转换为捆绑包
您可以使用 Fleet CLI 将 Helm 图表转换为捆绑包。例如,要转换 external-secrets 操作符图表:
cat > targets.yaml <<EOF
targets:
- clusterSelector: {}
EOF
mkdir app
cat > app/fleet.yaml <<EOF
defaultNamespace: external-secrets
helm:
repo: https://charts.external-secrets.io
chart: external-secrets
EOF
fleet apply --compress --targets-file=targets.yaml -n fleet-default -o - external-secrets app > eso-bundle.yaml
kubectl apply -f eso-bundle.yaml
确保您在 targets.yaml 中使用的集群选择器与您要部署的所有集群匹配。
查错
如果捆绑包尚未准备好:
-
检查
fleet-controller和fleet-agentpod 是否正在运行。 -
确保
fleet-local集群已注册。 -
检查捆绑包以获取错误消息:
kubectl describe bundle -n fleet-local <bundle-name> -
如果遇到 Helm 所有权冲突,请删除并重新应用捆绑包。
验证代理和控制器状态
在排查捆绑包或部署问题之前,请验证 Fleet agent 是否已在下游集群上注册并运行。 有关更多信息,请参见 Fleet Agent is Registered, Watches for BundleDeployments。
如果在给定集群上捆绑包尚未准备好,请检查以下内容:
-
在管理集群上:
-
验证
fleet-controller和gitjobpod(或helmops,具体取决于您的设置)是否正在运行。 -
确保集群状态显示为 Ready。
-
检查捆绑包的状态——如果部署失败,它应包含错误消息。
-
-
在目标集群上,捆绑包尚未准备好:
-
验证该目标集群已注册并且有一个正在运行的
fleet-agentpod。 -
作为最后手段,请检查
fleet-agentpod 的日志。
-