-
当未启用同时多线程 (SMT) 或超线程时,一个 CPU 等效于一个物理核心。启用后,请使用以下公式计算相应的比率:(每核线程数 × 核数) × 插槽数 = CPU 数。
-
OpenShift Container Platform 和 Kubernetes 对磁盘性能很敏感,建议使用更快的存储,特别是对于控制平面节点上的 etcd。请注意,在许多云平台上,存储大小和 IOPS 共同扩展,因此您可能需要过度分配存储卷才能获得足够的性能。
安装程序预配的 OpenShift Container Platform 安装需要:
一个安装了 Red Hat Enterprise Linux (RHEL) 9.x 的供应程序节点。安装后可以移除供应程序。
三个控制平面节点
每个节点的底板管理控制器 (BMC) 访问权限
至少一个网络
一个必需的可路由网络
一个可选的供应网络
一个可选的管理网络
在开始安装程序预配的 OpenShift Container Platform 安装之前,请确保硬件环境满足以下要求。
安装程序预配的安装涉及许多硬件节点需求
CPU 架构:所有节点必须使用x86_64
或aarch64
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 应用程序和操作系统。您可以手动或管理方式部署安全启动。
手动:要手动部署具有安全启动的 OpenShift Container Platform 集群,必须在每个控制平面节点和每个工作节点上启用 UEFI 引导模式和安全启动。仅当安装程序配置的安装使用 Redfish 虚拟介质时,Red Hat 才支持手动启用 UEFI 和安全启动的安全启动。有关更多详细信息,请参阅“配置节点”部分中的“手动配置节点以进行安全启动”。
管理:要部署具有管理的安全启动的 OpenShift Container Platform 集群,必须在install-config.yaml
文件中将bootMode
值设置为UEFISecureBoot
。Red Hat 仅支持在运行固件版本2.75.75.75
或更高版本的第 10 代 HPE 硬件和第 13 代 Dell 硬件上使用管理的安全启动进行安装程序配置的安装。使用管理的安全启动部署不需要 Redfish 虚拟介质。有关详细信息,请参阅“设置 OpenShift 安装的环境”部分中的“配置管理的安全启动”。
Red Hat 不支持管理自生成的密钥或其他安全启动密钥。 |
每个集群机器必须满足以下最低要求
机器 | 操作系统 | 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 |
当未启用同时多线程 (SMT) 或超线程时,一个 CPU 等效于一个物理核心。启用后,请使用以下公式计算相应的比率:(每核线程数 × 核数) × 插槽数 = CPU 数。
OpenShift Container Platform 和 Kubernetes 对磁盘性能很敏感,建议使用更快的存储,特别是对于控制平面节点上的 etcd。请注意,在许多云平台上,存储大小和 IOPS 共同扩展,因此您可能需要过度分配存储卷才能获得足够的性能。
从 OpenShift Container Platform 4.13 版本开始,RHCOS 基于 RHEL 9.2 版本,更新了微架构要求。以下列表包含每种架构所需的最低指令集架构 (ISA):
有关更多信息,请参阅RHEL 架构。 |
如果平台的实例类型满足集群机器的最低要求,则支持在 OpenShift Container Platform 中使用。
如果您将使用 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 第三方支持策略。有关更新固件的信息,请参阅节点的硬件文档或联系硬件供应商。 |
型号 | 管理 | 固件版本 |
---|---|---|
第 11 代 |
iLO6 |
1.57 或更高版本 |
第 10 代 |
iLO5 |
2.63 或更高版本 |
型号 | 管理 | 固件版本 |
---|---|---|
第 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 或更高版本 |
型号 | 管理 | 固件版本 |
---|---|---|
UCS X 系列服务器 [1] |
CIMC |
5.2(2) 或更高版本 |
UCS 托管域中的 UCS C 系列服务器 |
CIMC |
4.3 或更高版本 |
OpenShift Container Platform 的安装程序配置安装涉及多个网络需求。首先,安装程序配置安装涉及一个可选的不可路由provisioning
网络,用于在每个裸机节点上配置操作系统。其次,安装程序配置安装涉及一个可路由baremetal
网络。
为了成功完成安装程序配置安装,集群节点之间必须打开某些端口。在某些情况下,例如为远端边缘工作节点使用单独的子网,您必须确保这些子网中的节点可以通过以下所需端口与其他子网中的节点通信。
端口 | 描述 |
---|---|
|
使用配置网络时,集群节点通过其配置网络接口使用端口 |
|
使用配置网络时,集群节点使用其配置网络接口通过端口 |
|
不使用镜像缓存选项或使用虚拟介质时,配置节点必须在其 |
|
集群节点必须使用 |
|
Ironic Inspector API 运行在控制平面节点上,并在端口 |
|
端口 |
|
使用虚拟介质且不使用 TLS 时,配置节点和控制平面节点必须在其 |
|
使用虚拟介质并使用 TLS 时,配置节点和控制平面节点必须在其 |
|
Ironic API 服务器最初运行在引导 VM 上,之后运行在控制平面节点上,并在端口 |
|
端口 |
|
使用镜像缓存且不使用 TLS 时,端口 |
|
使用镜像缓存选项并使用 TLS 时,端口 |
|
默认情况下,Ironic Python Agent (IPA) 在 TCP 端口 |
在部署 OpenShift Container Platform 之前,请将网络最大传输单元 (MTU) 增加到 1500 或更大。如果 MTU 低于 1500,则用于引导节点的 Ironic 镜像可能无法与 Ironic inspector pod 通信,并且检查将失败。如果发生这种情况,安装将停止,因为节点不可用于安装。
OpenShift Container Platform 部署时使用两个网络
provisioning
:provisioning
网络是一个可选的不可路由网络,用于在属于 OpenShift Container Platform 集群的每个节点上配置底层操作系统。每个集群节点上provisioning
网络的网络接口必须将 BIOS 或 UEFI 配置为 PXE 引导。
provisioningNetworkInterface
配置设置指定控制平面节点上的provisioning
网络网卡名称,该名称在控制平面节点上必须相同。bootMACAddress
配置设置提供了一种方法来为provisioning
网络上的每个节点指定特定网卡。
provisioning
网络是可选的,但对于 PXE 引导是必需的。如果您没有provisioning
网络进行部署,则必须使用虚拟介质 BMC寻址选项,例如redfish-virtualmedia
或idrac-virtualmedia
。
baremetal
:baremetal
网络是一个可路由网络。您可以使用任何网卡与baremetal
网络接口,前提是该网卡未配置为使用provisioning
网络。
使用 VLAN 时,每个网卡必须位于与相应网络对应的单独 VLAN 上。 |
客户端通过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>.
。
组件 | 记录 | 描述 |
---|---|---|
Kubernetes API |
|
A/AAAA 记录和 PTR 记录标识 API 负载均衡器。集群外部的客户端和集群内的所有节点都必须能够解析这些记录。 |
路由 |
|
通配符 A/AAAA 记录指的是应用程序入口负载均衡器。应用程序入口负载均衡器将目标设置为运行 Ingress Controller pod 的节点。默认情况下,Ingress Controller pod 运行在工作节点上。集群外部的客户端和集群内的所有节点都必须能够解析这些记录。 例如, |
您可以使用 |
默认情况下,安装程序配置安装会部署启用 DHCP 的ironic-dnsmasq
,用于provisioning
网络。当provisioningNetwork
配置设置设置为managed
(这是默认值)时,provisioning
网络上不应运行其他 DHCP 服务器。如果您的provisioning
网络上正在运行 DHCP 服务器,则必须在install-config.yaml
文件中将provisioningNetwork
配置设置设置为unmanaged
。
网络管理员必须在外部 DHCP 服务器上为 OpenShift Container Platform 集群中baremetal
网络上的每个节点预留 IP 地址。
对于baremetal
网络,网络管理员必须预留几个 IP 地址,包括:
两个唯一的虚拟 IP 地址。
一个用于 API 端点的虚拟 IP 地址。
一个用于通配符 Ingress 端点的虚拟 IP 地址。
一个用于预配节点的 IP 地址。
每个控制平面节点一个 IP 地址。
如有必要,每个工作节点一个 IP 地址。
预留 IP 地址使其成为静态 IP 地址
一些管理员更喜欢使用静态 IP 地址,以便在没有 DHCP 服务器的情况下每个节点的 IP 地址保持不变。要使用 NMState 配置静态 IP 地址,请参阅“设置 OpenShift 安装环境”部分中的“(可选) 配置节点网络接口” 。 |
外部负载均衡器和控制平面节点之间的网络连接
外部负载均衡服务和控制平面节点必须运行在相同的 L2 网络上,并且在使用 VLAN 来路由负载均衡服务和控制平面节点之间的流量时,必须在相同的 VLAN 上。 |
存储接口需要 DHCP 预留或静态 IP。 |
下表提供了一个完全限定域名示例。API 和名称服务器地址以规范名称扩展名开头。控制平面和工作节点的主机名是示例,因此您可以使用任何您喜欢的主机命名约定。
用法 | 主机名 | IP |
---|---|---|
API |
|
|
Ingress 负载均衡器 (应用) |
|
|
预配节点 |
|
|
控制平面-0 |
|
|
控制平面-1 |
|
|
控制平面-2 |
|
|
工作节点-0 |
|
|
工作节点-1 |
|
|
工作节点-n |
|
|
如果您没有创建 DHCP 预留,安装程序需要反向 DNS 解析来设置 Kubernetes API 节点、预配节点、控制平面节点和工作节点的主机名。 |
您必须在安装配置中指定预配节点的 MAC 地址。bootMacAddress
规范通常与 PXE 网络引导相关联。但是,Ironic 预配服务也需要bootMacAddress
规范来在集群检查期间或集群中节点重新部署期间识别节点。
预配节点需要 2 层连接才能进行网络引导、DHCP 和 DNS 解析以及本地网络通信。预配节点需要 3 层连接才能进行虚拟介质引导。
集群中的每个 OpenShift Container Platform 节点都必须能够访问 NTP 服务器。OpenShift Container Platform 节点使用 NTP 来同步其时钟。例如,集群节点使用需要验证的 SSL/TLS 证书,如果节点之间的时间不同步,则验证可能会失败。
在每个集群节点的 BIOS 设置中定义一致的时钟日期和时间格式,否则安装可能会失败。 |
您可以将控制平面节点重新配置为在断开连接的集群上充当 NTP 服务器,并将工作节点重新配置为从控制平面节点获取时间。
provisioning
网络配置节点集群中的每个节点都需要以下配置才能正确安装。
节点之间的不匹配会导致安装失败。 |
虽然集群节点可以包含两个以上的网卡,但安装过程仅关注前两个网卡。在下表中,NIC1 是一个不可路由网络 (provisioning
),仅用于安装 OpenShift Container Platform 集群。
网卡 | 网络 | VLAN |
---|---|---|
NIC1 |
|
|
NIC2 |
|
|
预配节点上的 Red Hat Enterprise Linux (RHEL) 9.x 安装过程可能会有所不同。要使用本地 Satellite 服务器或 PXE 服务器安装 Red Hat Enterprise Linux (RHEL) 9.x,请启用 NIC2 的 PXE。
PXE | 启动顺序 |
---|---|
已启用 PXE 的 NIC1 |
1 |
NIC2 |
2 |
确保在所有其他网卡上禁用 PXE。 |
按如下方式配置控制平面和工作节点
PXE | 启动顺序 |
---|---|
已启用 PXE 的 NIC1(provisioning 网络) |
1 |
provisioning
网络配置节点安装过程需要一个网卡
网卡 | 网络 | VLAN |
---|---|---|
NICx |
|
|
NICx 是一个可路由网络 (baremetal
),用于安装 OpenShift Container Platform 集群,并且可路由到互联网。
|
安全启动可防止节点启动,除非它验证节点仅使用受信任的软件,例如 UEFI 固件驱动程序、EFI 应用程序和操作系统。
Red Hat 仅在使用 Redfish 虚拟介质部署时支持手动配置的安全启动。 |
要手动启用安全启动,请参阅节点的硬件指南并执行以下操作:
启动节点并进入 BIOS 菜单。
将节点的启动模式设置为UEFI Enabled
。
启用安全启动。
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和入口端点。
控制平面节点和工作节点已配置。
所有节点均可通过带外管理访问。
(可选) 已创建单独的管理网络。
安装所需数据。