1.7. 管理设备团队


技术预览: Red Hat Edge Manager 通过 设备群 简化了大量设备和工作负载的管理。fleet 是一个资源,它定义由通用设备模板和管理策略管理的一组设备。

当您更改设备模板时,当 Red Hat Edge Manager 代理检测到新目标规格时,团队中的所有设备都会接收更改。

团队中的设备监控也已被简化,因为您可以检查整个团队的状态概述。

群级管理具有以下优点:

  • 扩展操作,因为您只需要为每个团队执行一次操作,而不是对每个设备执行一次操作。
  • 尽可能减少配置错误和配置偏移的风险。
  • 当您将设备添加到团队中的团队或替换设备时,会自动应用目标配置。

fleet 规格由以下功能组成:

标签选择器
确定哪个设备是该团队的一部分。
设备模板
定义 Red Hat Edge Manager 在团队中的设备强制执行的配置。
策略(policy)
监管如何管理设备,例如,如何将对设备模板的更改应用到设备。

您可以同时单独管理和管理的设备。当将设备选为团队时,Red Hat Edge Manager 根据设备模板为新设备创建设备规格。如果您更新一个团队或新设备的设备模板,Red Hat Edge Manager 会在团队中强制实施新规格。

如果没有选择设备到任何群,则该设备被视为用户管理或非受管设备。对于用户管理的设备,您必须手动或通过外部自动化更新设备规格。

重要: 设备不能是同时多个团队的成员。

如需更多信息,请参阅 标签和标签选择器

1.7.1. 设备选择为一个团队

默认情况下,设备不会被分配给一个机。相反,每个团队都使用一个选择器来定义必须将设备添加到团队中的标签。

要了解如何在一个团队中使用标签,请参阅以下示例:

以下列表显示了销售终端设备及其标签点:

Expand

设备

标签

A

Type: pos-terminal,region: east,stage: production

B

Type: pos-terminal,region: east,stage: development

C

Type: pos-terminal,region: west,stage: production

D

Type: pos-terminal,region: west,stage: development

如果所有销售点终端都使用相同的配置,并由同一运维团队管理,您可以使用 type=pos-terminal 标签选择器定义一个名为 pos-terminals 的团队。然后,团队包含设备 A、B、C 和 D。

但是,您可能希望为不同机构为开发或生产创建单独的团队。您可以使用 type=pos-terminal、stage=development 标签选择器(选择设备 C 和 D)定义开发团队。然后,您可以使用 type=pos-terminal, stage=production 标签选择器为 production 定义另一个团队。通过使用正确的标签选择器,您可以独立管理这两个团队。

重要 : 您必须以两个团队定义选择器,它们不会选择同一设备。例如,如果一个 fleet 选择 region=east,另一个 fleet 选择 stage=production,则两个团队都尝试选择设备 A。如果两个团队试图选择同一设备,Red Hat Edge Manager 会在当前分配的 fleet 中保留设备(如果有),并在受影响的 fleet 上将 OverlappingSelectors 条件设置为 true

1.7.2. 设备模板

团队的设备模板包含一个设备规格,在模板更新时应用于该团队中的所有设备。

例如,您可以在团队中的所有设备模板中指定,必须运行 quay.io/flightctl/rhel:9.5 操作系统镜像。

然后,Red Hat Edge Manager 服务将目标规格部署到该团队中的所有设备,Red Hat Edge Manager 代理会相应地更新每个设备。

您可以更改设备模板中的其他规格项目,Red Hat Edge Manager 会以同样的方式应用更改。

但是,有时不是该团队中的所有设备都需要有完全相同的规格。Red Hat Edge Manager 允许模板包含基于设备名称或标签值填充的占位符。

占位符的语法与 Go 模板 的语法匹配。但是,您只能使用简单的文本和操作。

不支持在占位符中使用条件或循环。

您可以从设备的元数据引用任何内容,如 {{ .metadata.labels.key }}{{ .metadata.name }}

您还可以在占位符中使用以下功能:

  • 大写 的功能会将值更改为大写。例如,函数是 {{ upper .metadata.name }}
  • 较低 函数将值改为小写。例如,函数为 {{ lower .metadata.labels.key }}
  • replace 函数将所有子字符串出现的所有替换为另一个字符串。例如,函数是 {{ replace "old" "new" .metadata.labels.key }}
  • 如果访问缺少的标签,getOrDefault 函数会返回一个默认值。例如,他功能是 {{ getOrDefault .metadata.labels "key" "default" }}

您可以组合管道中的功能,例如: combined 函数为 {{ getOrDefault .metadata.labels "key" "default" | upper | replace " "-" }}

注意: 确保使用正确的 Go 模板语法。例如,{{ .metadata.labels.target-revision }} 无效,因为连字符。相反,您必须将字段指代为 {{ index .metadata.labels "target-revision" }}

您可以使用以下方法在设备模板中使用占位符:

  • 您可以按部署阶段标记设备,例如: stage 标签是 stage: testingstage: production。然后,您可以在引用要使用的操作系统镜像时将标签与 stage 键用作占位符,例如,使用 quay.io/myorg/myimage:latest-{{ .metadata.labels.stage }},或在引用 Git 存储库中的配置文件夹时。
  • 您可以通过部署站点标记设备,例如部署站点为 site: factory-berlinsite: factory-madrid
  • 然后,当使用 Kubernetes 中的网络访问凭证引用 secret 时,您可以将标签与 站点 键一起使用。

设备模板中的以下字段支持占位符:

Expand

字段

支持的占位符

操作系统镜像

仓库名称、镜像名称、镜像标签

Git 配置提供程序

目标修订,path

HTTP 配置提供程序

URL 后缀、路径

内联配置提供程序

内容,路径

1.7.3. 使用 CLI 选择设备到团队中

技术预览: 定义标签选择器,将设备添加到团队中。

完成以下任务:

  1. 运行以下命令,以验证标签选择器是否返回您要添加到团队中的设备:

    flightctl get devices -l type=pos-terminal -l stage=development
    Copy to Clipboard Toggle word wrap
  2. 如果运行命令返回预期的设备列表,您可以使用以下 YAML 文件定义一个选择设备的 fleet :

    apiVersion: flightctl.io/v1alpha1
    kind: Fleet
    metadata:
      name: my_fleet
    spec:
      selector:
        matchLabels:
          type: pos-terminal
          stage: development
    [...]
    Copy to Clipboard Toggle word wrap
  3. 运行以下命令来应用更改:

    flightctl apply -f my_fleet.yaml
    Copy to Clipboard Toggle word wrap
  4. 运行以下命令,检查与其他团队选择器的重叠:

    flightctl get fleets/my_fleet -o json | jq -r '.status.conditions[] | select(.type=="OverlappingSelectors").status'
    Copy to Clipboard Toggle word wrap

    请参见以下示例输出:

    False
    Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部