14.2. 先决条件
OpenShift Container Platform 安装程序置备的安装需要:
- 安装了 Red Hat Enterprise Linux(RHEL) 9.x 的一个置备程序节点。在安装后可以删除置备程序。
- 三个 control plane 节点
- 对每个节点的 Baseboard 管理控制器 (BMC) 访问
至少一个网络:
- 一个必需的可路由网络
- 一个可选的 provisioning 网络
- 一个可选的管理网络
在开始 OpenShift Container Platform 安装程序置备的安装前,请确保硬件环境满足以下要求。
14.2.1. 节点要求
安装程序置备的安装涉及多个硬件节点要求:
-
CPU 架构: 所有节点都必须使用
x86_64
或aarch64
CPU 架构。 - 类似的节点: 红帽建议每个角色都有相同的配置。也就是说,红帽建议节点具有相同的品牌和型号,它们具有相同的 CPU、内存和存储配置。
-
Baseboard Management Controller:
provisioner
节点必须能够访问每个 OpenShift Container Platform 集群节点的基板管理控制器(BMC)。您可以使用 IPMI、Redfish 或专有协议。 -
最新一代: 节点必须是最新一代。安装程序置备的安装依赖于 BMC 协议,这些协议必须在节点间兼容。另外,RHEL 9.x 附带了 RAID 控制器的最新驱动程序。确保节点足以支持
provisioner
节点的 RHEL 9.x,支持 control plane 和 worker 节点的 RHCOS 9.x。 - registry 节点:( 可选)如果设置了一个断开连接的镜像 registry,建议 registry 驻留在自己的节点上。
-
provisioner 节点: 安装程序置备的安装需要一个
provisioner
节点。 - control plane: 安装程序置备的安装需要三个 control plane 节点才能实现高可用性。您可以部署仅具有三个 control plane 节点的 OpenShift Container Platform 集群,使 control plane 节点可以作为 worker 节点调度。较小的集群在开发、生产和测试过程中为管理员和开发人员提供更多资源。
Worker 节点: 虽然不是必须的的,但典型的生产环境集群一般会有两个或者多个 worker 节点。
重要不要只部署一个 worker 节点的集群,因为集群将使用降级状态的路由器和入口流量进行部署。
网络接口: 每个节点必须至少有一个网络接口用于可路由的
baremetal
网络。在使用provisioning
网络进行部署时,每个节点都必须有一个网络接口用于provisioning
网络。使用provisioning
网络是默认配置。注意在同一子网上只能有一个网卡 (NIC) 可以通过网关路由流量。默认情况下,地址解析协议 (ARP) 使用编号最低的 NIC。对同一子网中的每个节点都使用一个单独的 NIC,以确保网络负载均衡按预期工作。当为同一子网中的一个节点使用多个 NIC 时,需要使用一个绑定或组接口。然后,以一个别名 IP 地址的形式将其他 IP 地址添加到该接口。如果您需要在网络接口级别进行容错或负载均衡,请在绑定或团队接口上使用别名 IP 地址。或者,您可以在同一子网中禁用二级 NIC,或者确保它没有 IP 地址。
统一可扩展固件接口(UEFI): 安装程序置备的安装需要在
置备
网络中使用 IPv6 时在所有 OpenShift Container Platform 节点上进行 UEFI 引导。另外,UEFI Device PXE 设置必须设置为在provisioning
网络 NIC 中使用 IPv6 协议,但忽略provisioning
网络会删除这个要求。重要从 ISO 镜像启动安装时,删除所有旧的 UEFI 引导条目。如果引导条目包含不是固件提供通用条目的条目,则安装可能会失败。
安全引导: 许多生产环境中需要启用安全引导的节点来验证节点仅使用可信软件引导,如 UEFI 固件驱动程序、EFI 应用程序和操作系统。您可以使用安全引导手动或管理进行部署。
- 手动: 要使用安全引导机制手动部署 OpenShift Container Platform 集群,您必须在每个 control plane 节点上和每个 worker 节点上启用 UEFI 引导模式和安全引导。红帽支持仅在安装程序置备的安装使用 Redfish 虚拟介质时手动启用 UEFI 和安全引导。如需了解更多详细信息,请参阅"配置节点"一节中的"手动配置安全引导节点"。
Managed: 要使用受管安全引导机制部署 OpenShift Container Platform 集群,您必须在
install-config.yaml
文件中将bootMode
值设置为UEFISecureBoot
。红帽仅在第 10 代 HPE 硬件和 13 代运行固件版本2.75.75.75
或更高版本的 Dell 硬件中支持带受管安全引导的安装程序置备安装。使用受管安全引导进行部署不需要 Redfish 虚拟介质。详情请参阅"为 OpenShift 安装设置环境"一节中的"配置受管安全引导"。注意红帽不支持使用自生成的密钥进行安全引导。
14.2.2. 集群安装的最低资源要求
每台集群机器都必须满足以下最低要求:
机器 | 操作系统 | CPU [1] | RAM | Storage | 每秒输入/输出 (IOPS) [2] |
---|---|---|---|---|---|
bootstrap | RHEL | 4 | 16 GB | 100 GB | 300 |
Control plane(控制平面) | RHCOS | 4 | 16 GB | 100 GB | 300 |
Compute | RHCOS | 2 | 8 GB | 100 GB | 300 |
- 当未启用并发多线程 (SMT) 或超线程时,一个 CPU 相当于一个物理内核。启用后,使用以下公式来计算对应的比例:(每个内核数的线程)× sockets = CPU。
- OpenShift Container Platform 和 Kubernetes 对磁盘性能敏感,建议使用更快的存储,特别是 control plane 节点上的 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 支持使用它。
14.2.3. 为 OpenShift Virtualization 规划裸机集群
如果使用 OpenShift Virtualization,必须在安装裸机集群前了解一些要求。
如果要使用实时迁移功能,在集群安装时需要有多个 worker 节点。这是因为实时迁移需要集群级别的高可用性 (HA) 标记设置为 true。当安装集群时,会设置 HA 标志,之后无法更改。如果在安装集群时定义少于两个 worker 节点,则集群生命周期中的 HA 标记被设置为 false。
注意您可以在单节点集群中安装 OpenShift Virtualization,但单节点 OpenShift 不支持高可用性。
- 实时迁移需要共享存储。OpenShift Virtualization 的存储必须支持并使用 ReadWriteMany (RWX) 访问模式。
- 如果您计划使用单根 I/O 虚拟化 (SR-IOV),请确保 OpenShift Container Platform 支持网络接口控制器 (NIC)。
14.2.4. 使用虚拟介质安装的固件要求
安装程序置备的 OpenShift Container Platform 集群的安装程序会验证与 Redfish 虚拟介质的硬件和固件兼容性。如果节点固件不兼容,安装程序不会在节点上开始安装。下表列出了经过测试并验证以使用 Redfish 虚拟介质部署的安装程序置备的 OpenShift Container Platform 集群的最低固件版本。
红帽不测试固件、硬件或其他第三方组件的组合。有关第三方支持的更多信息,请参阅红帽第三方支持政策。有关更新固件的详情,请查看硬件文档了解节点或联系硬件厂商。
model | 管理 | 固件版本 |
---|---|---|
第 10 代 | iLO5 | 2.63 或更高版本 |
model | 管理 | 固件版本 |
---|---|---|
第 15 代 | iDRAC 9 | v6.10.30.00 和 v7.00.60.00 |
第 14 代 | iDRAC 9 | v6.10.30.00 |
第 13 代 | iDRAC 8 | v2.75.75.75 或更高版本 |
model | 管理 | 固件版本 |
---|---|---|
UCS UCSX-210C-M6 | CIMC | 5.2 (2)或更高版本 |
其他资源
14.2.5. 网络要求
OpenShift Container Platform 安装程序置备的安装涉及多个网络要求。首先,安装程序置备的安装涉及一个可选的不可路由 置备网络
,以便在每个裸机节点上置备操作系统。其次,安装程序置备的安装涉及一个可路由的 baremetal
网络。
14.2.5.1. 确保打开所需的端口
某些端口必须在集群节点之间打开,才能成功完成安装程序置备的安装。在某些情况下,比如在边缘 worker 节点中使用单独的子网,您必须确保这些子网中的节点可以与以下所需端口上其他子网中的节点通信。
port | 描述 |
---|---|
|
在使用 provisioning 网络时,集群节点使用端口 |
|
在使用 provisioning 网络时,集群节点使用它们的置备网络接口与端口 |
|
如果没有使用镜像缓存选项或使用虚拟介质,则 provisioner 节点必须在 |
|
集群节点必须使用 |
|
Ironic Inspector API 在 control plane 节点上运行,并侦听端口 |
|
端口 |
|
当使用虚拟介质而不是 TLS 部署时,provisioner 节点和 control plane 节点必须在 |
|
当使用虚拟介质并使用 TLS 部署时,provisioner 节点和 control plane 节点必须在 |
|
Ironic API 服务器最初在 bootstrap 虚拟机上运行,稍后在 control plane 节点上运行,并侦听端口 |
|
端口 |
|
在不使用 TLS 的情况下使用镜像缓存时,必须在 provisioner 节点上打开端口 |
|
当将镜像缓存选项与 TLS 搭配使用时,必须在 provisioner 节点上打开端口 |
|
默认情况下,Ironic Python 代理(IPA)侦听来自 Ironic 编排器服务的 API 调用的 TCP 端口 |
14.2.5.2. 增加网络 MTU
在部署 OpenShift Container Platform 前,将网络最大传输单元 (MTU) 增加到 1500 或更多。如果 MTU 小于 1500,用于引导节点的 Ironic 镜像可能无法与 Ironic 检查 pod 通信,检查将失败。如果发生了这种情况,安装会停止,因为节点无法用于安装。
14.2.5.3. 配置 NIC
OpenShift Container Platform 使用两个网络部署:
provisioning
:置备
网络是一个可选的不可路由的网络,用于在作为 OpenShift Container Platform 集群一部分的每个节点上置备底层操作系统。每个集群节点上provisioning
网络的网络接口必须将 BIOS 或 UEFI 配置为 PXE 引导。provisioningNetworkInterface
配置设置指定 control plane 节点上的provisioning
网络 NIC 名称,它在 control plane 节点上必须相同。bootMACAddress
配置设置提供了一种方法,用于在每个节点上为provisioning
网络指定特定的 NIC。调配
网络是可选的,但 PXE 引导需要该网络。如果您在没有provisioning
网络的情况下部署,则必须使用虚拟介质 BMC 寻址选项,如redfish-virtualmedia
或idrac-virtualmedia
。-
baremetal
:baremetal
网络是一个可路由的网络。您可以使用任何 NIC 与baremetal 网络
进行接口,只要 NIC 没有配置为使用provisioning
网络。
在使用 VLAN 时,每个 NIC 必须位于与相应网络对应的独立 VLAN 中。
14.2.5.4. DNS 要求
客户端通过 baremetal
网络访问 OpenShift Container Platform 集群节点。网络管理员必须配置子域或子区,其中规范名称扩展是集群名称。
<cluster_name>.<base_domain>
例如:
test-cluster.example.com
OpenShift Container Platform 包含使用集群成员资格信息来生成 A/AAAA 记录的功能。这会将节点名称解析为其 IP 地址。使用 API 注册节点后,集群可以在不使用 CoreDNS-mDNS 的情况下分散节点信息。这可消除与多播 DNS 关联的网络流量。
CoreDNS 需要 TCP 和 UDP 连接到上游 DNS 服务器才能正常工作。确保上游 DNS 服务器可以从 OpenShift Container Platform 集群节点接收 TCP 和 UDP 连接。
在 OpenShift Container Platform 部署中,以下组件需要 DNS 名称解析:
- The 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 负载均衡器。这些记录必须由集群外的客户端和集群中的所有节点解析。 |
Routes |
| 通配符 A/AAAA 记录指的是应用程序入口负载均衡器。应用程序入口负载均衡器以运行 Ingress Controller pod 的节点为目标。默认情况下,Ingress Controller pod 在 worker 节点上运行。这些记录必须由集群外的客户端和集群中的所有节点解析。
例如,console |
您可以使用 dig
命令验证 DNS 解析。
14.2.5.5. 动态主机配置协议(DHCP)要求
默认情况下,安装程序置备的安装会在 provisioning
网络启用了 DHCP 的情况下部署 ironic-dnsmasq
。当 provisioningNetwork
配置设置为 managed
时(默认值),不能有其他 DHCP 服务器在 provisioning
网络中运行。如果您在 provisioning
网络上运行 DHCP 服务器,则必须在 install-config.yaml
文件中将 provisioningNetwork
配置设置设置为 非受管
。
网络管理员必须为 OpenShift Container Platform 集群中的各个节点为外部 DHCP 服务器上的 baremetal 网络
保留 IP 地址。
14.2.5.6. 使用 DHCP 服务器为节点保留 IP 地址
对于 baremetal
网络,网络管理员必须保留几个 IP 地址,包括:
两个唯一的虚拟 IP 地址。
- API 端点的一个虚拟 IP 地址。
- 一个用于通配符入口端点的虚拟 IP 地址。
- 一个用于 provisioner 节点的 IP 地址。
- 每个 control plane 节点有一个 IP 地址。
- 每个 worker 节点有一个 IP 地址(如果适用)。
有些管理员更喜欢使用静态 IP 地址,以便在没有 DHCP 服务器时每个节点的 IP 地址保持恒定状态。要使用 NMState 配置静态 IP 地址,请参阅"设置 OpenShift 安装环境"部分中的" (可选)配置节点网络接口"。
当使用 VLAN 在负载均衡服务和 control plane 节点之间路由流量时,外部负载平衡服务和 control plane 节点必须在同一个 L2 网络上运行,并使用 VLAN 来路由负载平衡服务和 control plane 节点之间的流量。
存储接口需要 DHCP 保留或静态 IP。
下表提供了完全限定域名的实例化。API 和名称服务器地址以规范名称扩展开头。control plane 和 worker 节点的主机名是示例,您可以使用您喜欢的任何主机命名规则。
用法 | 主机名 | IP |
---|---|---|
API |
|
|
Ingress LB(apps) |
|
|
provisioner 节点 |
|
|
control-plane-0 |
|
|
Control-plane-1 |
|
|
Control-plane-2 |
|
|
Worker-0 |
|
|
Worker-1 |
|
|
Worker-n |
|
|
如果没有创建 DHCP 保留,安装程序会需要反向 DNS 解析来为 Kubernetes API 节点、provisioner 节点、control plane 节点和 worker 节点设置主机名。
14.2.5.7. provisioner 节点要求
您必须在安装配置中为 provisioner 节点指定 MAC 地址。bootMacAddress
规范通常与 PXE 网络引导关联。但是,Ironic 置备服务还需要 bootMacAddress
规格,以便在检查集群期间或集群中重新部署节点时识别节点。
provisioner 节点需要第 2 层连接才能进行网络引导、DHCP 和 DNS 解析,以及本地网络通信。provisioner 节点需要第 3 层连接才能进行虚拟介质引导。
14.2.5.8. 网络时间协议(NTP)
集群中的每个 OpenShift Container Platform 节点都必须有权访问 NTP 服务器。OpenShift Container Platform 节点使用 NTP 来同步其时钟。例如,集群节点使用需要验证的 SSL/TLS 证书,如果节点间的日期和时间不同步,则可能会失败。
在每个群集节点的 BIOS 设置中定义一致的时钟日期和时间格式,或者安装可能会失败。
您可以重新配置 control plane 节点,作为断开连接的集群中的 NTP 服务器,并重新配置 worker 节点以从 control plane 节点检索时间。
14.2.5.9. 带外管理 IP 地址的端口访问
带外管理 IP 地址位于与节点分开的网络中。为确保带外管理可以在安装过程中与 provisioner 节点通信,带外管理 IP 地址必须被授予对 provisioner 节点和 OpenShift Container Platform control plane 节点上端口 6180
的访问权限。虚拟介质安装需要 TLS 端口 6183
,例如使用 Redfish。
其他资源
14.2.6. 配置节点
在使用 provisioning
网络时配置节点
集群中的每个节点都需要以下配置才能正确安装。
在节点间不匹配将导致安装失败。
虽然集群节点可以包含多于 2 个 NIC,但安装过程只关注于前两个 NIC:在下表中,NIC1 是一个不可路由的网络(置备
),它仅用于安装 OpenShift Container Platform 集群。
NIC | 网络 | VLAN |
---|---|---|
NIC1 |
|
|
NIC2 |
|
|
provisioner 节点上的 Red Hat Enterprise Linux(RHEL) 9.x 安装过程可能会有所不同。要使用本地 Satellite 服务器或 PXE 服务器安装 Red Hat Enterprise Linux(RHEL) 9.x,PXE 启用 NIC2。
PXE | 引导顺序 |
---|---|
NIC1 PXE-enabled | 1 |
NIC2 | 2 |
确保在所有其他 NIC 上禁用 PXE。
配置 control plane 和 worker 节点,如下所示:
PXE | 引导顺序 |
---|---|
NIC1 PXE-enabled(调配网络) | 1 |
在没有 provisioning
网络的情况下配置节点
安装过程需要一个 NIC:
NIC | 网络 | VLAN |
---|---|---|
NICx |
|
|
NICx 是一个可路由的网络(baremetal
),用于安装 OpenShift Container Platform 集群,并可路由到互联网。
调配
网络是可选的,但 PXE 引导需要该网络。如果您在没有 provisioning
网络的情况下部署,则必须使用虚拟介质 BMC 寻址选项,如 redfish-virtualmedia
或 idrac-virtualmedia
。
为安全引导手动配置节点
安全引导可防止节点引导,除非它只验证节点只使用可信软件,如 UEFI 固件驱动程序、EFI 应用程序和操作系统。
红帽仅在使用 Redfish 虚拟介质部署时支持手动配置安全引导机制。
要手动启用安全引导,请参阅节点的硬件指南并执行以下内容:
流程
- 引导节点并进入 BIOS 菜单。
-
将节点的引导模式设置为
UEFI Enabled
。 - 启用安全引导.
红帽不支持使用自生成的密钥进行安全引导。
14.2.7. 带外管理
节点通常有一个额外的 NIC,供 Baseboard Management Controller(BMC)使用。这些 BMC 必须可以从 provisioner 节点访问。
每个节点必须通过带外管理进行访问。在使用带外管理网络时,provisioner 节点需要访问带外管理网络才能成功安装 OpenShift Container Platform。
带外管理设置超出了本文档的范围。使用单独的管理网络进行带外管理可能会提高性能并提高安全性。但是,使用 provisioning 网络或 baremetal 网络是有效的选项。
bootstrap 虚拟机具有最多两个网络接口。如果您为带外管理配置一个单独的管理网络,并且您使用 provisioning 网络,bootstrap 虚拟机需要通过其中一个网络接口路由到管理网络。在这种情况下,bootstrap 虚拟机可以访问三个网络:
- 裸机网络
- provisioning 网络
- 通过其中一个网络接口的管理网络
14.2.8. 安装所需的数据
在安装 OpenShift Container Platform 集群前,从所有集群节点收集以下信息:
带外管理 IP
示例
- Dell(iDRAC)IP
- HP(iLO)IP
- Fujitsu(iRMC)IP
在使用 provisioning
网络时
-
NIC(
置备
)MAC 地址 -
NIC(
裸机
)MAC 地址
在省略 provisioning
网络时
-
NIC(
裸机
)MAC 地址
14.2.9. 节点验证清单
在使用 provisioning
网络时
-
❏ 为
provisioning
网络配置了 NIC1 VLAN。 -
❏
置备
网络的 NIC1 在 provisioner、control plane 和 worker 节点上启用了 PXE。 -
❏ 为
baremetal 网络
配置了 NIC2 VLAN。 - ❏ PXE 在所有其他 NIC 上都被禁用。
- ❏ DNS 被配置为使用 API 和 Ingress 端点。
- ❏ 已配置 control plane 和 worker 节点。
- ❏ 所有节点都可通过带外管理访问。
- ❏ (可选)已创建一个单独的管理网络。
- ❏ 安装所需的数据。
在省略 provisioning
网络时
-
❏ 为
baremetal
网络配置了 NIC1 VLAN。 - ❏ DNS 被配置为使用 API 和 Ingress 端点。
- ❏ 已配置 control plane 和 worker 节点。
- ❏ 所有节点都可通过带外管理访问。
- ❏ (可选)已创建一个单独的管理网络。
- ❏ 安装所需的数据。