This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.11.4. 订阅集群节点的 Redfish BMC 裸机事件
作为集群管理员,您可以通过为节点创建一个 BMCEventSubscription
自定义资源(CR)、为事件创建一个 HardwareEvent
CR 并为 BMC 创建一个 Secret
CR,订阅在集群的节点上生成的 Redfish BMC 事件。
11.4.1. 订阅裸机事件 复制链接链接已复制到粘贴板!
您可以配置基板管理控制器(BMC)将裸机事件发送到 OpenShift Container Platform 集群中运行的订阅应用程序。Redfish 裸机事件示例包括增加设备温度或删除设备。您可以使用 REST API 将应用程序订阅到裸机事件。
您只能为支持 Redfish 的物理硬件创建一个 BMCEventSubscription
自定义资源(CR),并将厂商接口设置为 redfish
或 idrac-redfish
。
使用 BMCEventSubscription
CR 订阅预定义的 Redfish 事件。Redfish 标准不提供创建特定警报和阈值的选项。例如,当机箱的温度超过 40Gb 摄氏度时收到警报事件,您必须根据供应商的建议手动配置事件。
执行以下步骤使用 BMCEventSubscription
CR 为节点订阅裸机事件。
先决条件
-
安装 OpenShift CLI(
oc
)。 -
以具有
cluster-admin
特权的用户身份登录。 - 获取 BMC 的用户名和密码。
使用集群中启用了 Redfish 的 Baseboard Management Controller(BMC)部署裸机节点,并在 BMC 上启用 Redfish 事件。
注意在特定硬件上启用 Redfish 事件超出了此信息的范围。有关为特定硬件启用 Redfish 事件的更多信息,请参阅 BMC 厂商文档。
流程
通过运行以下
curl
命令确认节点硬件启用了 RedfishEventService
:curl https://<bmc_ip_address>/redfish/v1/EventService --insecure -H 'Content-Type: application/json' -u "<bmc_username>:<password>"
curl https://<bmc_ip_address>/redfish/v1/EventService --insecure -H 'Content-Type: application/json' -u "<bmc_username>:<password>"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
- bmc_ip_address
- 是生成 Redfish 事件的 BMC 的 IP 地址。
输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,获取集群的 Bare Metal 事件中继服务路由:
oc get route -n openshift-bare-metal-events
$ oc get route -n openshift-bare-metal-events
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD hw-event-proxy hw-event-proxy-openshift-bare-metal-events.apps.compute-1.example.com hw-event-proxy-service 9087 edge None
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD hw-event-proxy hw-event-proxy-openshift-bare-metal-events.apps.compute-1.example.com hw-event-proxy-service 9087 edge None
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建一个
BMCEventSubscription
资源来订阅 Redfish 事件:可选: 要删除 BMC 事件订阅,请运行以下命令:
oc delete -f bmc_sub.yaml
$ oc delete -f bmc_sub.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选: 要在不创建
BMCEventSubscription
CR 的情况下手动创建 Redfish 事件订阅,请运行以下curl
命令并指定 BMC 用户名和密码。curl -i -k -X POST -H "Content-Type: application/json" -d '{"Destination": "https://<proxy_service_url>", "Protocol" : "Redfish", "EventTypes": ["Alert"], "Context": "root"}' -u <bmc_username>:<password> 'https://<bmc_ip_address>/redfish/v1/EventService/Subscriptions' –v
$ curl -i -k -X POST -H "Content-Type: application/json" -d '{"Destination": "https://<proxy_service_url>", "Protocol" : "Redfish", "EventTypes": ["Alert"], "Context": "root"}' -u <bmc_username>:<password> 'https://<bmc_ip_address>/redfish/v1/EventService/Subscriptions' –v
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
- proxy_service_url
-
裸机事件代理服务,例如
https://hw-event-proxy-openshift-bare-metal-events.apps.compute-1.example.com/webhook
。
- bmc_ip_address
- 是生成 Redfish 事件的 BMC 的 IP 地址。
输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.4.2. 使用 curl 查询 Redfish 裸机事件订阅 复制链接链接已复制到粘贴板!
有些硬件供应商限制 Redfish 硬件事件订阅的数量。您可以使用 curl
查询 Redfish 事件订阅的数量。
先决条件
- 获取 BMC 的用户名和密码。
- 使用集群中启用了 Redfish 的 Baseboard Management Controller(BMC)部署裸机节点,并在 BMC 上启用 Redfish 硬件事件。
流程
运行以下
curl
命令,检查 BMC 的当前订阅:curl --globoff -H "Content-Type: application/json" -k -X GET --user <bmc_username>:<password> https://<bmc_ip_address>/redfish/v1/EventService/Subscriptions
$ curl --globoff -H "Content-Type: application/json" -k -X GET --user <bmc_username>:<password> https://<bmc_ip_address>/redfish/v1/EventService/Subscriptions
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
- bmc_ip_address
- 是生成 Redfish 事件的 BMC 的 IP 地址。
输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 本例中配置了单个订阅:
/redfish/v1/EventService/Subscriptions/1
。可选: 要使用
curl
删除/redfish/v1/EventService/Subscriptions/1
订阅,请运行以下命令并指定 BMC 用户名和密码:curl --globoff -L -w "%{http_code} %{url_effective}\n" -k -u <bmc_username>:<password >-H "Content-Type: application/json" -d '{}' -X DELETE https://<bmc_ip_address>/redfish/v1/EventService/Subscriptions/1
$ curl --globoff -L -w "%{http_code} %{url_effective}\n" -k -u <bmc_username>:<password >-H "Content-Type: application/json" -d '{}' -X DELETE https://<bmc_ip_address>/redfish/v1/EventService/Subscriptions/1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
- bmc_ip_address
- 是生成 Redfish 事件的 BMC 的 IP 地址。
11.4.3. 创建裸机事件和 Secret CR 复制链接链接已复制到粘贴板!
要使用裸机事件,请为存在 Redfish 硬件的主机创建 HardwareEvent
自定义资源(CR)。在 hw-event-proxy
日志中报告硬件事件和错误。
先决条件
-
安装 OpenShift CLI(
oc
)。 -
以具有
cluster-admin
特权的用户身份登录。 - 安装裸机事件中继。
-
为 BMC Redfish 硬件创建一个
BMCEventSubscription
CR。
不允许多个 HardwareEvent
资源。
流程
创建
HardwareEvent
自定义资源(CR):将以下 YAML 保存到
hw-event.yaml
文件中:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
HardwareEvent
CR:oc create -f hardware-event.yaml
$ oc create -f hardware-event.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
创建一个 BMC 用户名和密码
Secret
CR,使硬件事件代理能够访问裸机主机的 Redfish 消息 registry。将以下 YAML 保存到
hw-event-bmc-secret.yaml
文件中:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 为
stringData
下的各种项目输入纯文本值。
创建
Secret
CR:oc create -f hw-event-bmc-secret.yaml
$ oc create -f hw-event-bmc-secret.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow