6.2. 查看设备


要获取有关清单中设备的更多信息,您可以使用 Red Hat Edge Manager CLI。

6.2.1. 在 Web UI 中查看设备清单和设备详情

您可以在 Red Hat Edge Manager Web UI 中查看注册设备的详情,包括其状态和健康状况

先决条件

流程

  1. 在导航面板中,选择 Application Links Edge Manager。这会打开 external Edge Manager 实例。
  2. 在导航面板中,选择" 设备 ",您可以在其中查看设备清单、详情和停用设备。

6.2.2. 在 CLI 中查看设备清单和设备详情

完成以下步骤:

流程

  1. 运行以下命令,查看设备清单中的设备:

    flightctl get devices
    Copy to Clipboard Toggle word wrap

    请参见以下示例输出:

    NAME           ALIAS    OWNER   SYSTEM  UPDATED     APPLICATIONS  LAST SEEN
    <device_name>  <none>   <none>  Online  Up-to-date  <none>        3 seconds ago
    Copy to Clipboard Toggle word wrap
  2. 运行以下命令,以 YAML 格式查看该设备的详情:

    flightctl get device/<device_name> -o yaml
    Copy to Clipboard Toggle word wrap

    请参见以下示例输出:

    apiVersion: flightctl.io/v1alpha1
    kind: Device
    metadata:
      name: <device_name>
      labels: 
    1
    
        region: eu-west-1
        site: factory-berlin
    spec:
      os:
        image: quay.io/flightctl/rhel:9.5 
    2
    
      config:
      - name: my-os-configuration 
    3
    
        configType: GitConfigProviderSpec
        gitRef:
          path: /configuration
          repository: my-configuration-repo
          targetRevision: production
    status:
      os:
        image: quay.io/flightctl/rhel:9.5 
    4
    
      config:
        renderedVersion: "1" 
    5
    
      applications:
        data: {} 
    6
    
        summary:
          status: Unknown 
    7
    
      resources: 
    8
    
        cpu: Healthy
        disk: Healthy
        memory: Healthy
      systemInfo: 
    9
    
        architecture: amd64
        bootID: 037750f7-f293-4c5b-b06e-481eef4e883f
        operatingSystem: linux
      summary:
        info: ""
        status: Online 
    10
    
      updated:
        status: UpToDate 
    11
    
      lastSeen: "2024-08-28T11:45:34.812851905Z" 
    12
    
    [...]
    Copy to Clipboard Toggle word wrap
    1
    分配给该设备的用户定义标签。
    2
    设备的目标 OS 镜像版本。
    3
    设备的目标操作系统配置。
    4
    设备的当前 OS 镜像版本
    5
    设备的当前操作系统配置版本。
    6
    设备部署的应用程序的当前列表。
    7
    该设备中应用程序的健康状况。
    8
    CPU、磁盘和内存资源的可用性。
    9
    基本系统信息。
    10
    设备的健康状况。
    11
    设备的更新状态。
    12
    设备的最后检查时间和日期。

6.2.3. 标签和标签选择器

您可以通过分配它们标签来组织资源,例如记录其位置、硬件类型或目的。Red Hat Edge Manager 标签遵循与 Kubernetes 标签和标签选择器相同的语法、原则和运算符。您可以在查看设备清单或将操作应用到设备时选择带有标签的设备。

标签采用 key=value 格式。您可以使用密钥对设备进行分组。例如,如果您的标签遵循 site=<location& gt; 命名约定,您可以根据站点对设备进行分组。您还可以使用仅包含键的标签。

标签必须遵循以下规则才能有效:

  • 键和值必须是 63 个字符或更少。
  • 键和值可由字母数字字符组成(a-zA-Z0-9)。
  • 键和值也可以包含短划线(-)、下划线(_)、句点(.),但不能包含第一个或最后一个字符。
  • 值可以被省略。

您可以使用以下方法将标签应用到设备:

  • 在镜像构建期间定义一组默认标签,在部署过程中自动应用到所有设备。
  • 在注册期间分配初始标签。
  • 在注册后分配标签。

标记资源时,您可以通过创建标签选择器来选择设备子集。标签选择器是一个以逗号分隔的标签列表,用于选择具有相同标签的设备集。

请参见以下示例:

Expand
标签选择器示例选择的设备

site=factory-berlin

具有 站点 标签键和 factory-berlin 标签值的所有设备。

site!=factory-berlin

具有 站点 标签键的所有设备,但标签值不是 factory-berlin

网站(factory-berlin,factory-madrid)

具有 站点 标签键的所有设备以及标签值都是 factory-berlinfactory-madrid

如需有关标签和选择器的更多信息,请参阅 Kubernetes 文档中的 标签和选择器

6.2.3.1. 在 Web UI 中查看设备及其标签

在 Web UI 中查看设备及其关联的标签。您可以使用标签来组织设备和设备群。

完成以下步骤:

  1. 在导航面板中,选择 Application Links Edge Manager。这会打开 external Edge Manager 实例。
  2. 在导航面板中,选择 Devices
  3. 选择您要管理的设备。在 Details 选项卡中,您可以在 Labels 下查看关联的标签。

6.2.3.2. 在 CLI 中查看设备及其标签

查看设备及其关联的标签。您可以使用标签来组织设备和设备群。

完成以下步骤:

流程

  1. 使用 -o wide 选项查看清单中的设备及其标签:

    flightctl get devices -o wide
    Copy to Clipboard Toggle word wrap

    请参见以下示例输出:

    NAME            ALIAS    OWNER   SYSTEM  UPDATED     APPLICATIONS  LAST SEEN      LABELS
    <device1_name>  <none>   <none>  Online  Up-to-date  <none>        3 seconds ago  region=eu-west-1,site=factory-berlin
    <device2_name>  <none>   <none>  Online  Up-to-date  <none>        1 minute ago   region=eu-west-1,site=factory-madrid
    Copy to Clipboard Toggle word wrap
  2. 使用 -l <key=value > 选项查看清单中的带有特定标签或一组标签的设备:

    flightctl get devices -l site=factory-berlin -o wide
    Copy to Clipboard Toggle word wrap

    请参见以下示例输出:

    NAME            ALIAS    OWNER   SYSTEM  UPDATED     APPLICATIONS  LAST SEEN      LABELS
    <device1_name>  <none>   <none>  Online  Up-to-date  <none>        3 seconds ago  region=eu-west-1,site=factory-berlin
    Copy to Clipboard Toggle word wrap

6.2.3.3. 更新 CLI 上的标签

使用 CLI 更新设备上的标签。

完成以下步骤:

流程

  1. 运行以下命令,将设备的当前定义导出到文件中:

    flightctl get device/<device1_name> -o yaml > my_device.yaml
    Copy to Clipboard Toggle word wrap
  2. 使用您的首选编辑器编辑 my_device.yaml 文件。请参见以下示例:

    apiVersion: flightctl.io/v1alpha1
    kind: Device
    metadata:
      labels:
        some_key: some_value
        some_other_key: some_other_value
      name: <device1_name>
    spec:
    [...]
    Copy to Clipboard Toggle word wrap
  3. 运行以下命令保存文件并应用更新的设备定义:

    flightctl apply -f my_device.yaml
    Copy to Clipboard Toggle word wrap
  4. 运行以下示例输出来验证您的更改:

    NAME            ALIAS    OWNER   SYSTEM  UPDATED     APPLICATIONS  LAST SEEN      LABELS
    <device1_name>  <none>   <none>  Online  Up-to-date  <none>        3 minutes ago  some_key=some_value,some_other_key=some_other_value
    <device2_name>  <none>   <none>  Online  Up-to-date  <none>        4 minutes ago  region=eu-west-1,site=factory-madrid
    Copy to Clipboard Toggle word wrap

6.2.4. 字段选择器

字段选择器根据特定资源字段值过滤 Red Hat Edge Manager 资源列表。它们遵循与 Kubernetes 字段和标签选择器相同的语法、原则和运算符,其他运算符可用于更高级的搜索用例。

6.2.4.1. 支持的字段

Red Hat Edge Manager 资源提供了一组您可以选择的元数据字段。

每个资源支持以下元数据字段:

  • metadata.name
  • metadata.owner
  • metadata.creationTimestamp
注意

要查询标签,请使用 Label Selectors 进行高级且灵活的标签过滤。

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

6.2.4.2. 其他支持的字段列表

除了元数据字段外,每个资源都有自己的唯一字段集合,您可以根据特定于资源的属性对过滤和选择提供更大的灵活性。

下表列出了为每个资源类型过滤支持的字段:

Expand
Kind字段

证书签名请求

status.certificate

device

status.summary.status

status.applicationsSummary.status

status.updated.status

status.lastSeen

status.lifecycle.status

注册请求

status.approval.approved

status.certificate

fleet

spec.template.spec.os.image

软件仓库

spec.type

spec.url

资源同步

spec.repository

6.2.4.3. 字段发现

有些 Red Hat Edge Manager 资源可能会公开额外的支持字段。您可以使用带有-- field-selector 选项的 flightctl 来发现支持的字段。如果您尝试使用 unsupported 字段,错误消息列出了可用的支持字段。

请参见以下示例:

flightctl get device --field-selector='text'
Copy to Clipboard Toggle word wrap
Error: listing devices: 400, message: unknown or unsupported selector: unable to resolve selector name "text". Supported selectors are: [metadata.alias metadata.creationTimestamp metadata.name metadata.nameoralias metadata.owner status.applicationsSummary.status status.lastSeen status.summary.status status.updated.status]
Copy to Clipboard Toggle word wrap

字段 文本 不是用于过滤的有效字段。错误消息提供了可用于 Device 资源的 with -field-selector 的受支持字段列表。

然后,您可以使用其中一个支持的字段:

flightctl get devices --field-selector 'metadata.alias contains cluster'
Copy to Clipboard Toggle word wrap

metadata.alias 字段使用 包含 运算符进行检查,以查看它是否具有值 cluster

示例

示例 1:按名称退出特定设备

以下命令根据其名称过滤出特定设备:

flightctl get devices --field-selector 'metadata.name!=c3tkb18x9fw32fzx5l556n0p0dracwbl4uiojxu19g2'
Copy to Clipboard Toggle word wrap

示例 2:按所有者、标签和创建时间戳过滤

此命令检索由 Fleet/pos-fleet 拥有的设备(位于 us 地区),并在 2024 年创建:

flightctl get devices --field-selector 'metadata.owner=Fleet/pos-fleet, metadata.creationTimestamp >= 2024-01-01T00:00:00Z, metadata.creationTimestamp < //2025-01-01T00:00:00Z' -l 'region=us'
Copy to Clipboard Toggle word wrap

示例 3:按所有者、标签和设备状态过滤

此命令检索 Fleet/pos-fleet 拥有的设备,位于 us 区域,并且 status.updated.statusUnknownOutOfDate

flightctl get devices --field-selector 'metadata.owner=Fleet/pos-fleet, status.updated.status in (Unknown, OutOfDate)' -l 'region=us'
Copy to Clipboard Toggle word wrap

6.2.4.4. 支持的 Operator

Expand
Operator符号描述

Exists

exists

检查字段是否存在

DoesNotExist

!

检查字段是否不存在

等于

=

检查字段是否等于值

DoubleEquals

==

另一种形式的相等检查

NotEquals

!=

检查字段是否不等于值

GreaterThan

>

检查字段是否大于一个值

GreaterThanOrEquals

>=

检查字段是否大于或等于值

LessThan

<

检查字段是否小于一个值

LessThanOrEquals

检查字段是否小于或等于一个值

In

in

检查字段是否位于值列表中

NotIn

NotIn

检查字段是否不在值列表中

contains

contains

检查字段是否有值

NotContains

notcontains

检查字段是否包含值

6.2.4.4.1. 根据字段类型的 Operator 使用

每个字段类型支持特定的 Operator 子集:

Expand
字段类型支持的 Operatorvalue

字符串

等于 :如果字段值与指定字符串完全匹配,则匹配。

DoubleEquals :如果字段值与指定字符串完全匹配(如 Equals)完全匹配。

NotEquals :如果字段值与指定字符串不匹配,则匹配。

中:如果字段值与列表中至少一个字符串匹配,则匹配。

NotIn: 匹配,如果字段值与列表中的任何字符串都不匹配。

包含 :如果字段值具有指定的子字符串,则匹配。

NotContains :如果字段值不包含指定的子字符串,则匹配。

存在: 如果字段存在,则匹配。

DoesNotExist: 如果字段不存在,则匹配。

文本字符串

timestamp

等于 :如果字段值与指定时间戳完全匹配,则匹配。

DoubleEquals :如果字段值与指定时间戳完全匹配(如 Equals)完全匹配。

NotEquals :如果字段值与指定时间戳不匹配,则匹配。

GreaterThan :如果字段值位于指定时间戳后,则匹配。

GreaterThanOrEquals: Matches (如果字段值之后或等于指定的时间戳)。

LessThan: 如果字段值位于指定时间戳之前,则匹配。

LessThanOrEquals :如果字段值早于或等于指定时间戳,则匹配。

中:如果字段值在列表中至少匹配一个时间戳,则匹配。

NotIn: 匹配,如果字段值与列表中的任何时间戳不匹配。

存在: 如果字段存在,则匹配。

DoesNotExist: 如果字段不存在,则匹配。

RFC 3339 格式

number

等于 :如果字段值等于指定数字,则匹配。

DoubleEquals :如果字段值等于指定号(与 Equals)相等,则匹配。

NotEquals :如果字段值不等于指定数字,则匹配。

GreaterThan :如果字段值大于指定数量,则匹配。

GreaterThanOrEquals: Matches (如果字段值大于或等于指定数目)。

lessThan: 匹配字段值小于指定数量。

less ThanOrEquals :如果字段值小于或等于指定号,则匹配。

中:如果字段值在列表中至少等于一个数字,则匹配。

NotIn: 匹配,如果字段值不等于列表中的任何数字。

如果存在 字段,如果存在 :Matches。

DoesNotExist: 如果字段不存在,则匹配。

数字格式

布尔值

等于 :如果值为 truefalse,则匹配。

DoubleEquals :如果值为 truefalse (与 Equals的原生)则匹配。

NotEquals :如果值与指定的值相反,则匹配。

中:如果值(truefalse)位于列表中,则匹配。

注意

该列表只能包含 truefalse,因此这个 Operator 被限制在使用中。

NotIn :如果值不在列表中,则匹配。

存在: 如果字段存在,则匹配。

DoesNotExist: 如果字段不存在,则匹配。

布尔值格式(truefalse)

数组

包含: 匹配,如果数组具有指定的值。

NotContains :如果数组不包含指定的值,则匹配。 中:如果数组与指定的值重叠,则匹配。

NotIn: 如果数组没有与指定的值重叠,则匹配。存在: 如果字段存在,则匹配。

如果字段不存在,则 DoesNotExist:Matches。

注意

使用 Array[Index] 将元素视为为数组元素定义的类型。例如字符串、时间戳、数字或布尔值。

数组元素

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat