×

安装程序预配的 OpenShift Container Platform 安装需要:

  1. 一个安装了 Red Hat Enterprise Linux (RHEL) 9.x 的供应程序节点。安装后可以移除供应程序。

  2. 三个控制平面节点

  3. 每个节点的底板管理控制器 (BMC) 访问权限

  4. 至少一个网络

    1. 一个必需的可路由网络

    2. 一个可选的供应网络

    3. 一个可选的管理网络

在开始安装程序预配的 OpenShift Container Platform 安装之前,请确保硬件环境满足以下要求。

节点需求

安装程序预配的安装涉及许多硬件节点需求

  • CPU 架构:所有节点必须使用x86_64aarch64 CPU 架构。

  • 类似的节点:Red Hat 建议每个角色的节点具有相同的配置。也就是说,Red Hat 建议节点具有相同的品牌和型号,并具有相同的 CPU、内存和存储配置。

  • 底板管理控制器:供应程序节点必须能够访问每个 OpenShift Container Platform 集群节点的底板管理控制器 (BMC)。您可以使用 IPMI、Redfish 或专有协议。

  • 最新一代:节点必须是最新一代的。安装程序预配的安装依赖于 BMC 协议,这些协议必须在节点之间兼容。此外,RHEL 9.x 附带了 RAID 控制器的最新驱动程序。确保节点足够新,以支持供应程序节点的 RHEL 9.x 和控制平面和工作节点的 RHCOS 9.x。

  • 注册表节点:(可选)如果设置断开的镜像注册表,建议注册表位于其自己的节点中。

  • 供应程序节点:安装程序预配的安装需要一个供应程序节点。

  • 控制平面: 安装程序配置的安装需要三个控制平面节点以实现高可用性。您可以只用三个控制平面节点部署 OpenShift Container Platform 集群,从而使控制平面节点可调度为工作节点。对于开发人员和管理员而言,较小的集群在开发、生产和测试期间更有效率。

  • 工作节点:虽然不是必需的,但典型的生产集群有两个或更多个工作节点。

    不要只部署一个工作节点的集群,因为集群将以降级状态部署路由器和入口流量。

  • 网络接口:每个节点必须至少有一个网络接口用于可路由的baremetal网络。使用provisioning网络进行部署时,每个节点必须有一个用于provisioning网络的网络接口。使用provisioning网络是默认配置。

    同一子网上的只有一块网卡 (NIC) 可以通过网关路由流量。默认情况下,地址解析协议 (ARP) 使用编号最低的 NIC。在同一子网中为每个节点使用单个 NIC,以确保网络负载均衡按预期工作。当同一子网中的节点使用多个 NIC 时,请使用单个 bond 或 team 接口。然后以别名 IP 地址的形式将其他 IP 地址添加到该接口。如果您需要网络接口级别的容错或负载均衡,请在 bond 或 team 接口上使用别名 IP 地址。或者,您可以禁用同一子网上的辅助 NIC 或确保它没有 IP 地址。

  • 统一可扩展固件接口 (UEFI):provisioning网络上使用 IPv6 地址时,安装程序配置的安装需要在所有 OpenShift Container Platform 节点上进行 UEFI 引导。此外,UEFI 设备 PXE 设置必须设置为在provisioning网络 NIC 上使用 IPv6 协议,但是省略provisioning网络会移除此要求。

    从虚拟介质(例如 ISO 映像)启动安装时,请删除所有旧的 UEFI 引导表条目。如果引导表包含的条目不是固件提供的通用条目,则安装可能会失败。

  • 安全启动:许多生产场景需要启用安全启动的节点,以验证节点仅使用受信任的软件引导,例如 UEFI 固件驱动程序、EFI 应用程序和操作系统。您可以手动或管理方式部署安全启动。

    1. 手动:要手动部署具有安全启动的 OpenShift Container Platform 集群,必须在每个控制平面节点和每个工作节点上启用 UEFI 引导模式和安全启动。仅当安装程序配置的安装使用 Redfish 虚拟介质时,Red Hat 才支持手动启用 UEFI 和安全启动的安全启动。有关更多详细信息,请参阅“配置节点”部分中的“手动配置节点以进行安全启动”。

    2. 管理:要部署具有管理的安全启动的 OpenShift Container Platform 集群,必须在install-config.yaml文件中将bootMode值设置为UEFISecureBoot。Red Hat 仅支持在运行固件版本2.75.75.75或更高版本的第 10 代 HPE 硬件和第 13 代 Dell 硬件上使用管理的安全启动进行安装程序配置的安装。使用管理的安全启动部署不需要 Redfish 虚拟介质。有关详细信息,请参阅“设置 OpenShift 安装的环境”部分中的“配置管理的安全启动”。

      Red Hat 不支持管理自生成的密钥或其他安全启动密钥。

集群安装的最低资源要求

每个集群机器必须满足以下最低要求

表 1. 最低资源要求
机器 操作系统 CPU [1] RAM 存储 每秒输入/输出 (IOPS)[2]

引导程序

RHEL

4

16 GB

100 GB

300

控制平面

RHCOS

4

16 GB

100 GB

300

计算

RHCOS

2

8 GB

100 GB

300

  1. 当未启用同时多线程 (SMT) 或超线程时,一个 CPU 等效于一个物理核心。启用后,请使用以下公式计算相应的比率:(每核线程数 × 核数) × 插槽数 = CPU 数。

  2. OpenShift Container Platform 和 Kubernetes 对磁盘性能很敏感,建议使用更快的存储,特别是对于控制平面节点上的 etcd。请注意,在许多云平台上,存储大小和 IOPS 共同扩展,因此您可能需要过度分配存储卷才能获得足够的性能。

从 OpenShift Container Platform 4.13 版本开始,RHCOS 基于 RHEL 9.2 版本,更新了微架构要求。以下列表包含每种架构所需的最低指令集架构 (ISA):

  • x86-64 架构需要 x86-64-v2 ISA

  • ARM64 架构需要 ARMv8.0-A ISA

  • IBM Power 架构需要 Power 9 ISA

  • s390x 架构需要 z14 ISA

有关更多信息,请参阅RHEL 架构

如果平台的实例类型满足集群机器的最低要求,则支持在 OpenShift Container Platform 中使用。

规划用于 OpenShift Virtualization 的裸机集群

如果您将使用 OpenShift Virtualization,则在安装裸机集群之前务必了解一些要求。

  • 如果您想使用实时迁移功能,则在集群安装时必须有多个工作节点。这是因为实时迁移需要将集群级别高可用性 (HA) 标志设置为 true。HA 标志在安装集群时设置,之后无法更改。如果在安装集群时定义的工作节点少于两个,则集群的整个生命周期中 HA 标志将设置为 false。

    您可以在单节点集群上安装 OpenShift Virtualization,但单节点 OpenShift 不支持高可用性。

  • 实时迁移需要共享存储。OpenShift Virtualization 的存储必须支持并使用 ReadWriteMany (RWX) 访问模式。

  • 如果您计划使用单根 I/O 虚拟化 (SR-IOV),请确保您的网络接口控制器 (NIC) 受 OpenShift Container Platform 支持。

使用虚拟介质安装的固件要求

安装程序配置的 OpenShift Container Platform 集群的安装程序会验证硬件和固件与 Redfish 虚拟介质的兼容性。如果节点固件不兼容,则安装程序不会在节点上开始安装。下表列出了经过测试和验证可用于使用 Redfish 虚拟介质部署的安装程序配置的 OpenShift Container Platform 集群的最低固件版本。

Red Hat 不会测试每种固件、硬件或其他第三方组件的组合。有关第三方支持的更多信息,请参阅Red Hat 第三方支持策略。有关更新固件的信息,请参阅节点的硬件文档或联系硬件供应商。

表 2. 使用 Redfish 虚拟介质的 HP 硬件的固件兼容性
型号 管理 固件版本

第 11 代

iLO6

1.57 或更高版本

第 10 代

iLO5

2.63 或更高版本

表 3. 使用 Redfish 虚拟介质的 Dell 硬件的固件兼容性
型号 管理 固件版本

第 16 代

iDRAC 9

v7.10.70.00

第 15 代

iDRAC 9

v6.10.30.00 和 v7.10.70.00

第 14 代

iDRAC 9

v6.10.30.00

第 13 代

iDRAC 8

v2.75.75.75 或更高版本

表 4. 使用 Redfish 虚拟介质的 Cisco UCS 硬件的固件兼容性
型号 管理 固件版本

UCS X 系列服务器 [1]

CIMC

5.2(2) 或更高版本

UCS 托管域中的 UCS C 系列服务器

CIMC

4.3 或更高版本

网络要求

OpenShift Container Platform 的安装程序配置安装涉及多个网络需求。首先,安装程序配置安装涉及一个可选的不可路由provisioning网络,用于在每个裸机节点上配置操作系统。其次,安装程序配置安装涉及一个可路由baremetal网络。

Installer-provisioned networking

确保所需端口已打开

为了成功完成安装程序配置安装,集群节点之间必须打开某些端口。在某些情况下,例如为远端边缘工作节点使用单独的子网,您必须确保这些子网中的节点可以通过以下所需端口与其他子网中的节点通信。

表 5. 所需端口
端口 描述

67,68

使用配置网络时,集群节点通过其配置网络接口使用端口6768访问dnsmasq DHCP 服务器。

69

使用配置网络时,集群节点使用其配置网络接口通过端口69与 TFTP 服务器通信。TFTP 服务器运行在引导 VM 上。引导 VM 运行在配置节点上。

80

不使用镜像缓存选项或使用虚拟介质时,配置节点必须在其baremetal机器网络接口上打开端口80,以便将 Red Hat Enterprise Linux CoreOS (RHCOS) 镜像从配置节点流式传输到集群节点。

123

集群节点必须使用baremetal机器网络通过端口123访问 NTP 服务器。

5050

Ironic Inspector API 运行在控制平面节点上,并在端口5050监听。Inspector API 负责硬件自检,收集有关裸机节点硬件特征的信息。

5051

端口5050使用端口5051作为代理。

6180

使用虚拟介质且不使用 TLS 时,配置节点和控制平面节点必须在其baremetal机器网络接口上打开端口6180,以便工作节点的底板管理控制器 (BMC) 可以访问 RHCOS 镜像。从 OpenShift Container Platform 4.13 开始,默认 HTTP 端口为6180

6183

使用虚拟介质并使用 TLS 时,配置节点和控制平面节点必须在其baremetal机器网络接口上打开端口6183,以便工作节点的 BMC 可以访问 RHCOS 镜像。

6385

Ironic API 服务器最初运行在引导 VM 上,之后运行在控制平面节点上,并在端口6385监听。Ironic API 允许客户端与 Ironic 交互以进行裸机节点配置和管理,包括注册新节点、管理其电源状态、部署镜像和清理硬件等操作。

6388

端口6385使用端口6388作为代理。

8080

使用镜像缓存且不使用 TLS 时,端口8080必须在配置节点上打开,并且集群节点的 BMC 接口可以访问它。

8083

使用镜像缓存选项并使用 TLS 时,端口8083必须在配置节点上打开,并且集群节点的 BMC 接口可以访问它。

9999

默认情况下,Ironic Python Agent (IPA) 在 TCP 端口9999上监听来自 Ironic 调度程序服务的 API 调用。运行 IPA 的裸机节点与 Ironic 调度程序服务之间的通信使用此端口。

增加网络 MTU

在部署 OpenShift Container Platform 之前,请将网络最大传输单元 (MTU) 增加到 1500 或更大。如果 MTU 低于 1500,则用于引导节点的 Ironic 镜像可能无法与 Ironic inspector pod 通信,并且检查将失败。如果发生这种情况,安装将停止,因为节点不可用于安装。

配置网卡

OpenShift Container Platform 部署时使用两个网络

  • provisioningprovisioning网络是一个可选的不可路由网络,用于在属于 OpenShift Container Platform 集群的每个节点上配置底层操作系统。每个集群节点上provisioning网络的网络接口必须将 BIOS 或 UEFI 配置为 PXE 引导。

    provisioningNetworkInterface 配置设置指定控制平面节点上的provisioning网络网卡名称,该名称在控制平面节点上必须相同。bootMACAddress 配置设置提供了一种方法来为provisioning网络上的每个节点指定特定网卡。

    provisioning网络是可选的,但对于 PXE 引导是必需的。如果您没有provisioning网络进行部署,则必须使用虚拟介质 BMC寻址选项,例如redfish-virtualmediaidrac-virtualmedia

  • baremetalbaremetal网络是一个可路由网络。您可以使用任何网卡与baremetal网络接口,前提是该网卡未配置为使用provisioning网络。

使用 VLAN 时,每个网卡必须位于与相应网络对应的单独 VLAN 上。

DNS 需求

客户端通过baremetal网络访问 OpenShift Container Platform 集群节点。网络管理员必须配置一个子域或子区域,其中规范名称扩展名是集群名称。

<cluster_name>.<base_domain>

例如

test-cluster.example.com

OpenShift Container Platform 包含使用集群成员信息生成 A/AAAA 记录的功能。这会将节点名称解析为其 IP 地址。节点注册到 API 后,集群可以使用此功能在不使用 CoreDNS-mDNS 的情况下分发节点信息。这消除了与组播 DNS 相关的网络流量。

CoreDNS 需要与上游 DNS 服务器的 TCP 和 UDP 连接才能正常工作。确保上游 DNS 服务器可以接收来自 OpenShift Container Platform 集群节点的 TCP 和 UDP 连接。

在 OpenShift Container Platform 部署中,DNS 名称解析对于以下组件是必需的:

  • Kubernetes API

  • OpenShift Container Platform 应用程序通配符入口 API

A/AAAA 记录用于名称解析,PTR 记录用于反向名称解析。Red Hat Enterprise Linux CoreOS (RHCOS) 使用反向记录或 DHCP 为所有节点设置主机名。

安装程序配置安装包括使用集群成员信息生成 A/AAAA 记录的功能。这会将节点名称解析为其 IP 地址。在每个记录中,<cluster_name> 是集群名称,<base_domain> 是您在install-config.yaml文件中指定的基域。完整的 DNS 记录采用以下形式:<component>.<cluster_name>.<base_domain>.

表 6. 所需 DNS 记录
组件 记录 描述

Kubernetes API

api.<cluster_name>.<base_domain>.

A/AAAA 记录和 PTR 记录标识 API 负载均衡器。集群外部的客户端和集群内的所有节点都必须能够解析这些记录。

路由

*.apps.<cluster_name>.<base_domain>.

通配符 A/AAAA 记录指的是应用程序入口负载均衡器。应用程序入口负载均衡器将目标设置为运行 Ingress Controller pod 的节点。默认情况下,Ingress Controller pod 运行在工作节点上。集群外部的客户端和集群内的所有节点都必须能够解析这些记录。

例如,console-openshift-console.apps.<cluster_name>.<base_domain> 用作指向 OpenShift Container Platform 控制台的通配符路由。

您可以使用dig命令验证 DNS 解析。

动态主机配置协议 (DHCP) 需求

默认情况下,安装程序配置安装会部署启用 DHCP 的ironic-dnsmasq,用于provisioning网络。当provisioningNetwork配置设置设置为managed(这是默认值)时,provisioning网络上不应运行其他 DHCP 服务器。如果您的provisioning网络上正在运行 DHCP 服务器,则必须在install-config.yaml文件中将provisioningNetwork配置设置设置为unmanaged

网络管理员必须在外部 DHCP 服务器上为 OpenShift Container Platform 集群中baremetal网络上的每个节点预留 IP 地址。

使用 DHCP 服务器预留节点 IP 地址

对于baremetal网络,网络管理员必须预留几个 IP 地址,包括:

  1. 两个唯一的虚拟 IP 地址。

    • 一个用于 API 端点的虚拟 IP 地址。

    • 一个用于通配符 Ingress 端点的虚拟 IP 地址。

  2. 一个用于预配节点的 IP 地址。

  3. 每个控制平面节点一个 IP 地址。

  4. 如有必要,每个工作节点一个 IP 地址。

预留 IP 地址使其成为静态 IP 地址

一些管理员更喜欢使用静态 IP 地址,以便在没有 DHCP 服务器的情况下每个节点的 IP 地址保持不变。要使用 NMState 配置静态 IP 地址,请参阅“设置 OpenShift 安装环境”部分中的“(可选) 配置节点网络接口” 。

外部负载均衡器和控制平面节点之间的网络连接

外部负载均衡服务和控制平面节点必须运行在相同的 L2 网络上,并且在使用 VLAN 来路由负载均衡服务和控制平面节点之间的流量时,必须在相同的 VLAN 上。

存储接口需要 DHCP 预留或静态 IP。

下表提供了一个完全限定域名示例。API 和名称服务器地址以规范名称扩展名开头。控制平面和工作节点的主机名是示例,因此您可以使用任何您喜欢的主机命名约定。

用法 主机名 IP

API

api.<集群名称>.<基础域名>

<ip>

Ingress 负载均衡器 (应用)

*.apps.<集群名称>.<基础域名>

<ip>

预配节点

provisioner.<集群名称>.<基础域名>

<ip>

控制平面-0

openshift-control-plane-0.<集群名称>.<基础域名>

<ip>

控制平面-1

openshift-control-plane-1.<集群名称>.<基础域名>

<ip>

控制平面-2

openshift-control-plane-2.<集群名称>.<基础域名>

<ip>

工作节点-0

openshift-worker-0.<集群名称>.<基础域名>

<ip>

工作节点-1

openshift-worker-1.<集群名称>.<基础域名>

<ip>

工作节点-n

openshift-worker-n.<集群名称>.<基础域名>

<ip>

如果您没有创建 DHCP 预留,安装程序需要反向 DNS 解析来设置 Kubernetes API 节点、预配节点、控制平面节点和工作节点的主机名。

预配节点要求

您必须在安装配置中指定预配节点的 MAC 地址。bootMacAddress规范通常与 PXE 网络引导相关联。但是,Ironic 预配服务也需要bootMacAddress规范来在集群检查期间或集群中节点重新部署期间识别节点。

预配节点需要 2 层连接才能进行网络引导、DHCP 和 DNS 解析以及本地网络通信。预配节点需要 3 层连接才能进行虚拟介质引导。

网络时间协议 (NTP)

集群中的每个 OpenShift Container Platform 节点都必须能够访问 NTP 服务器。OpenShift Container Platform 节点使用 NTP 来同步其时钟。例如,集群节点使用需要验证的 SSL/TLS 证书,如果节点之间的时间不同步,则验证可能会失败。

在每个集群节点的 BIOS 设置中定义一致的时钟日期和时间格式,否则安装可能会失败。

您可以将控制平面节点重新配置为在断开连接的集群上充当 NTP 服务器,并将工作节点重新配置为从控制平面节点获取时间。

带外管理 IP 地址的端口访问

带外管理 IP 地址位于与节点不同的网络上。为确保带外管理可以在安装期间与预配节点通信,必须授予带外管理 IP 地址访问预配节点和 OpenShift Container Platform 控制平面节点上端口6180的权限。例如,使用 Redfish 进行虚拟介质安装需要 TLS 端口6183

其他资源

配置节点

使用provisioning网络配置节点

集群中的每个节点都需要以下配置才能正确安装。

节点之间的不匹配会导致安装失败。

虽然集群节点可以包含两个以上的网卡,但安装过程仅关注前两个网卡。在下表中,NIC1 是一个不可路由网络 (provisioning),仅用于安装 OpenShift Container Platform 集群。

网卡 网络 VLAN

NIC1

provisioning

<provisioning_vlan>

NIC2

baremetal

<baremetal_vlan>

预配节点上的 Red Hat Enterprise Linux (RHEL) 9.x 安装过程可能会有所不同。要使用本地 Satellite 服务器或 PXE 服务器安装 Red Hat Enterprise Linux (RHEL) 9.x,请启用 NIC2 的 PXE。

PXE 启动顺序

已启用 PXE 的 NIC1 provisioning 网络

1

NIC2 baremetal 网络。启用 PXE 是可选的。

2

确保在所有其他网卡上禁用 PXE。

按如下方式配置控制平面和工作节点

PXE 启动顺序

已启用 PXE 的 NIC1(provisioning 网络)

1

不使用provisioning网络配置节点

安装过程需要一个网卡

网卡 网络 VLAN

NICx

baremetal

<baremetal_vlan>

NICx 是一个可路由网络 (baremetal),用于安装 OpenShift Container Platform 集群,并且可路由到互联网。

provisioning网络是可选的,但对于 PXE 引导是必需的。如果您没有provisioning网络进行部署,则必须使用虚拟介质 BMC寻址选项,例如redfish-virtualmediaidrac-virtualmedia

手动配置节点以进行安全启动

安全启动可防止节点启动,除非它验证节点仅使用受信任的软件,例如 UEFI 固件驱动程序、EFI 应用程序和操作系统。

Red Hat 仅在使用 Redfish 虚拟介质部署时支持手动配置的安全启动。

要手动启用安全启动,请参阅节点的硬件指南并执行以下操作:

步骤
  1. 启动节点并进入 BIOS 菜单。

  2. 将节点的启动模式设置为UEFI Enabled

  3. 启用安全启动。

Red Hat 不支持使用自生成密钥的安全启动。

带外管理

节点通常还有一个由基板管理控制器 (BMC) 使用的网卡。必须能够从预配节点访问这些 BMC。

每个节点都必须可以通过带外管理访问。使用带外管理网络时,预配节点需要访问带外管理网络才能成功安装 OpenShift Container Platform。

带外管理设置不在本文档讨论范围内。使用单独的管理网络进行带外管理可以提高性能并增强安全性。但是,使用预配网络或裸机网络也是有效的选项。

引导VM最多具有两个网络接口。如果您为带外管理配置了单独的管理网络,并且正在使用预配网络,则引导VM需要通过其中一个网络接口访问管理网络。在这种情况下,引导VM可以访问三个网络。

  • 裸机网络

  • 预配网络

  • 通过其中一个网络接口路由的管理网络

安装所需数据

在安装 OpenShift Container Platform 集群之前,请从所有集群节点收集以下信息:

  • 带外管理IP

    • 示例

      • 戴尔 (iDRAC) IP

      • 惠普 (iLO) IP

      • 富士通 (iRMC) IP

使用预配网络时
  • 网卡 (预配) MAC 地址

  • 网卡 (裸机) MAC 地址

省略预配网络时
  • 网卡 (裸机) MAC 地址

节点验证清单

使用预配网络时
  • 网卡1 VLAN 已配置为预配网络。

  • 预配节点、控制平面节点和工作节点上的预配网络网卡1已启用PXE。

  • 网卡2 VLAN 已配置为裸机网络。

  • 所有其他网卡均已禁用PXE。

  • DNS 已配置API和入口端点。

  • 控制平面节点和工作节点已配置。

  • 所有节点均可通过带外管理访问。

  • (可选) 已创建单独的管理网络。

  • 安装所需数据。

省略预配网络时
  • 网卡1 VLAN 已配置为裸机网络。

  • DNS 已配置API和入口端点。

  • 控制平面节点和工作节点已配置。

  • 所有节点均可通过带外管理访问。

  • (可选) 已创建单独的管理网络。

  • 安装所需数据。


1. 安装程序预配安装支持 UCS M6 平台及更高版本。