14.2. 先决条件


OpenShift Container Platform 安装程序置备的安装需要:

  1. 安装了 Red Hat Enterprise Linux(RHEL) 9.x 的一个置备程序节点。在安装后可以删除置备程序。
  2. 三个 control plane 节点
  3. 对每个节点的 Baseboard 管理控制器 (BMC) 访问
  4. 至少一个网络:

    1. 一个必需的可路由网络
    2. 一个可选的 provisioning 网络
    3. 一个可选的管理网络

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

14.2.1. 节点要求

安装程序置备的安装涉及多个硬件节点要求:

  • CPU 架构: 所有节点都必须使用 x86_64aarch64 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 应用程序和操作系统。您可以使用安全引导手动或管理进行部署。

    1. 手动: 要使用安全引导机制手动部署 OpenShift Container Platform 集群,您必须在每个 control plane 节点上和每个 worker 节点上启用 UEFI 引导模式和安全引导。红帽支持仅在安装程序置备的安装使用 Redfish 虚拟介质时手动启用 UEFI 和安全引导。如需了解更多详细信息,请参阅"配置节点"一节中的"手动配置安全引导节点"。
    2. Managed: 要使用受管安全引导机制部署 OpenShift Container Platform 集群,您必须在 install-config.yaml 文件中将 bootMode 值设置为 UEFISecureBoot。红帽仅在第 10 代 HPE 硬件和 13 代运行固件版本 2.75.75.75 或更高版本的 Dell 硬件中支持带受管安全引导的安装程序置备安装。使用受管安全引导进行部署不需要 Redfish 虚拟介质。详情请参阅"为 OpenShift 安装设置环境"一节中的"配置受管安全引导"。

      注意

      红帽不支持使用自生成的密钥进行安全引导。

14.2.2. 集群安装的最低资源要求

每台集群机器都必须满足以下最低要求:

表 14.1. 最低资源要求
机器操作系统CPU [1]RAMStorage每秒输入/输出 (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

  1. 当未启用并发多线程 (SMT) 或超线程时,一个 CPU 相当于一个物理内核。启用后,使用以下公式来计算对应的比例:(每个内核数的线程)× sockets = CPU。
  2. 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 集群的最低固件版本。

注意

红帽不测试固件、硬件或其他第三方组件的组合。有关第三方支持的更多信息,请参阅红帽第三方支持政策。有关更新固件的详情,请查看硬件文档了解节点或联系硬件厂商。

表 14.2. HP 硬件与 Redfish 虚拟介质的固件兼容性
model管理固件版本

第 10 代

iLO5

2.63 或更高版本

表 14.3. Dell 硬件与 Redfish 虚拟介质的固件兼容性
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 或更高版本

表 14.4. Cisco UCS 硬件与 Redfish 虚拟介质的固件兼容性
model管理固件版本

UCS UCSX-210C-M6

CIMC

5.2 (2)或更高版本

14.2.5. 网络要求

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

安装程序置备的网络

14.2.5.1. 确保打开所需的端口

某些端口必须在集群节点之间打开,才能成功完成安装程序置备的安装。在某些情况下,比如在边缘 worker 节点中使用单独的子网,您必须确保这些子网中的节点可以与以下所需端口上其他子网中的节点通信。

表 14.5. 所需端口
port描述

67,68

在使用 provisioning 网络时,集群节点使用端口 6768 访问 dnsmasq DHCP 服务器。

69

在使用 provisioning 网络时,集群节点使用它们的置备网络接口与端口 69 上的 TFTP 服务器通信。TFTP 服务器在 bootstrap 虚拟机上运行。bootstrap 虚拟机在 provisioner 节点上运行。

80

如果没有使用镜像缓存选项或使用虚拟介质,则 provisioner 节点必须在 baremetal 机器网络接口上打开端口 80,才能将来自 provisioner 节点的 Red Hat Enterprise Linux CoreOS (RHCOS)镜像流传输到集群节点。

123

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

5050

Ironic Inspector API 在 control plane 节点上运行,并侦听端口 5050。Inspector API 负责硬件内省,它收集有关裸机节点的硬件特性的信息。

5051

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

6180

当使用虚拟介质而不是 TLS 部署时,provisioner 节点和 control plane 节点必须在 baremetal 机器网络接口上打开端口 6180,以便 worker 节点的基板管理控制器(BMC)可以访问 RHCOS 镜像。从 OpenShift Container Platform 4.13 开始,默认 HTTP 端口为 6180

6183

当使用虚拟介质并使用 TLS 部署时,provisioner 节点和 control plane 节点必须在 baremetal 机器网络接口上打开端口 6183,以便 worker 节点的 BMC 可以访问 RHCOS 镜像。

6385

Ironic API 服务器最初在 bootstrap 虚拟机上运行,稍后在 control plane 节点上运行,并侦听端口 6385。Ironic API 允许客户端与 Ironic 交互裸机节点部署和管理,包括注册新节点、管理电源状态、部署镜像以及清理硬件等操作。

6388

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

8080

在不使用 TLS 的情况下使用镜像缓存时,必须在 provisioner 节点上打开端口 8080,并可以被集群节点的 BMC 接口访问。

8083

当将镜像缓存选项与 TLS 搭配使用时,必须在 provisioner 节点上打开端口 8083,并可以被集群节点的 BMC 接口访问。

9999

默认情况下,Ironic Python 代理(IPA)侦听来自 Ironic 编排器服务的 API 调用的 TCP 端口 9999。运行 IPA 的裸机节点之间的通信,Ironic 编排器服务使用此端口。

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-virtualmediaidrac-virtualmedia

  • baremetalbaremetal 网络是一个可路由的网络。您可以使用任何 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>.

表 14.6. 所需的 DNS 记录
组件记录描述

Kubernetes API

api.<cluster_name>.<base_domain>.

A/AAAA 记录和 PTR 记录可识别 API 负载均衡器。这些记录必须由集群外的客户端和集群中的所有节点解析。

Routes

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

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

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

提示

您可以使用 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 地址,包括:

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

    • API 端点的一个虚拟 IP 地址。
    • 一个用于通配符入口端点的虚拟 IP 地址。
  2. 一个用于 provisioner 节点的 IP 地址。
  3. 每个 control plane 节点有一个 IP 地址。
  4. 每个 worker 节点有一个 IP 地址(如果适用)。
保留 IP 地址,以便其成为静态 IP 地址

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

外部负载均衡器和 control plane 节点间的网络

当使用 VLAN 在负载均衡服务和 control plane 节点之间路由流量时,外部负载平衡服务和 control plane 节点必须在同一个 L2 网络上运行,并使用 VLAN 来路由负载平衡服务和 control plane 节点之间的流量。

重要

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

下表提供了完全限定域名的实例化。API 和名称服务器地址以规范名称扩展开头。control plane 和 worker 节点的主机名是示例,您可以使用您喜欢的任何主机命名规则。

用法主机名IP

API

api.<cluster_name>.<base_domain>

<ip>

Ingress LB(apps)

*.apps.<cluster_name>.<base_domain>

<ip>

provisioner 节点

provisioner.<cluster_name>.<base_domain>

<ip>

control-plane-0

openshift-control-plane-0.<cluster_name>.<base_domain>

<ip>

Control-plane-1

openshift-control-plane-1.<cluster_name>-.<base_domain>

<ip>

Control-plane-2

openshift-control-plane-2.<cluster_name>.<base_domain>

<ip>

Worker-0

openshift-worker-0.<cluster_name>.<base_domain>

<ip>

Worker-1

openshift-worker-1.<cluster_name>.<base_domain>

<ip>

Worker-n

openshift-worker-n.<cluster_name>.<base_domain>

<ip>

注意

如果没有创建 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

provisioning

<provisioning_vlan>

NIC2

baremetal

<baremetal_vlan>

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

PXE引导顺序

NIC1 PXE-enabled provisioning 网络

1

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

2

注意

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

配置 control plane 和 worker 节点,如下所示:

PXE引导顺序

NIC1 PXE-enabled(调配网络)

1

在没有 provisioning 网络的情况下配置节点

安装过程需要一个 NIC:

NIC网络VLAN

NICx

baremetal

<baremetal_vlan>

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

重要

调配 网络是可选的,但 PXE 引导需要该网络。如果您在没有 provisioning 网络的情况下部署,则必须使用虚拟介质 BMC 寻址选项,如 redfish-virtualmediaidrac-virtualmedia

为安全引导手动配置节点

安全引导可防止节点引导,除非它只验证节点只使用可信软件,如 UEFI 固件驱动程序、EFI 应用程序和操作系统。

注意

红帽仅在使用 Redfish 虚拟介质部署时支持手动配置安全引导机制。

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

流程

  1. 引导节点并进入 BIOS 菜单。
  2. 将节点的引导模式设置为 UEFI Enabled
  3. 启用安全引导.
重要

红帽不支持使用自生成的密钥进行安全引导。

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 节点。
  • ❏ 所有节点都可通过带外管理访问。
  • ❏ (可选)已创建一个单独的管理网络。
  • ❏ 安装所需的数据。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.