8.2. 先决条件

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

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

    1. 一个必需的可路由网络
    2. 一个用于置备节点的可选网络;以及
    3. 一个可选的管理网络。

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

8.2.1. 节点要求

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

  • CPU 架构: 所有节点都必须使用 x86_64 CPU 架构。
  • 类似的节点: 红帽建议每个角色都有相同的配置。也就是说,红帽推荐节点具有相同的品牌和型号,它们具有相同的 CPU、内存和存储配置。
  • Baseboard Management Controller: provisioner 节点必须能够访问每个 OpenShift Container Platform 集群节点的基板管理控制器(BMC)。您可以使用 IPMI、Redfish 或一个专有协议。
  • 最新一代: 节点必须是最新一代。安装程序置备的安装依赖于 BMC 协议,这些协议必须在节点间兼容。另外,RHEL 8 附带了 RAID 控制器的最新驱动程序。确保节点足以支持 provisioner 节点运行 RHEL 8,支持 control plane 和 worker 节点运行 RHCOS 8。
  • registry 节点:(可选)如果设置了一个断开连接的 mirrored registry,建议 registry 驻留在自己的节点上。
  • provisioner 节点: 安装程序置备的安装需要一个 provisioner 节点。
  • Control plane: 安装程序置备的安装需要三个 control plane 节点才能进行高可用性。您可以部署仅具有三个 control plane 节点的 OpenShift Container Platform 集群,使 control plane 节点可以作为 worker 节点调度。较小的集群在开发和测试过程中为管理员和开发人员提供更多资源。
  • Worker 节点: 虽然不是必须的的,但典型的生产环境集群一般会有两个或者多个 worker 节点。

    重要

    不要只部署一个 worker 节点的集群,因为集群将使用降级状态的路由器和入口流量进行部署。

  • 网络接口: 每个节点必须至少有一个网络接口用于可路由的 baremetal 网络。在使用 provisioning 网络进行部署时,每个节点都必须有一个网络接口用于 provisioning 网络。使用 provisioning 网络是默认配置。对于 provisioning 网络,网络接口命名必须一致的 control plane 节点。例如,如果 control plane 节点将 eth0 NIC 用于 provisioning 网络,则其他 control plane 节点也必须使用它。
  • 统一的可扩展固件接口(UEFI):provisioning 网络中使用 IPv6 时,,安装程序置备的安装需要在所有 OpenShift Container Platform 节点上进行 UEFI 引导。另外,UEFI Device PXE 设置必须设置为在 provisioning 网络 NIC 上使用 IPv6 协议,但忽略 provisioning 网络会删除这个要求。
  • 安全引导: 很多生产环境场景需要启用安全引导的节点来验证节点只能使用可信软件引导,如 UEFI 固件驱动程序、EFI 应用程序和操作系统。您可以使用安全引导手动部署或管理的安全引导进行部署。

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

      注意

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

8.2.2. 为 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)。

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

安装程序置备的 OpenShift Container Platform 集群的安装程序会验证与 Redfish 虚拟介质的硬件和固件兼容性。下表列出了经过测试并验证以使用 Redfish 虚拟介质部署的安装程序置备的 OpenShift Container Platform 集群的最低固件版本。

表 8.1. Redfish 虚拟介质的固件兼容性

硬件Model管理固件版本

HP

第10 代

iLO5

2.63 或更高版本

Dell

第 14 代

iDRAC 9

v4.20.20.20 - v4.40.00.00

第 13 代

iDRAC 8

v2.75.75.75 或更高版本

注意

红帽不测试固件、硬件或其他第三方组件的组合。有关第三方支持的更多信息,请参阅红帽第三方支持政策

有关更新固件的详情,请查看硬件文档,或者联系硬件厂商。

对于 HP 服务器,运行 iLO4 的 9 代系统中不支持 Redfish 虚拟介质,因为 Ironic 不支持使用虚拟介质的 iLO4。

对于 Dell 服务器,通过 iDRAC 控制台,确保 OpenShift Container Platform 集群节点带有 AutoAttach Enabled。菜单路径是: ConfigurationVirtual MediaAttach ModeAutoAttach .在 iDRAC 9 固件版本 04.40.00.00 中,Virtual Console 插件默认为 eHTML5,这会导致 InsertVirtualMedia 工作流出现问题。将插件设置为 HTML5 以避免出现这个问题。菜单路径为: ConfigurationVirtual consolePlug-in TypeHTML5

重要

使用虚拟介质安装时,如果节点固件位于您要使用的版本中,则安装程序不会在节点中启动安装。

8.2.4. 网络要求

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

安装程序置备的网络

8.2.4.1. 增加网络 MTU

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

8.2.4.2. 配置 NIC

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

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

    provisioningNetworkInterface 配置设置指定 control plane 节点上的 provisioning 网络 NIC 名称,它在 control plane 节点上必须相同。bootMACAddress 配置设置提供了一种方法,用于在每个节点上为 provisioning 网络指定特定的 NIC。

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

  • baremetalbaremetal 网络是一个可路由的网络。您可以使用任何 NIC 与 baremetal 网络 进行接口,只要 NIC 没有配置为使用 provisioning 网络。
重要

在使用 VLAN 时,每个 NIC 必须位于与适当网络对应的独立 VLAN 中。

8.2.4.3. DNS 要求

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

<cluster_name>.<base_domain>

例如:

test-cluster.example.com

OpenShift Container Platform 包含使用集群成员资格信息来生成 A/AAAA 记录的功能。这会将节点名称解析为其 IP 地址。使用 API 注册节点后,集群就可以分布节点信息,而无需使用 CoreDNS-mDNS。这可消除与多播 DNS 关联的网络流量。

在 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>.

表 8.2. 所需的 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 解析。

8.2.4.4. DHCP 的要求

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

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

8.2.4.5. 使用 DHCP 服务器为节点保留 IP 地址

对于 baremetal 网络,网络管理员必须保留一组 IP 地址,其中包括:

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

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

有些管理员更喜欢使用静态 IP 地址,以便在没有 DHCP 服务器时每个节点的 IP 地址保持恒定状态。要在 OpenShift Container Platform 集群中使用静态 IP 地址,请使用无限租期保留 IP 地址。在部署过程中,安装程序会将 NIC 从 DHCP 分配的地址重新配置为静态 IP 地址。带有 DHCP 租期的 NIC 将保留为使用 DHCP。

使用 Machine Config Operator 设置带有无限租期的 IP 地址与部署的网络配置不兼容。

确保您的 DHCP 服务器可以提供无限租期

您的 DHCP 服务器必须提供 4294967295 秒的 DHCP 过期时间,以正确设置由 rfc2131 指定的无限租期。如果为 DHCP 无限租期时间返回 lesser 值,节点会报告错误,并且没有为节点设置永久 IP。在 RHEL 8 中,dhcpd 不提供无限租期。如果要使用 provisioner 节点使用无限租期时间提供动态 IP 地址,请使用 dnsmasq 而不是 dhcpd

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

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

不要在部署后手动更改 IP 地址

部署后,不要手动更改 worker 节点的 IP 地址。要在部署后更改 worker 节点的 IP 地址,您必须将 worker 节点标记为不可调度,撤离 pod,删除该节点并使用新的 IP 地址重新创建它。如需了解更多详细信息,请参阅"使用节点"。要在部署后更改 control plane 节点的 IP 地址,请联系支持。

存储接口需要 DHCP 保留。

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

使用主机名IP

API

API.<cluster_name>.<base_domain>

<ip>

Ingress LB (apps)

*.apps.<cluster_name>.<base_domain>

<ip>

Provisioner node

provisioner.<cluster_name>.<base_domain>

<ip>

Master-0

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

<ip>

Master-1

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

<ip>

Master-2

openshift-master-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 节点设置主机名。

8.2.4.6. 网络时间协议(NTP)

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

重要

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

您可以重新配置 control plane 节点,作为断开连接的集群中的 NTP 服务器,并重新配置 worker 节点以从 control plane 节点检索时间。

8.2.4.7. State-driven 网络配置要求(技术预览)

OpenShift Container Platform 支持使用 kubernetes-nmstate 在集群节点的二级网络接口上支持额外的安装后状态驱动的网络配置。例如,系统管理员可以在安装后为存储网络在集群节点中配置二级网络接口。

注意

配置必须在调度 pod 前进行。

State 驱动的网络配置需要安装 kubernetes-nmstate,还需要在集群节点上运行网络管理器。如需了解更多详细信息,请参阅 OpenShift Virtualization > Kubernetes NMState(技术预览)

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

带外管理 IP 地址位于与节点独立的网络上。为确保带外管理可以在安装期间与 裸机 节点通信,必须授予带外管理 IP 地址对 TCP 6180 端口的访问权限。

8.2.5. 配置节点

在使用 provisioning 网络时配置节点

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

警告

如果在节点间不匹配则会导致安装失败。

虽然集群节点可以包含多于 2 个 NIC,但安装过程只关注于前两个 NIC:

NIC网络VLAN

NIC1

provisioning

<provisioning_vlan>

NIC2

baremetal

<baremetal_vlan>

NIC1 是一个不可路由的网络(provisioning),仅用于安装 OpenShift Container Platform 集群。

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

PXE引导顺序

NIC1 PXE-enabled provisioning 网络

1

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

2

注意

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

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

PXE引导顺序

NIC1 PXE-enabled(provisioning 网络)

1

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

安装过程需要一个 NIC:

NIC网络VLAN

NICx

baremetal

<baremetal_vlan>

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

重要

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

为安全引导手动配置节点

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

注意

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

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

流程

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

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

为 Fujitsu iRMC 配置兼容支持模块

兼容性支持模块(CSM)配置提供对与 UEFI 系统向后兼容的传统 BIOS 的支持。当使用 Fujitsu iRMC 部署集群时,您必须配置 CSM,否则安装可能会失败。

注意

有关为您的特定节点类型配置 CSM 的详情,请参考节点的硬件指南。

先决条件

  • 确保禁用了安全引导(Secure Boot)控制。您可以在 SecuritySecure Boot ConfigurationSecure Boot Control 下禁用这个功能。

流程

  1. 引导节点并选择 BIOS 菜单。
  2. Advanced 选项卡下,从列表中选择 CSM Configuration
  3. 启用 Launch CSM 选项并设置以下值:

    引导选项过滤器

    UEFI 和 Legacy

    启动 PXE OpROM 策略

    仅限 UEFI

    启动 Storage OpROM 策略

    仅限 UEFI

    其他 PCI 设备 ROM 优先级

    仅限 UEFI

8.2.6. 带外管理

节点通常还会有一个额外的、由 Baseboard Management Controller(BMC)使用的 NIC。这些 BMC 必须可以从 provisioner 节点访问。

每个节点需要可以通过带外管理进行访问。在使用带外管理网络时,provisioner 节点需要访问带外管理网络才能成功安装 OpenShift Container Platform 4。

带外管理设置已超出本文档的范围。我们建议单独设置一个带外管理网络。但是,使用 provisioning 网络或 baremetal 网络是有效的选项。

8.2.7. 安装所需的数据

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

  • 带外管理 IP

    • 示例

      • Dell (iDRAC) IP
      • HP (iLO) IP
      • Fujitsu (iRMC) IP

使用 provisioning 网络时

  • NIC(置备)MAC 地址
  • NIC(裸机)MAC 地址

在省略 provisioning 网络时

  • NIC(裸机)MAC 地址

8.2.8. 节点验证清单

使用 provisioning 网络时

  • ❏ 为 provisioning 网络配置了 NIC1 VLAN。
  • 置备网络的 NIC1 在 provisioner、control plane(master)和 worker 节点上启用了 PXE。
  • ❏ 为 baremetal 网络配置了 NIC2 VLAN。
  • ❏ PXE 在所有其他 NIC 上都被禁用。
  • ❏ DNS 被配置为使用 API 和 Ingress 端点。
  • ❏ 配置了 control plane 和 worker 节点。
  • ❏ 所有节点都可以通过带外管理访问。
  • ❏ (可选)已创建一个单独的管理网络。
  • ❏ 安装所需的数据。

在省略 provisioning 网络时

  • ❏ 为 baremetal 网络配置了 NIC1 VLAN。
  • ❏ DNS 被配置为使用 API 和 Ingress 端点。
  • ❏ 配置了 control plane 和 worker 节点。
  • ❏ 所有节点都可以通过带外管理访问。
  • ❏ (可选)已创建一个单独的管理网络。
  • ❏ 安装所需的数据。