13.2. 裸机事件的工作方式
Bare Metal Event Relay 启用在裸机集群中运行的应用程序可以快速响应 Redfish 硬件更改和故障,如违反温度阈值、故障故障、磁盘丢失、电源中断和内存故障。这些硬件事件通过基于高级消息队列协议(AMQP)的可靠低延迟传输频道交付。消息传递服务的延迟时间为 10 到 20 毫秒。
Bare Metal Event Relay 为硬件事件提供了一个发布订阅服务,其中多个应用程序可以使用 REST API 订阅和使用事件。Bare Metal 事件 Relay 支持与 Redfish OpenAPI v1.8 或更高版本的硬件。
13.2.1. 裸机事件中继数据流
下图演示了裸机事件数据流示例:
图 13.1. 裸机事件中继数据流
13.2.1.1. Operator 管理的 pod
Operator 使用自定义资源来管理包含 Bare Metal Event Relay 及其组件( hardware Event
CR) 的 pod。
13.2.1.2. 裸机事件中继
启动时,Bare Metal 事件 Relay 查询 Redfish API 并下载所有消息 registry,包括自定义 registry。然后,Bare Metal 事件 Relay 开始从 Redfish 硬件接收订阅的事件。
Bare Metal Event Relay 启用在裸机集群中运行的应用程序可以快速响应 Redfish 硬件更改和故障,如违反温度阈值、故障故障、磁盘丢失、电源中断和内存故障。使用 HardwareEvent
CR 报告事件。
13.2.1.3. 云原生事件
云原生事件(CNE)是用于定义事件数据格式的 REST API 规格。
13.2.1.4. CNCF CloudEvents
CloudEvents 是云原生计算基础(CNCF)开发的供应商中立规格,用于定义事件数据的格式。
13.2.1.5. AMQP 分配路由器
分配路由器负责发布者和订阅者之间的消息交付服务。AMQP 1.0 qpid 是开放的标准,可在互联网上支持可靠、高性能、完全对称的消息传递。
13.2.1.6. 云事件代理 sidecar
云事件代理 sidecar 容器镜像基于 ORAN API 规格,为硬件事件提供发布订阅事件框架。
13.2.2. Redfish 消息解析服务
除了处理 Redfish 事件外,Bare Metal Event Relay 为事件提供消息解析功能,而无需 Message
属性。代理会下载所有 Redfish 消息 registry,包括在启动时从硬件中的特定 registry。如果事件不包含 Message
属性,代理使用 Redfish 消息 registry 来构造 Message
和 Resolution
属性,并在将事件传递给云事件框架前将其添加到事件中。此服务允许 Redfish 事件具有较小的消息大小,并会降低传输延迟。
13.2.3. 使用 CLI 安装裸机事件中继
作为集群管理员,您可以使用 CLI 安装 Bare Metal Event Relay Operator。
先决条件
- 在裸机硬件上安装的集群,节点带有启用了 RedFish 的 Baseboard Management Controller(BMC)。
-
安装 OpenShift CLI (
oc
) 。 -
以具有
cluster-admin
特权的用户身份登录。
流程
为 Bare Metal Event Relay 创建命名空间。
将以下 YAML 保存到
bare-metal-events-namespace.yaml
文件中:apiVersion: v1 kind: Namespace metadata: name: openshift-bare-metal-events labels: name: openshift-bare-metal-events openshift.io/cluster-monitoring: "true"
创建
Namespace
CR:$ oc create -f bare-metal-events-namespace.yaml
为 Bare Metal Event Relay Operator 创建 Operator 组。
将以下 YAML 保存到
bare-metal-events-operatorgroup.yaml
文件中:apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: bare-metal-event-relay-group namespace: openshift-bare-metal-events spec: targetNamespaces: - openshift-bare-metal-events
创建
OperatorGroup
CR:$ oc create -f bare-metal-events-operatorgroup.yaml
订阅裸机恢复事件中继。
将以下 YAML 保存到
bare-metal-events-sub.yaml
文件中:apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: bare-metal-event-relay-subscription namespace: openshift-bare-metal-events spec: channel: "stable" name: bare-metal-event-relay source: redhat-operators sourceNamespace: openshift-marketplace
创建
Subscription
CR:$ oc create -f bare-metal-events-sub.yaml
验证
要验证是否已安装 Bare Metal Event Relay Operator,请运行以下命令:
$ oc get csv -n openshift-bare-metal-events -o custom-columns=Name:.metadata.name,Phase:.status.phase
输出示例
Name Phase bare-metal-event-relay.4.11.0-xxxxxxxxxxxx Succeeded
13.2.4. 使用 Web 控制台安装 Bare Metal Event Relay
作为集群管理员,您可以使用 Web 控制台安装 Bare Metal Event Relay Operator。
先决条件
- 在裸机硬件上安装的集群,节点带有启用了 RedFish 的 Baseboard Management Controller(BMC)。
-
以具有
cluster-admin
特权的用户身份登录。
流程
使用 OpenShift Container Platform Web 控制台安装 Bare Metal Event Relay:
-
在 OpenShift Container Platform Web 控制台中,点击 Operators
OperatorHub。 - 从可用的 Operator 列表中选择 Bare Metal Event Relay,然后点 Install。
- 在 Install Operator 页面中,选择或创建一个命名空间,选择 openshift-bare-metal-events,然后点 Install。
-
在 OpenShift Container Platform Web 控制台中,点击 Operators
验证
可选: 您可以通过执行以下检查来验证 Operator 是否已成功安装:
-
切换到 Operators
Installed Operators 页面。 确保项目中列出了 Bare Metal Event Relay,Status 为 InstallSucceeded。
注意在安装过程中,Operator 可能会显示 Failed 状态。如果安装过程结束后有 InstallSucceeded 信息,您可以忽略这个 Failed 信息。
如果 Operator 没有被成功安装,请按照以下步骤进行故障排除:
-
进入 Operators
Installed Operators 页面,检查 Operator Subscriptions 和 Install Plans 选项卡中的 Status 项中是否有任何错误。 -
进入 Workloads
Pods 页面,检查项目命名空间中的 pod 日志。