14.6. 安装程序置备的安装后配置
成功部署安装程序置备的集群后,请考虑以下安装后流程。
14.6.1. 为断开连接的集群配置 NTP
					OpenShift Container Platform 在集群节点上安装 chrony 网络时间协议(NTP)服务。使用以下步骤在 control plane 节点上配置 NTP 服务器,并将计算节点配置为成功部署后,将 worker 节点配置为 control plane 节点的 NTP 客户端。
				
OpenShift Container Platform 节点必须在日期和时间上达成一致才能正确运行。当计算节点从 control plane 节点上的 NTP 服务器检索日期和时间时,它会启用未连接到可路由网络的集群的安装和操作,因此无法访问更高的 stratum NTP 服务器。
流程
- 使用以下命令在安装主机上安装 Butane: - sudo dnf -y install butane - $ sudo dnf -y install butane- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 为 control plane 节点创建一个 Butane 配置 - 99-master-chrony-conf-override.bu,包括- chrony.conf文件的内容。注意- 如需有关 Butane 的信息,请参阅"使用 Butane 创建机器配置"。 - 但ane 配置示例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 您必须将<cluster-name>替换为集群名称,并将<domain>替换为完全限定域名。
 
- 使用 Butane 生成 - MachineConfig对象文件- 99-master-chrony-conf-override.yaml,其中包含要发送到 control plane 节点的配置:- butane 99-master-chrony-conf-override.bu -o 99-master-chrony-conf-override.yaml - $ butane 99-master-chrony-conf-override.bu -o 99-master-chrony-conf-override.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 为引用 control plane 节点上的 NTP 服务器的计算节点创建 Butane 配置 - 99-worker-chrony-conf-override.bu,包括- chrony.conf文件的内容。- 但ane 配置示例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 您必须将<cluster-name>替换为集群名称,并将<domain>替换为完全限定域名。
 
- 使用 Butane 生成 - MachineConfig对象文件- 99-worker-chrony-conf-override.yaml,其中包含要交付至 worker 节点的配置:- butane 99-worker-chrony-conf-override.bu -o 99-worker-chrony-conf-override.yaml - $ butane 99-worker-chrony-conf-override.bu -o 99-worker-chrony-conf-override.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 将 - 99-master-chrony-conf-override.yaml策略应用到 control plane 节点。- oc apply -f 99-master-chrony-conf-override.yaml - $ oc apply -f 99-master-chrony-conf-override.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - machineconfig.machineconfiguration.openshift.io/99-master-chrony-conf-override created - machineconfig.machineconfiguration.openshift.io/99-master-chrony-conf-override created- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 将 - 99-worker-chrony-conf-override.yaml策略应用到计算节点。- oc apply -f 99-worker-chrony-conf-override.yaml - $ oc apply -f 99-worker-chrony-conf-override.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - machineconfig.machineconfiguration.openshift.io/99-worker-chrony-conf-override created - machineconfig.machineconfiguration.openshift.io/99-worker-chrony-conf-override created- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 检查应用的 NTP 设置的状态。 - oc describe machineconfigpool - $ oc describe machineconfigpool- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
14.6.2. 安装后启用置备网络
					通过为裸机集群提供支持的安装程序和安装程序置备安装,可以在没有 provisioning 网络的情况下部署集群。当每个节点的基板管理控制器可以通过 baremetal 网络 路由时,此功能适用于概念验证集群或仅使用 Redfish 虚拟介质单独部署的情况。
				
					您可在安装后使用 Cluster Baremetal Operator(CBO)启用 置备 网络。
				
先决条件
- 必须存在专用物理网络,连接到所有 worker 和 control plane 节点。
- 您必须隔离原生、未标记的物理网络。
- 
							当 provisioningNetwork配置设置为Managed时,网络无法有一个 DHCP 服务器。
- 
							您可以省略 OpenShift Container Platform 4.10 中的 provisioningInterface设置,以使用bootMACAddress配置设置。
流程
- 
							设置 provisioningInterface设置时,首先确定集群节点的调配接口名称。例如:eth0oreno1。
- 
							在集群节点的 调配网络接口上启用预引导执行环境(PXE)。
- 检索 - provisioning网络的当前状态,并将其保存到 provisioning 自定义资源(CR)文件中:- oc get provisioning -o yaml > enable-provisioning-nw.yaml - $ oc get provisioning -o yaml > enable-provisioning-nw.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 修改 provisioning CR 文件: - vim ~/enable-provisioning-nw.yaml - $ vim ~/enable-provisioning-nw.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 向下滚动到 - provisioningNetwork配置设置,并将它从- Disabled改为- Managed。然后,在- provisioningNetwork设置后添加- provisioningIP、- provisioningNetworkCIDR、- provisioningDHCPRange、- provisioningInterface和- watchAllNameSpaces配置设置。为每项设置提供适当的值。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- provisioningNetwork是- Managed、- Unmanaged 或- Disabled之一。当设置为- Managed时,Metal3 管理调配网络,CBO 使用配置的 DHCP 服务器部署 Metal3 pod。当设置为- Unmanaged时,系统管理员手动配置 DHCP 服务器。
- 2
- provisioningIP是 DHCP 服务器和 ironic 用于调配网络的静态 IP 地址。这个静态 IP 地址必须在- provisioning子网内,且不在 DHCP 范围内。如果配置这个设置,它必须具有有效的 IP 地址,即使- provisioning网络是- Disabled。静态 IP 地址绑定到 metal3 pod。如果 metal3 pod 失败并移动到其他服务器,静态 IP 地址也会移到新服务器。
- 3
- 无类别域间路由(CIDR)地址。如果配置这个设置,它必须具有有效的 CIDR 地址,即使provisioning网络是Disabled。例如:192.168.0.1/24。
- 4
- DHCP 范围。此设置仅适用于受管置备网络。如果provisioning网络为Disabled,则省略此配置设置。例如:192.168.0.64, 192.168.0.253。
- 5
- 集群节点上置备接口的 NIC 名称。provisioningInterface设置仅适用于受管和非受管置备网络。如果provisioning网络为Disabled,忽略provisioningInterface配置设置。省略provisioningInterface配置设置,以使用bootMACAddress配置设置。
- 6
- 如果您希望 metal3 监视默认openshift-machine-api命名空间以外的命名空间,请将此设置设置为true。默认值为false。
 
- 保存对 provisioning CR 文件的更改。
- 将 provisioning CR 文件应用到集群: - oc apply -f enable-provisioning-nw.yaml - $ oc apply -f enable-provisioning-nw.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
14.6.2.1. 创建包含自定义 br-ex 网桥的清单对象
						除了使用 configure-ovs.sh shell 脚本在裸机平台上设置自定义 br-ex 网桥,一个替代的选择是创建一个包括自定义 br-ex 网桥网络配置的 NodeNetworkConfigurationPolicy 自定义资源(CR)。
					
							创建包含自定义 br-ex 网桥的 NodeNetworkConfigurationPolicy CR 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
						
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
此功能支持以下任务:
- 修改集群的最大传输单元 (MTU)。
- 修改不同绑定接口的属性,如 MIImon (媒体独立接口监控器)、绑定模式或服务质量 (QoS)。
- 更新 DNS 值。
						请考虑以下用例:创建包含自定义 br-ex 网桥的清单对象:
					
- 
								您需要对网桥进行安装后更改,如更改 Open vSwitch (OVS) 或 OVN-Kubernetes br-ex网桥网络。configure-ovs.shshell 脚本不支持对网桥进行安装后更改。
- 您希望将网桥部署到与主机或服务器 IP 地址上可用的接口不同的接口上。
- 
								您希望通过 configure-ovs.shshell 脚本对网桥进行高级配置。对这些配置使用脚本可能会导致网桥无法连接多个网络接口,并无法正确处理接口之间的数据转发。
先决条件
- 
								您可以使用 configure-ovs的替代方法来设置一个自定义的br-ex。
- 已安装 Kubernetes NMState Operator。
流程
- 创建 - NodeNetworkConfigurationPolicy(NNCP) CR,并定义自定义的- br-ex网桥网络配置。根据您的需要,请确保为- ipv4.address.ip、- ipv6.address.ip或这两个参数设置了一个伪装 IP。伪装 IP 地址必须与正在使用的 IP 地址块匹配。- 设置 IPv6 和 IPv4 伪装 IP 地址的 NNCP CR 示例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
14.6.3. 使用 Bare Metal Operator 配置
在裸机主机上部署 OpenShift Container Platform 时,有时在置备前或之后需要更改主机。这包括检查主机的硬件、固件和固件详情。它还可以包含格式化磁盘或更改可修改的固件设置。
您可以使用 Bare Metal Operator (BMO)来置备、管理和检查集群中的裸机主机。BMO 可以完成以下操作:
- 使用特定镜像置备裸机主机到集群。
- 打开或关闭主机。
- 检查主机的硬件详情,并将它们报告到裸机主机。
- 将主机的固件升级或降级到特定版本。
- 检查固件并配置 BIOS 设置。
- 在置备主机之前或之后清理主机的磁盘内容。
BMO 使用以下资源来完成这些任务:
- 
							BareMetalHost
- 
							HostFirmwareSettings
- 
							FirmwareSchema
- 
							HostFirmwareComponents
					BMO 通过将每个裸机主机映射到 BareMetalHost 自定义资源定义的实例来维护集群中的物理主机清单。每个 BareMetalHost 资源都有硬件、软件和固件详情。BMO 持续检查集群中的裸机主机,以确保每个 BareMetalHost 资源准确详细说明相应主机的组件。
				
					BMO 还使用 HostFirmwareSettings 资源、FirmwareSchema 资源和 HostFirmwareComponents 资源来详细说明固件规格,以及为裸机主机升级或降级固件。
				
使用 Ironic API 服务在集群中的裸机主机的 BMO 接口。Ironic 服务使用主机上的 Baseboard Management Controller (BMC) 来与机器进行接口。
14.6.3.1. 裸机 Operator 架构
Bare Metal Operator (BMO) 使用以下资源来置备、管理和检查集群中的裸机主机。下图演示了这些资源的架构:
BareMetalHost
							BareMetalHost 资源定义物理主机及其属性。将裸机主机置备到集群时,您必须为该主机定义 BareMetalHost 资源。对于主机的持续管理,您可以检查 BareMetalHost 中的信息或更新此信息。
						
						BareMetalHost 资源具有置备信息,如下所示:
					
- 部署规格,如操作系统引导镜像或自定义 RAM 磁盘
- 置备状态
- 基板管理控制器 (BMC) 地址
- 所需的电源状态
						BareMetalHost 资源具有硬件信息,如下所示:
					
- CPU 数量
- NIC 的 MAC 地址
- 主机的存储设备的大小
- 当前电源状态
HostFirmwareSettings
							您可以使用 HostFirmwareSettings 资源来检索和管理主机的固件设置。当主机进入 Available 状态时,Ironic 服务读取主机的固件设置并创建 HostFirmwareSettings 资源。BareMetalHost 资源和 HostFirmwareSettings 资源之间存在一对一映射。
						
						您可以使用 HostFirmwareSettings 资源来检查主机的固件规格,或更新主机的固件规格。
					
							在编辑 HostFirmwareSettings 资源的 spec 字段时,您必须遵循特定于供应商固件的 schema。这个模式在只读 FirmwareSchema 资源中定义。
						
FirmwareSchema
							固件设置因硬件供应商和主机模型而异。FirmwareSchema 资源是一个只读资源,其中包含每个主机模型中每个固件设置的类型和限制。数据通过使用 Ironic 服务直接从 BMC 传递。FirmwareSchema 资源允许您识别 HostFirmwareSettings 资源的 spec 字段中可以指定的有效值。
						
						如果 schema 相同,则 FirmwareSchema 资源可应用到许多 BareMetalHost 资源。
					
HostFirmwareComponents
							Metal3 提供了 HostFirmwareComponents 资源,它描述了 BIOS 和基板管理控制器 (BMC) 固件版本。您可以通过编辑 HostFirmwareComponents 资源的 spec 字段,将主机的固件升级到一个特定版本。这在使用针对特定固件版本测试的验证模式部署时很有用。
						
14.6.3.2. 关于 BareMetalHost 资源
						裸机3 引入了 BareMetalHost 资源的概念,它定义了物理主机及其属性。BareMetalHost 资源包含两个部分:
					
- 
								BareMetalHost规格
- 
								BareMetalHost状态
14.6.3.2.1. BareMetalHost 规格
							BareMetalHost 资源的 spec 部分定义了主机所需状态。
						
| 参数 | 描述 | 
|---|---|
| 
											 | 
											在置备和取消置备过程中启用或禁用自动清理的接口。当设置为  | 
| bmc: address: credentialsName: disableCertificateVerification:  | 
											 
 | 
| 
											 | 用于置备主机的 NIC 的 MAC 地址。 | 
| 
											 | 
											主机的引导模式。它默认为  | 
| 
											 | 
											对使用主机的另一个资源的引用。如果另一个资源目前没有使用主机,则它可能为空。例如,当  | 
| 
											 | 提供的字符串,用于帮助识别主机。 | 
| 
											 | 指明主机置备和取消置备是在外部管理的布尔值。当设置时: 
 | 
| 
											 | 
											包含有关裸机主机的 BIOS 配置的信息。目前,只有 iRMC、S iDRAC、i iLO4 和 iLO5 BMC 支持  
 | 
| image: url: checksum: checksumType: format:  | 
											 
 | 
| 
											 | 对包含网络配置数据及其命名空间的 secret 的引用,以便在主机引导以设置网络前将其附加到主机。 | 
| 
											 | 
											指示主机是否应开启的布尔值, | 
| raid: hardwareRAIDVolumes: softwareRAIDVolumes:  | (可选)包含有关裸机主机的 RAID 配置的信息。如果没有指定,它会保留当前的配置。 注意 OpenShift Container Platform 4.17 支持 BMC 的硬件 RAID,包括: 
 OpenShift Container Platform 4.17 不支持软件 RAID。 请参见以下配置设置: 
 
											您可以将  spec:
   raid:
     hardwareRAIDVolume: []
											如果您收到出错信息表示驱动程序不支持 RAID,则将  | 
|  | 
											 
 | 
14.6.3.2.2. BareMetalHost 状态
							BareMetalHost 状态代表主机的当前状态,包括经过测试的凭证、当前的硬件详情和其他信息。
						
| 参数 | 描述 | 
|---|---|
| 
											 | 对 secret 及其命名空间的引用,其中包含最近一组基板管理控制器(BMC)凭证,以便系统能够验证。 | 
| 
											 | 置备后端的最后一个错误的详情(若有)。 | 
| 
											 | 表示导致主机进入错误状态的问题类别。错误类型包括: 
 | 
|  | 
											系统中的 CPU 的  
 | 
| hardware: firmware:  | 包含 BIOS 固件信息。例如,硬件供应商和版本。 | 
|  | 
											 
 | 
| hardware: ramMebibytes:  | 主机的内存量(兆字节(MiB))。 | 
|  | 
											 
 | 
| hardware:
  systemVendor:
    manufacturer:
    productName:
    serialNumber: | 
											包含主机的  | 
| 
											 | 主机状态最后一次更新的时间戳。 | 
| 
											 | 服务器的状态。状态为以下之一: 
 | 
| 
											 | 指明主机是否开机的布尔值。 | 
|  | 
											 
 | 
| 
											 | 对 secret 及其命名空间的引用,其中包含发送到置备后端的最后一个 BMC 凭证集合。 | 
14.6.3.3. 获取 BareMetalHost 资源
						BareMetalHost 资源包含物理主机的属性。您必须获取物理主机的 BareMetalHost 资源才能查看其属性。
					
流程
- 获取 - BareMetalHost资源列表:- oc get bmh -n openshift-machine-api -o yaml - $ oc get bmh -n openshift-machine-api -o yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 注意- 您可以使用 - baremetalhost作为- oc get命令的- bmh长形式。
- 获取主机列表: - oc get bmh -n openshift-machine-api - $ oc get bmh -n openshift-machine-api- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 获取特定主机的 - BareMetalHost资源:- oc get bmh <host_name> -n openshift-machine-api -o yaml - $ oc get bmh <host_name> -n openshift-machine-api -o yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 其中 - <host_name>是主机的名称。- 输出示例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
14.6.3.4. 编辑 BareMetalHost 资源
						在裸机上部署 OpenShift Container Platform 集群后,您可能需要编辑节点的 BareMetalHost 资源。请考虑以下示例:
					
- 您可以使用 Assisted Installer 部署集群,并需要添加或编辑基板管理控制器 (BMC) 主机名或 IP 地址。
- 您需要在不取消置备的情况下将节点从一个集群移到另一个集群。
先决条件
- 
								确保节点处于 Provisioned,ExternallyProvisioned, 或Available状态。
流程
- 获取节点列表: - oc get bmh -n openshift-machine-api - $ oc get bmh -n openshift-machine-api- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 在编辑节点的 - BareMetalHost资源前,运行以下命令从 Ironic 分离节点:- oc annotate baremetalhost <node_name> -n openshift-machine-api 'baremetalhost.metal3.io/detached=true' - $ oc annotate baremetalhost <node_name> -n openshift-machine-api 'baremetalhost.metal3.io/detached=true'- 1 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 将<node_name>替换为节点的名称。
 
- 运行以下命令来编辑 - BareMetalHost资源:- oc edit bmh <node_name> -n openshift-machine-api - $ oc edit bmh <node_name> -n openshift-machine-api- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 运行以下命令,将节点重新附加到 Ironic: - oc annotate baremetalhost <node_name> -n openshift-machine-api 'baremetalhost.metal3.io/detached'- - $ oc annotate baremetalhost <node_name> -n openshift-machine-api 'baremetalhost.metal3.io/detached'-- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
14.6.3.5. 删除 BareMetalHost 资源时的延迟故障排除
						当 Bare Metal Operator (BMO)删除 BareMetalHost 资源时,Ironic 会使用名为 cleaning 的进程取消置备裸机主机。当清理失败时,Ironic 会重试清理过程三次,这是延迟的来源。清理过程可能无法成功,从而导致裸机主机的置备状态无限期处于 deleting 状态。当发生这种情况时,请使用以下步骤禁用清理过程。
					
							不要从 BareMetalHost 资源中删除终结器。
						
流程
- 如果清理过程失败并重启,请等待它完成。这大约可能需要 5 分钟。
- 
								如果置备状态处于 delete 状态,请通过修改 BareMetalHost资源并将automatedCleaningMode字段设置为disabled来禁用清理过程。
如需了解更多详细信息,请参阅"编辑 BareMetalHost 资源"。
14.6.3.6. 将不可启动的 ISO 附加到裸机节点
						您可以使用 DataImage 资源将通用、不可启动的 ISO 虚拟介质镜像附加到置备的节点上。在应用了资源后,操作系统引导后,ISO 镜像将可以被操作系统访问。这可用于在置备操作系统后配置节点,并在节点第一次引导前配置节点。
					
先决条件
- 节点必须使用 Redfish 或从中派生的驱动程序来支持此功能。
- 
								节点必须处于 Provisioned或ExternallyProvisioned状态。
- 
								名称必须与其在BareMetalHost资源中定义的节点名称相同。
- 
								有 ISO 镜像的有效 url。
流程
- 创建一个 - DataImage资源:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 运行以下命令,将 - DataImage资源保存到文件中:- vim <node_name>-dataimage.yaml - $ vim <node_name>-dataimage.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 运行以下命令来应用 - DataImage资源:- oc apply -f <node_name>-dataimage.yaml -n <node_namespace> - $ oc apply -f <node_name>-dataimage.yaml -n <node_namespace>- 1 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 替换<node_namespace>,以便命名空间与BareMetalHost资源的命名空间匹配。例如,openshift-machine-api。
 
- 重新引导节点。 注意- 要重新引导节点,请附加 - reboot.metal3.io注解,或重置- BareMetalHost资源中的- online状态。对裸机节点强制重启会使节点的状态在一段事件内变为- NotReady。例如,5 分钟或更长时间。
- 运行以下命令来查看 - DataImage资源:- oc get dataimage <node_name> -n openshift-machine-api -o yaml - $ oc get dataimage <node_name> -n openshift-machine-api -o yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
14.6.3.7. 关于 HostFirmwareSettings 资源
						您可以使用 HostFirmwareSettings 资源来检索和管理主机的 BIOS 设置。当主机进入 Available 状态时,Ironic 会读取主机的 BIOS 设置并创建 HostFirmwareSettings 资源。资源包含从基板管理控制器(BMC)返回的完整 BIOS 配置。BareMetalHost 资源中的 firmware 字段会返回三个供应商独立的字段,HostFirmwareSettings 资源通常包含每个主机中特定供应商的字段的许多 BIOS 设置。
					
						HostFirmwareSettings 资源包含两个部分:
					
- 
								HostFirmwareSettingsspec。
- 
								HostFirmwareSettings状态。
14.6.3.7.1. HostFirmwareSettings spec
							HostFirmwareSettings 资源的 spec 部分定义了主机的 BIOS 所需的状态,默认为空。Ironic 使用 spec.settings 部分中的设置,在主机处于 Preparing 状态时更新基板管理控制器(BMC)。使用 FirmwareSchema 资源,确保不向主机发送无效的名称/值对。如需了解更多详细信息,请参阅 "About the FirmwareSchema resource"。
						
示例
spec:
  settings:
    ProcTurboMode: Disabled
spec:
  settings:
    ProcTurboMode: Disabled- 1
- 在foregoing示例中,spec.settings部分包含一个 name/value 对,它将把ProcTurboModeBIOS 设置为Disabled。
								status 部分中列出的整数参数显示为字符串。例如,"1"。当在 spec.settings 部分中设置整数时,这些值应设置为不带引号的整数。例如,1.
							
14.6.3.7.2. HostFirmwareSettings 状态
							status 代表主机的 BIOS 的当前状态。
						
| 参数 | 描述 | 
|---|---|
|  | 
											 
 | 
| status:
  schema:
    name:
    namespace:
    lastUpdated: | 
											固件设置的  
 | 
| status: settings:  | 
											 | 
14.6.3.8. 获取 HostFirmwareSettings 资源
						HostFirmwareSettings 资源包含物理主机的特定于供应商的 BIOS 属性。您必须获取物理主机的 HostFirmwareSettings 资源才能查看其 BIOS 属性。
					
流程
- 获取 - HostFirmwareSettings资源的详细列表:- oc get hfs -n openshift-machine-api -o yaml - $ oc get hfs -n openshift-machine-api -o yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 注意- 您可以使用 - hostfirmwaresettings作为- oc get命令的- hfs长形式。
- 获取 - HostFirmwareSettings资源列表:- oc get hfs -n openshift-machine-api - $ oc get hfs -n openshift-machine-api- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 获取特定主机的 - HostFirmwareSettings资源- oc get hfs <host_name> -n openshift-machine-api -o yaml - $ oc get hfs <host_name> -n openshift-machine-api -o yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 其中 - <host_name>是主机的名称。
14.6.3.9. 编辑 HostFirmwareSettings 资源
						您可以编辑已置备的主机的 HostFirmwareSettings。
					
							您只能在主机处于 provisioned 状态时编辑主机,不包括只读值。您不能编辑状态为 externally provisioned 的主机。
						
流程
- 获取 - HostFirmwareSettings资源列表:- oc get hfs -n openshift-machine-api - $ oc get hfs -n openshift-machine-api- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 编辑主机的 - HostFirmwareSettings资源:- oc edit hfs <host_name> -n openshift-machine-api - $ oc edit hfs <host_name> -n openshift-machine-api- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 其中 - <host_name>是置备的主机的名称。- HostFirmwareSettings资源将在终端的默认编辑器中打开。
- 将 name/value 对添加到 - spec.settings部分:- 示例 - spec: settings: name: value- spec: settings: name: value- 1 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 使用FirmwareSchema资源来识别主机的可用设置。您不能设置只读值。
 
- 保存更改并退出编辑器。
- 获取主机的机器名称: - oc get bmh <host_name> -n openshift-machine name - $ oc get bmh <host_name> -n openshift-machine name- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 其中 - <host_name>是主机的名称。机器名称会出现在- CONSUMER字段下。
- 注解机器将其从 machineset 中删除: - oc annotate machine <machine_name> machine.openshift.io/delete-machine=true -n openshift-machine-api - $ oc annotate machine <machine_name> machine.openshift.io/delete-machine=true -n openshift-machine-api- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 其中 - <machine_name>是要删除的机器的名称。
- 获取节点列表并计算 worker 节点数量: - oc get nodes - $ oc get nodes- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 获取 machineset: - oc get machinesets -n openshift-machine-api - $ oc get machinesets -n openshift-machine-api- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 缩放 machineset: - oc scale machineset <machineset_name> -n openshift-machine-api --replicas=<n-1> - $ oc scale machineset <machineset_name> -n openshift-machine-api --replicas=<n-1>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 其中 - <machineset_name>是 machineset 的名称,- <n-1>是 worker 节点数量的减少。
- 当主机进入 - Available状态时,扩展 machineset,使- HostFirmwareSettings资源更改生效:- oc scale machineset <machineset_name> -n openshift-machine-api --replicas=<n> - $ oc scale machineset <machineset_name> -n openshift-machine-api --replicas=<n>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 其中 - <machineset_name>是 machineset 的名称,- <n>是 worker 节点的数量。
14.6.3.10. 验证 HostFirmware Settings 资源是否有效
						当用户编辑 spec.settings 部分以更改为 HostFirmwareSetting(HFS)资源时,BMO 会针对 FimwareSchema 资源验证更改,这是只读资源。如果设置无效,BMO 会将 status.Condition 的 Type 值设置为 False,并生成事件并将其存储在 HFS 资源中。使用以下步骤验证资源是否有效。
					
流程
- 获取 - HostFirmwareSetting资源列表:- oc get hfs -n openshift-machine-api - $ oc get hfs -n openshift-machine-api- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 验证特定主机的 - HostFirmwareSettings资源是否有效:- oc describe hfs <host_name> -n openshift-machine-api - $ oc describe hfs <host_name> -n openshift-machine-api- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 其中 - <host_name>是主机的名称。- 输出示例 - Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal ValidationFailed 2m49s metal3-hostfirmwaresettings-controller Invalid BIOS setting: Setting ProcTurboMode is invalid, unknown enumeration value - Foo - Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal ValidationFailed 2m49s metal3-hostfirmwaresettings-controller Invalid BIOS setting: Setting ProcTurboMode is invalid, unknown enumeration value - Foo- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 重要- 如果响应返回 - ValidationFailed,资源配置中会出现一个错误,您必须更新这些值以符合- FirmwareSchema资源。
14.6.3.11. 关于 FirmwareSchema 资源
						BIOS 设置因硬件供应商和主机模型而异。FirmwareSchema 资源是一个只读资源,其中包含每个主机模型中的每个 BIOS 设置的类型和限值。数据直接通过 Ironic 来自 BMC。FirmwareSchema 允许您识别 HostFirmwareSettings 资源的 spec 字段中可以指定的有效值。FirmwareSchema 资源具有从其设置和限值派生的唯一标识符。相同的主机模型使用相同的 FirmwareSchema 标识符。HostFirmwareSettings 的多个实例可能使用相同的 FirmwareSchema。
					
| 参数 | 描述 | 
|---|---|
|  | 
										 
 | 
14.6.3.12. 获取 FirmwareSchema 资源
						每个供应商的每个主机模型都有不同的 BIOS 设置。在编辑 HostFirmwareSettings 资源的 spec 部分时,您设置的名称/值对必须符合该主机的固件模式。要确保设置有效的名称/值对,请获取主机的 FirmwareSchema 并查看它。
					
流程
- 要获得 - FirmwareSchema资源实例列表,请执行以下操作:- oc get firmwareschema -n openshift-machine-api - $ oc get firmwareschema -n openshift-machine-api- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 要获得特定 - FirmwareSchema实例,请执行:- oc get firmwareschema <instance_name> -n openshift-machine-api -o yaml - $ oc get firmwareschema <instance_name> -n openshift-machine-api -o yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 其中 - <instance_name>是- HostFirmwareSettings资源中所述的 schema 实例的名称(请参阅表 3)。
14.6.3.13. 关于 HostFirmwareComponents 资源
						Metal3 提供了 HostFirmwareComponents 资源,它描述了 BIOS 和基板管理控制器 (BMC) 固件版本。HostFirmwareComponents 资源包含两个部分:
					
- 
								HostFirmwareComponentsspec
- 
								HostFirmwareComponents状态
14.6.3.13.1. HostFirmwareComponents spec
							HostFirmwareComponents 资源的 spec 部分定义主机的 BIOS 和 BMC 版本的所需状态。
						
| 参数 | 描述 | 
|---|---|
| updates: component: url:  | 
											 
 | 
14.6.3.13.2. HostFirmwareComponents 状态
							HostFirmwareComponents 资源的 status 部分返回主机的 BIOS 和 BMC 版本的当前状态。
						
| 参数 | 描述 | 
|---|---|
|  | 
											 
 | 
| updates: component: url:  | 
											 
 | 
14.6.3.14. 获取 HostFirmwareComponents 资源
						HostFirmwareComponents 资源包含 BIOS 的特定固件版本,以及物理主机的基板管理控制器 (BMC)。您必须获取物理主机的 HostFirmwareComponents 资源,才能查看固件版本和状态。
					
流程
- 获取 - HostFirmwareComponents资源的详细列表:- oc get hostfirmwarecomponents -n openshift-machine-api -o yaml - $ oc get hostfirmwarecomponents -n openshift-machine-api -o yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 获取 - HostFirmwareComponents资源列表:- oc get hostfirmwarecomponents -n openshift-machine-api - $ oc get hostfirmwarecomponents -n openshift-machine-api- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 获取特定主机的 - HostFirmwareComponents资源:- oc get hostfirmwarecomponents <host_name> -n openshift-machine-api -o yaml - $ oc get hostfirmwarecomponents <host_name> -n openshift-machine-api -o yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 其中 - <host_name>是主机的名称。- 输出示例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
14.6.3.15. 编辑 HostFirmwareComponents 资源
						您可以编辑节点的 HostFirmwareComponents 资源。
					
流程
- 获取 - HostFirmwareComponents资源的详细列表:- oc get hostfirmwarecomponents -n openshift-machine-api -o yaml - $ oc get hostfirmwarecomponents -n openshift-machine-api -o yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 编辑主机的 - HostFirmwareComponents资源:- oc edit <host_name> hostfirmwarecomponents -n openshift-machine-api - $ oc edit <host_name> hostfirmwarecomponents -n openshift-machine-api- 1 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 其中<host_name>是主机的名称。HostFirmwareComponents资源将在终端的默认编辑器中打开。
 - 输出示例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 保存更改并退出编辑器。
- 获取主机的机器名称: - oc get bmh <host_name> -n openshift-machine name - $ oc get bmh <host_name> -n openshift-machine name- 1 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 其中<host_name>是主机的名称。机器名称会出现在CONSUMER字段下。
 
- 注解机器将其从机器集中删除: - oc annotate machine <machine_name> machine.openshift.io/delete-machine=true -n openshift-machine-api - $ oc annotate machine <machine_name> machine.openshift.io/delete-machine=true -n openshift-machine-api- 1 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 其中<machine_name>是要删除的机器的名称。
 
- 获取节点列表并计算 worker 节点数量: - oc get nodes - $ oc get nodes- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 获取机器集: - oc get machinesets -n openshift-machine-api - $ oc get machinesets -n openshift-machine-api- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 扩展机器集: - oc scale machineset <machineset_name> -n openshift-machine-api --replicas=<n-1> - $ oc scale machineset <machineset_name> -n openshift-machine-api --replicas=<n-1>- 1 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 其中<machineset_name>是集群集的名称,<n-1>是减少的 worker 节点数量。
 
- 当主机进入 - Available状态时,扩展 machineset,使- HostFirmwareComponents资源更改生效:- oc scale machineset <machineset_name> -n openshift-machine-api --replicas=<n> - $ oc scale machineset <machineset_name> -n openshift-machine-api --replicas=<n>- 1 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 其中<machineset_name>是机器集的名称,<n>是 worker 节点的数量。
 
 
    