4.6. 使用 GitOps ZTP 管理主机固件设置


主机需要正确的固件配置,以确保高性能和最佳性能。您可以使用 GitOps ZTP 为受管集群部署自定义主机固件配置。

使用实验室中的特定硬件配置文件调优主机,并确保它们根据您的要求进行了优化。当您对主机调整满意后,您将提取主机配置文件并将其保存到 GitOps ZTP 存储库中。然后,您可以使用主机配置集在使用 GitOps ZTP 部署的受管集群主机中配置固件设置。

您可以在用于部署受管集群的 SiteConfig 自定义资源 (CR) 中指定所需的硬件配置集。GitOps ZTP 管道生成应用到 hub 集群所需的 HostFirmwareSettings (HFS)和 BareMetalHost (BMH) CR。

使用以下最佳实践管理您的主机固件配置集。

使用硬件供应商识别关键固件设置
与硬件供应商合作,识别和记录关键主机固件设置,以获得最佳性能以及与部署的主机平台的兼容性。
在类似的硬件平台中使用通用固件配置
在可能的情况下,在类似的硬件平台间使用标准化主机固件配置,以降低部署期间的复杂性和潜在错误。
在实验室环境中测试固件配置
在生产环境中进行部署前,请在一个可以控制的实验室环境中测试主机固件配置,以确保设置与硬件、固件和软件兼容。
在源控制中管理固件配置集
在 Git 存储库中管理主机固件配置文件,以跟踪更改,确保一致性并促进与供应商协作。

4.6.1. 为受管集群检索主机固件模式

您可以为受管集群发现主机固件模式。裸机主机的主机固件模式填充 Ironic API 返回的信息。API 返回有关主机固件接口的信息,包括固件设置类型、允许值、范围和标志。

先决条件

  • 已安装 OpenShift CLI(oc)。
  • 已安装 Red Hat Advanced Cluster Management (RHACM),并以具有 cluster-admin 权限的用户身份登录 hub 集群。
  • 您已置备了由 RHACM 管理的集群。

流程

  • 发现受管集群的主机固件模式。运行以下命令:

    $ oc get firmwareschema -n <managed_cluster_namespace> -o yaml
    Copy to Clipboard Toggle word wrap

    输出示例

    apiVersion: v1
    items:
    - apiVersion: metal3.io/v1alpha1
      kind: FirmwareSchema
      metadata:
        creationTimestamp: "2024-09-11T10:29:43Z"
        generation: 1
        name: schema-40562318
        namespace: compute-1
        ownerReferences:
        - apiVersion: metal3.io/v1alpha1
          kind: HostFirmwareSettings
          name: compute-1.example.com
          uid: 65d0e89b-1cd8-4317-966d-2fbbbe033fe9
        resourceVersion: "280057624"
        uid: 511ad25d-f1c9-457b-9a96-776605c7b887
      spec:
        schema:
          AccessControlService:
            allowable_values:
            - Enabled
            - Disabled
            attribute_type: Enumeration
            read_only: false
          # ...
    Copy to Clipboard Toggle word wrap

4.6.2. 检索受管集群的主机固件设置

您可以检索受管集群的主机固件设置。当您对主机固件进行了更改,并希望监控更改并确保它们被成功应用时,这非常有用。

先决条件

  • 已安装 OpenShift CLI(oc)。
  • 已安装 Red Hat Advanced Cluster Management (RHACM),并以具有 cluster-admin 权限的用户身份登录 hub 集群。
  • 您已置备了由 RHACM 管理的集群。

流程

  1. 检索受管集群的主机固件设置。运行以下命令:

    $ oc get hostfirmwaresettings -n <cluster_namespace> <node_name> -o yaml
    Copy to Clipboard Toggle word wrap

    输出示例

    apiVersion: v1
    items:
    - apiVersion: metal3.io/v1alpha1
      kind: HostFirmwareSettings
      metadata:
        creationTimestamp: "2024-09-11T10:29:43Z"
        generation: 1
        name: compute-1.example.com
        namespace: kni-qe-24
        ownerReferences:
        - apiVersion: metal3.io/v1alpha1
          blockOwnerDeletion: true
          controller: true
          kind: BareMetalHost
          name: compute-1.example.com
          uid: 0baddbb7-bb34-4224-8427-3d01d91c9287
        resourceVersion: "280057626"
        uid: 65d0e89b-1cd8-4317-966d-2fbbbe033fe9
      spec:
        settings: {}
      status:
        conditions:
        - lastTransitionTime: "2024-09-11T10:29:43Z"
          message: ""
          observedGeneration: 1
          reason: Success
          status: "True" 
    1
    
          type: ChangeDetected
        - lastTransitionTime: "2024-09-11T10:29:43Z"
          message: Invalid BIOS setting
          observedGeneration: 1
          reason: ConfigurationError
          status: "False" 
    2
    
          type: Valid
        lastUpdated: "2024-09-11T10:29:43Z"
        schema:
          name: schema-40562318
          namespace: compute-1
        settings: 
    3
    
          AccessControlService: Enabled
          AcpiHpet: Enabled
          AcpiRootBridgePxm: Enabled
          # ...
    Copy to Clipboard Toggle word wrap

    1
    表示主机固件设置的更改已被检测到
    2
    表示主机具有无效的固件设置
    3
    配置的主机固件设置的完整列表在 status.settings 字段中返回
  2. 可选:检查集群中的 HostFirmwareSettings (hfs)自定义资源的状态:

    $ oc get hfs -n <managed_cluster_namespace> <managed_cluster_name> -o jsonpath='{.status.conditions[?(@.type=="ChangeDetected")].status}'
    Copy to Clipboard Toggle word wrap

    输出示例

    True
    Copy to Clipboard Toggle word wrap

  3. 可选:检查集群主机中的无效固件设置。运行以下命令:

    $ oc get hfs -n <managed_cluster_namespace> <managed_cluster_name> -o jsonpath='{.status.conditions[?(@.type=="Valid")].status}'
    Copy to Clipboard Toggle word wrap

    输出示例

    False
    Copy to Clipboard Toggle word wrap

您可以通过将 SiteConfig 自定义资源(CR)配置为包括要在集群主机置备过程中应用的硬件配置集,将用户定义的固件设置部署到集群主机上。在以下情况下,您可以将硬件配置集配置为应用到主机:

  • 所有主机站点范围
  • 只有满足特定条件的集群主机
  • 单个集群主机
重要

您可以将主机硬件配置文件配置为以层次结构的形式应用。集群级别设置会覆盖站点范围内的设置。节点级别配置集覆盖集群和站点范围内的设置。

先决条件

  • 已安装 OpenShift CLI(oc)。
  • 已安装 Red Hat Advanced Cluster Management (RHACM),并以具有 cluster-admin 权限的用户身份登录 hub 集群。
  • 您已置备了由 RHACM 管理的集群。
  • 您创建了 Git 存储库,用于管理自定义站点配置数据。该存储库必须可从 hub 集群访问,并定义为 Argo CD 应用程序的源仓库。

流程

  1. 创建包含您要应用的固件设置的主机固件配置集。例如,创建以下 YAML 文件:

    host-firmware.profile

    BootMode: Uefi
    LogicalProc: Enabled
    ProcVirtualization: Enabled
    Copy to Clipboard Toggle word wrap

  2. 保存相对于 kustomization.yaml 文件的硬件配置集 YAML 文件,用来定义如何置备集群,例如:

    example-ztp/install
        └── site-install
              ├── siteconfig-example.yaml
              ├── kustomization.yaml
              └── host-firmware.profile
    Copy to Clipboard Toggle word wrap
  3. 编辑 SiteConfig CR,使其包含您要在集群中应用的固件配置集。例如:

    apiVersion: ran.openshift.io/v1
    kind: SiteConfig
    metadata:
      name: "site-plan-cluster"
      namespace: "example-cluster-namespace"
    spec:
      baseDomain: "example.com"
      # ...
      biosConfigRef:
        filePath: "./host-firmware.profile" 
    1
    Copy to Clipboard Toggle word wrap
    1
    将硬件配置集应用到所有集群主机站点
    注意

    在可能的情况下,每个集群使用一个 SiteConfig CR。

  4. 可选。要将硬件配置集应用到特定集群中的主机,请使用您要应用的硬件配置集更新 clusters.biosConfigRef.filePath。例如:

    clusters:
      - clusterName: "cluster-1"
        # ...
        biosConfigRef:
          filePath: "./host-firmware.profile" 
    1
    Copy to Clipboard Toggle word wrap
    1
    适用于 cluster-1 集群中的所有主机
  5. 可选。要将硬件配置集应用到集群中的特定主机,请使用您要应用的硬件配置文件更新 clusters.nodes.biosConfigRef.filePath。例如:

    clusters:
      - clusterName: "cluster-1"
        # ...
        nodes:
          - hostName: "compute-1.example.com"
            # ...
            bootMode: "UEFI"
            biosConfigRef:
              filePath: "./host-firmware.profile" 
    1
    Copy to Clipboard Toggle word wrap
    1
    将固件配置集应用到集群中的 compute-1.example.com 主机
  6. 在 Git 存储库中提交 SiteConfig CR 及关联的 kustomization.yaml 更改并推送更改。

    ArgoCD 管道检测到更改并开始受管集群部署。

    注意

    即使检测到无效的固件设置,集群部署也会进行。要使用 GitOps ZTP 应用更正,请使用更正的硬件配置集重新部署集群。

验证

  • 检查固件设置是否已应用到受管集群主机中。例如,运行以下命令:

    $ oc get hfs -n <managed_cluster_namespace> <managed_cluster_name> -o jsonpath='{.status.conditions[?(@.type=="Valid")].status}'
    Copy to Clipboard Toggle word wrap

    输出示例

    True
    Copy to Clipboard Toggle word wrap

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat