第 3 章 裸机配置
在裸机主机上部署 OpenShift Container Platform 时,在置备前或置备后,有时您需要对主机进行更改。这包括检查主机的硬件、固件和固件详情。它还可以包含格式化磁盘或更改可修改的固件设置。
3.1. 关于 Bare Metal Operator
使用 Bare Metal Operator (BMO) 来置备、管理和检查集群中的裸机主机。
BMO 使用以下资源来完成这些任务:
-
BareMetalHost
-
HostFirmwareSettings
-
FirmwareSchema
-
HostFirmwareComponents
BMO 通过将每个裸机主机映射到 BareMetalHost
自定义资源定义的实例来维护集群中的物理主机清单。每个 BareMetalHost
资源都有硬件、软件和固件详情。BMO 持续检查集群中的裸机主机,以确保每个 BareMetalHost
资源准确详细说明相应主机的组件。
BMO 还使用 HostFirmwareSettings
资源、FirmwareSchema
资源和 HostFirmwareComponents
资源来详细说明固件规格,以及为裸机主机升级或降级固件。
使用 Ironic API 服务在集群中的裸机主机的 BMO 接口。Ironic 服务使用主机上的 Baseboard Management Controller (BMC) 来与机器进行接口。
使用 BMO 可以完成的一些常见任务包括:
- 使用特定镜像置备裸机主机到集群
- 在置备前或取消置备后格式化主机的磁盘内容
- 打开或关闭主机
- 更改固件设置
- 查看主机的硬件详情
- 将主机的固件升级或降级到一个特定版本
3.1.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
字段,将主机的固件升级到一个特定版本。这在使用针对特定固件版本测试的验证模式部署时很有用。
3.1.2. 可选:创建包含一个自定义 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.sh
shell 脚本不支持对网桥进行安装后更改。 - 您希望将网桥部署到与主机或服务器 IP 地址上可用的接口不同的接口上。
-
您希望通过
configure-ovs.sh
shell 脚本对网桥进行高级配置。对这些配置使用脚本可能会导致网桥无法连接多个网络接口,并无法正确处理接口之间的数据转发。
先决条件
-
您可以使用
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 示例
apiVersion: nmstate.io/v1 kind: NodeNetworkConfigurationPolicy metadata: name: worker-0-br-ex 1 spec: nodeSelector: kubernetes.io/hostname: worker-0 desiredState: interfaces: - name: enp2s0 2 type: ethernet 3 state: up 4 ipv4: enabled: false 5 ipv6: enabled: false - name: br-ex type: ovs-bridge state: up ipv4: enabled: false dhcp: false ipv6: enabled: false dhcp: false bridge: port: - name: enp2s0 6 - name: br-ex - name: br-ex type: ovs-interface state: up copy-mac-from: enp2s0 ipv4: enabled: true dhcp: true address: - ip: "169.254.169.2" prefix-length: 29 ipv6: enabled: false dhcp: false address: - ip: "fd69::2" prefix-length: 125